๐ Building an AI Automation System for MyZubster
๐ Building an AI Automation System for MyZubster MyZubster is an open-source ecosystem for plant mapping, privacy-first payments with Monero, and human-centered AI. In this post, I'll share how I built an AI automation system that automatically handles GitHub issues, bounties, and Telegram notifica

๐ Building an AI Automation System for MyZubster MyZubster is an open-source ecosystem for plant mapping, privacy-first payments with Monero, and human-centered AI. In this post, I'll share how I built an AI automation system that automatically handles GitHub issues, bounties, and Telegram notifications. Managing an open-source project like MyZubster is complex: Too many issues requiring manual triage Bounties need to be created and managed manually Slow communication with contributors Manual monitoring of GitHub activity ๐ฏ The Solution I built a modular system that: Monitors GitHub - Automatically detects new issues and PRs Analyzes with AI - Uses local models (Gemma, Llama, DeepSeek) Creates bounties - Automatically for labeled issues Sends notifications - Real-time alerts on Telegram Orchestrates everything - With automatic fallback between AI models ๐๏ธ Architecture โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ ๏ธ Technology Stack Node.js - Runtime environment Express - API server MongoDB - Database with Mongoose ODM React - Frontend with Leaflet maps AI Stack Ollama - Local AI model runner Gemma 2B - Google's lightweight AI model (default) Llama 3.2 - Meta's powerful model (fallback) DeepSeek R1 - Reasoning model (fallback) Automation Stack node-telegram-bot-api - Telegram integration Octokit - GitHub API client node-cron - Scheduled tasks systemd - Service management Winston - Logging ๐ง AI Models Setup The AI models run locally using Ollama. Here's how I set them up: curl -fsSL https://ollama.com/install.sh | sh Pulling the Models ollama pull gemma:2b Testing the Models ollama run gemma:2b "What is MyZubster?" ๐ค The Telegram Bot The bot provides interactive commands for the community: class TelegramBotHandler { // Register command handlers this.bot.onText(/^\/start/, this.handleStart.bind(this)); this.bot.onText(/^\/status/, this.handleStatus.bind(this)); this.bot.onText(/^\/bounties/, this.handleBounties.bind(this)); this.bot.onText(/^\/github/, this.handleGitHub.bind(this)); this.bot.onText(/^\/analyze/, this.handleAnalyze.bind(this)); this.running = true; this.logger.info('Telegram bot is ready'); } } ๐ GitHub Monitor The GitHub Monitor watches repositories and emits events: const { Octokit } = require('@octokit/rest'); class GitHubMonitor extends EventEmitter { async start() { this.octokit = new Octokit({ auth: this.token, userAgent: 'MyZubster-AI-Automation' }); this.running = true; await this.checkNewIssues(); this.startPeriodicCheck(); } startPeriodicCheck() { setInterval(() => { this.checkNewIssues().catch(error => { this.logger.error('Periodic check failed:', error); }); }, 300000); // 5 minutes } } ๐ง AI Orchestrator The AI Orchestrator is the brain of the system. It uses multiple models with fallback strategies: class AIOrchestrator { http://localhost:11434/api', http://localhost:11434/api', async analyzeIssue(issue) { const prompt = ` Analyze this GitHub issue: Title: ${issue.title} Provide: Summary (1-2 sentences) Complexity (Low/Medium/High with reasoning) Priority (Low/Medium/High with reasoning) Technical Approach (Step by step) Estimated Effort (in hours) Dependencies Potential Risks Suggested Bounty Amount // Try models in order with fallback const models = [ { name: 'gemma', config: this.models.gemma, method: 'ollama' }, { name: 'llama', config: this.models.llama, method: 'ollama' }, { name: 'deepseek', config: this.models.deepseek, method: 'api' } ]; for (const model of models) { try { return await this.analyzeWithModel(model, prompt); } catch (error) { this.logger.warn(`${model.name} failed, trying next...`); } } return this.getDefaultAnalysis(issue); } } ๐ง Systemd Service Management For production deployment, I created a systemd service: [Unit] [Service] [Install] ๐ Real Example Analysis Here's a real analysis from the system on a Monero payment issue: ๐ AI Analysis Results: 1. Summary: 2. Complexity: 3. Priority: 4. Technical Approach: 5. Estimated Effort: 6. Suggested Bounty: ๐ Results After deploying the system, I saw immediate benefits: services/ai-automation/ ๐ก Key Lessons Learned Local AI is Powerful - Running models locally saves API costs and keeps data private Fallback Strategies Matter - Multiple models ensure reliability Event-Driven Architecture - Makes the system extensible and maintainable Mock Mode - Enables testing without external dependencies Systemd - Essential for production deployment ๐ Links Repository: https://github.com/MyZubster-Ecosystem/myzubster Telegram Bot: @myzubster_bot Telegram Channel: @myzubster AI Service: services/ai-automation ๐ Try It Yourself git clone https://github.com/MyZubster-Ecosystem/myzubster.git npm install cp .env.example .env npm start ๐ฏ What's Next? I'm planning to add: Web Dashboard - Visual monitoring of all services Slack Integration - Alternative notification channel Auto-Reply - AI-powered responses to common issues Sentiment Analysis - Understanding contributor sentiment Multi-Repo Support - Monitor multiple repositories ๐ Conclusion Building this AI-powered automation system has transformed how I manage MyZubster. What started as a simple idea grew into a complete ecosystem that handles complex tasks automatically. The best part? It's all open source and you can use it for your own projects too! Built with โค๏ธ by the MyZubster Team
Key Takeaways
- โข๐ Building an AI Automation System for MyZubster MyZubster is an open-source ecosystem for plant mapping, privacy-first payments with Monero, and human-centered AI
- โขThis story was reported by Dev.to, covering developments in the dev space.
- โขAI advancements continue to reshape industries โ read the full article on Dev.to for complete coverage.
๐ Continue reading the full article:
Read Full Article on Dev.to โShare this article



