{"id":32901639,"url":"https://github.com/jechocarlos/queenbee","last_synced_at":"2026-04-19T02:31:09.174Z","repository":{"id":323446152,"uuid":"1092764390","full_name":"jechocarlos/queenbee","owner":"jechocarlos","description":"Meta-Agent Orchestration System with Specialized Thinking Agents","archived":false,"fork":false,"pushed_at":"2025-11-10T06:21:38.000Z","size":166,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-10T08:19:10.509Z","etag":null,"topics":["agent-spawning","agents","bunching","multi-agent","small-language-models"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jechocarlos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-09T09:07:50.000Z","updated_at":"2025-11-10T06:21:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jechocarlos/queenbee","commit_stats":null,"previous_names":["jechocarlos/queenbee"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/jechocarlos/queenbee","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jechocarlos%2Fqueenbee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jechocarlos%2Fqueenbee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jechocarlos%2Fqueenbee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jechocarlos%2Fqueenbee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jechocarlos","download_url":"https://codeload.github.com/jechocarlos/queenbee/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jechocarlos%2Fqueenbee/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31991947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-spawning","agents","bunching","multi-agent","small-language-models"],"created_at":"2025-11-10T13:01:49.908Z","updated_at":"2026-04-19T02:31:09.167Z","avatar_url":"https://github.com/jechocarlos.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QueenBee 🐝\n\n**Intelligent Multi-Agent Orchestration System**\n\n![Tests](https://img.shields.io/badge/tests-223%20passed-brightgreen)\n![Coverage](https://img.shields.io/badge/coverage-70%25-yellow)\n![Python](https://img.shields.io/badge/python-3.14-blue)\n![License](https://img.shields.io/badge/license-MIT-blue)\n\nQueenBee is a sophisticated agent orchestration platform that coordinates specialized AI agents to solve complex problems through collaborative thinking. Every query is analyzed by a team of experts using divergent exploration, convergent synthesis, and critical validation.\n\n## 📑 Table of Contents\n\n- [What Makes QueenBee Different?](#-what-makes-queenbee-different)\n- [Key Features](#-key-features)\n- [Quick Start](#-quick-start)\n- [Usage Examples](#-usage-examples)\n- [Configuration](#️-configuration)\n  - [Inference Packs](#inference-packs-advanced-model-configuration)\n  - [LLM Provider Setup](#llm-provider-setup)\n- [Architecture](#️-architecture)\n- [Development](#-development)\n- [Deployment](#-deployment)\n- [Documentation](#-documentation)\n- [Contributing](#-contributing)\n- [Roadmap](#️-roadmap)\n\n---\n\n## 🎯 What Makes QueenBee Different?\n\n**Every Request Gets Full Team Analysis** - No matter how simple or complex your question, QueenBee delegates to a team of specialized agents who collaborate in real-time:\n\n- **🌟 Divergent Thinker**: Explores multiple perspectives and creative approaches\n- **🔗 Convergent Thinker**: Synthesizes insights and prioritizes solutions  \n- **🔍 Critical Thinker**: Validates reasoning and identifies risks\n- **📋 Summarizer**: Generates rolling updates and final synthesis\n\n**Live Progress Updates** - Watch agents think and contribute in real-time with rolling summaries that show emerging insights as the discussion unfolds.\n\n**Flexible AI Providers** - Choose between local (Ollama) or cloud (OpenRouter) LLMs:\n- **Ollama**: Private, free, runs locally\n- **OpenRouter**: Access Claude, GPT-4, and premium models\n\n---\n\n## ✨ Key Features\n\n### Core Capabilities\n- 🎯 **Intelligent Query Classification**: Automatically routes simple vs complex questions\n- 🧠 **Multi-Agent Collaboration**: Specialized agents contribute based on expertise relevance\n- 🧩 **Smart Contribution System**: Agents only speak when they add genuine value (see [docs/agent-contribution-intelligence.md](docs/agent-contribution-intelligence.md))\n- 📊 **Real-Time Insights**: Live rolling summaries show progress during discussion\n- ⚡ **Streaming Responses**: Token-by-token updates for immediate feedback\n- 🔄 **Async Processing**: Specialists run in parallel background workers\n- 💾 **Persistent State**: PostgreSQL-backed memory, tasks, and knowledge\n\n### Agent Expertise System\n- 🤖 **10 Specialized Agents**: Each with distinct expertise and contribution triggers\n  - **Queen**: Orchestrates and synthesizes final responses\n  - **Classifier**: Routes queries as SIMPLE or COMPLEX\n  - **Divergent**: Explores options and challenges assumptions\n  - **Convergent**: Synthesizes insights into actionable recommendations\n  - **Critical**: Validates reasoning and identifies risks\n  - **Pragmatist**: Reality-checks feasibility and resources\n  - **UserProxy**: Advocates for user needs and experience\n  - **Quantifier**: Demands data and concrete metrics\n  - **Summarizer**: Generates rolling updates and synthesis\n  - **WebSearcher**: Fetches current information when needed\n\n### LLM Provider Support\n- 🏠 **Ollama** (Local): Privacy-focused, free, full control\n- ☁️ **OpenRouter** (Cloud): Premium models (Claude, GPT-4, etc.)\n- 🔄 **Seamless Switching**: Change providers without losing history\n- 🛡️ **Smart Rate Limiting**: Built-in protection against API limits\n\n### Developer Experience\n- 💬 **Interactive CLI**: Rich terminal UI with live updates\n- 🔍 **Full History**: Review entire conversations with `history` command\n- 🧪 **Well-Tested**: 223 passing tests, 70% coverage\n- 📚 **Comprehensive Docs**: Architecture, API, and deployment guides\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- **Python 3.14+** (or 3.10+)\n- **Docker \u0026 Docker Compose** (v2.0+)\n- **PostgreSQL 14+** (via Docker or external)\n- **LLM Provider** (choose one):\n  - **Ollama** for local/private deployment\n  - **OpenRouter API key** for cloud models (Claude, GPT-4, etc.)\n\n### Installation\n\n1. **Clone and Setup**\n```bash\ngit clone https://github.com/jechocarlos/queenbee.git\ncd queenbee\ncp .env.example .env\n```\n\n2. **Choose Your LLM Provider**\n\n**Option A: Local with Ollama (Private \u0026 Free)**\n```bash\n# Start infrastructure\ndocker-compose -f docker-compose.local.yml up -d\n\n# Pull your preferred model\ndocker exec -it queenbee-ollama ollama pull llama3.1:8b\n```\n\n**Option B: Cloud with OpenRouter (Premium Models)**\n```bash\n# Add API key to .env\necho \"OPENROUTER_API_KEY=sk-or-v1-...\" \u003e\u003e .env\n\n# Start database only\ndocker-compose -f docker-compose.remote.yml up -d\n```\n\n3. **Install \u0026 Initialize**\n```bash\n# Install QueenBee\npip install -e .\n\n# Run database migrations\npython scripts/migrate.py\n\n# Verify installation\nqueenbee --version\n```\n\n4. **Launch**\n```bash\n# With Ollama (local)\nqueenbee\n\n# With OpenRouter (cloud)\nqueenbee-openrouter\n```\n\n### CLI Commands\n\nOnce running, use these commands:\n\n```bash\n# Start a new conversation\nYou: \u003cyour question\u003e\n\n# View conversation history\nhistory\n\n# Clear current session\nclear\n\n# Exit application\nexit / quit\n```\n\n---\n\n## 💡 Usage Examples\n\n### Simple Query\n```\nYou: What's the capital of France?\n\nQueen is thinking...\n🐝 Starting Live Collaborative Discussion...\n\n[🔗 Convergent: thinking, 🌟 Divergent: thinking, 🔍 Critical: thinking]\n\n🔗 Convergent #1\nParis is the capital of France, serving as the political, economic, and \ncultural center since 987 CE...\n\n🌟 Divergent #1  \nLet me explore different angles: Paris is not just politically significant\nbut also a global fashion, art, and culinary capital...\n\n🔍 Critical #1\nConfirmed: Paris has been France's capital for over 1,000 years. No \nsignificant risks or alternative interpretations...\n\n────────────────────────────────────────────────────────────────────────────────\n📝 FINAL SUMMARY\nParis is the capital of France, both politically and culturally. It has served \nthis role since the late 10th century and is a major global center for art, \nfashion, and commerce.\n────────────────────────────────────────────────────────────────────────────────\n\n✓ Discussion complete!\n```\n\n### Complex Analysis\n```\nYou: Should I use microservices or a monolith for my startup?\n\nQueen is thinking...\n🐝 Starting Live Collaborative Discussion...\n\n💭 Rolling Summary (updating every 10s)\nThe team is analyzing architectural trade-offs. Divergent explores multiple \npatterns, Convergent synthesizes recommendations for MVP speed, Critical \nidentifies operational complexity risks...\n\n[Multiple rounds of discussion...]\n\n────────────────────────────────────────────────────────────────────────────────\n📝 FINAL SUMMARY\nFor a startup, begin with a well-structured modular monolith to validate \nproduct-market fit quickly while maintaining clean boundaries. This approach \nprovides:\n\n1. Faster initial development (single codebase, shared resources)\n2. Easier debugging and deployment (one application to manage)\n3. Lower operational complexity (no distributed systems overhead)\n4. Clear extraction path (modules become microservices when needed)\n\nExtract microservices only when you face specific scaling bottlenecks (e.g., \none module needs different compute resources) or team bottlenecks (separate \nteams need independent deployment). Key trade-off: operational complexity vs \ndevelopment velocity. Start simple, extract as needed.\n────────────────────────────────────────────────────────────────────────────────\n\n✓ Discussion complete!\n```\n\n---\n\n## ⚙️ Configuration\n\n### Inference Packs (Advanced Model Configuration)\n\nQueenBee supports **inference packs** - named model configurations that you can assign to specific agents:\n\n```yaml\n# config.yaml - Define inference packs for different use cases\ninference_packs:\n  openrouter:\n    default_pack: standard\n    packs:\n      reasoning:\n        model: openai/gpt-oss-20b\n        extract_reasoning: true\n        temperature: 0.3\n        max_tokens: 3000\n      \n      standard:\n        model: qwen/qwen3-vl-8b-instruct\n        extract_reasoning: false\n        temperature: 0.0\n        max_tokens: 2000\n      \n      web_search:\n        model: openai/gpt-4o-mini-search-preview\n        extract_reasoning: false\n        temperature: 0.1\n        max_tokens: 5000\n      \n      fast:\n        model: google/gemini-2.5-flash-lite\n        extract_reasoning: false\n        temperature: 0.1\n        max_tokens: 500\n  \n  ollama:\n    default_pack: standard\n    packs:\n      standard:\n        model: llama3.1:8b\n        extract_reasoning: false\n        temperature: 0.7\n        max_tokens: 2000\n      \n      reasoning:\n        model: llama3.1:8b\n        extract_reasoning: false\n        temperature: 0.5\n        max_tokens: 2000\n      \n      fast:\n        model: qwen2.5:3b\n        extract_reasoning: false\n        temperature: 0.3\n        max_tokens: 2000\n\n# Agent inference pack assignments\nagent_inference:\n  queen: standard\n  classifier: fast\n  divergent: reasoning\n  convergent: reasoning\n  critical: standard\n  pragmatist: reasoning\n  user_proxy: standard\n  quantifier: reasoning\n  summarizer: standard\n  web_searcher: web_search\n```\n\n**Benefits:**\n- 🎯 Different models for different thinking styles\n- 🔍 Web search for exploration, reasoning for analysis\n- 💰 Mix free and premium models to optimize cost\n- 🏠 Combine local (Ollama) and cloud (OpenRouter) models\n\n**Important**: The `max_tokens` in inference pack definitions are model defaults. The actual token limits used by agents are configured in the `agents` section of your `config.yaml` and are injected into their system prompts for more reliable length control.\n\nSee [Inference Packs Guide](docs/inference-packs.md) for detailed configuration options.\n\n### LLM Provider Setup\n\n**Ollama (Local)**\n```yaml\n# config.yaml\nollama:\n  host: http://localhost:11434\n  model: llama3.1:8b\n  timeout: 300\n```\n\n**OpenRouter (Cloud)**\n```yaml\n# config.yaml\nopenrouter:\n  api_key: ${OPENROUTER_API_KEY}\n  model: anthropic/claude-3.5-sonnet\n  base_url: https://openrouter.ai/api/v1\n  timeout: 300\n  verify_ssl: true\n  \n  # Rate limiting (adjust to your tier)\n  requests_per_minute: 16  # Free tier default\n  max_retries: 3\n  retry_delay: 5\n```\n\n### Database Configuration\n```bash\n# .env file\nDB_HOST=localhost\nDB_PORT=5432\nDB_NAME=queenbee\nDB_USER=queenbee\nDB_PASSWORD=your_secure_password\n\n# For remote PostgreSQL\n# DB_HOST=your-db-host.com\n# DB_SSL_MODE=require\n```\n\n### Agent Behavior Tuning\n```yaml\n# config.yaml\nagents:\n  ttl:\n    idle_timeout_minutes: 10\n    check_interval_seconds: 30\n  \n  max_concurrent_specialists: 10\n  \n  # Queen agent - handles both simple and complex queries\n  queen:\n    system_prompt_file: ./prompts/queen.md\n    complexity_threshold: auto\n    simple_max_tokens: 100      # Short, direct answers\n    complex_max_tokens: 8000    # Full analysis with specialist input\n  \n  # Query classifier - determines simple vs complex\n  classifier:\n    system_prompt_file: ./prompts/classifier.md\n    max_tokens: 10              # Just SIMPLE or COMPLEX\n  \n  # Discussion specialists - each contributes based on expertise\n  divergent:\n    system_prompt_file: ./prompts/divergent.md\n    max_iterations: 25\n    max_tokens: 2000            # Explores options and alternatives\n  \n  convergent:\n    system_prompt_file: ./prompts/convergent.md\n    max_iterations: 25\n    max_tokens: 2000            # Synthesizes insights\n  \n  critical:\n    system_prompt_file: ./prompts/critical.md\n    max_iterations: 25\n    max_tokens: 2000            # Validates and identifies risks\n  \n  pragmatist:\n    system_prompt_file: ./prompts/pragmatist.md\n    max_iterations: 25\n    max_tokens: 2000            # Reality-checks feasibility\n  \n  user_proxy:\n    system_prompt_file: ./prompts/user_proxy.md\n    max_iterations: 25\n    max_tokens: 2000            # Advocates for user perspective\n  \n  quantifier:\n    system_prompt_file: ./prompts/quantifier.md\n    max_iterations: 25\n    max_tokens: 2000            # Demands metrics and data\n  \n  summarizer:\n    system_prompt_file: ./prompts/summarizer.md\n    max_iterations: 25\n    max_tokens: 0               # No limit for comprehensive summaries\n  \n  web_searcher:\n    system_prompt_file: ./prompts/web_searcher.md\n    max_iterations: 25\n    max_tokens: 0               # No limit for search results\n\nconsensus:\n  discussion_rounds: 20\n  specialist_timeout_seconds: 300\n  summary_interval_seconds: 10  # Rolling summary update frequency\n```\n\n**Note on Token Limits**: Token limits are injected directly into agent system prompts to ensure more reliable response length control compared to API-only constraints. Each agent sees their token budget explicitly stated in their system prompt.\n\n---\n\n## 🏗️ Architecture\n\n### Discussion Flow\n\n```\n                        User Query\n                            ↓\n                    ┌───────────────┐\n                    │ Queen Agent   │ (Delegates to specialists)\n                    └───────────────┘\n                            ↓\n                    [Task Queue] → Background Workers\n                            ↓\n    ╔═══════════════════════════════════════════════════════════╗\n    ║         PARALLEL MULTI-ROUND DISCUSSION                   ║\n    ║  (20 rounds max, async workers, streaming responses)      ║\n    ╚═══════════════════════════════════════════════════════════╝\n                            ↓\n    ┌──────────────┬──────────────┬──────────────┬──────────────┐\n    │              │              │              │              │\n    │  🌟 Divergent │ 🔗 Convergent │ 🔍 Critical  │ 📋 Summarizer│\n    │  (Explore)   │ (Synthesize) │  (Validate)  │  (Updates)   │\n    │              │              │              │              │\n    │ Round 1 ─────┼──────────────┼──────────────┼──────────────┤\n    │ Response 1   │ Response 1   │ Response 1   │ Summary 1    │\n    │              │              │              │ (every 10s)  │\n    │ Round 2 ─────┼──────────────┼──────────────┼──────────────┤\n    │ Response 2   │ Response 2   │ Response 2   │ Summary 2    │\n    │ (reads all   │ (reads all   │ (reads all   │ (synthesizes │\n    │  previous)   │  previous)   │  previous)   │  progress)   │\n    │              │              │              │              │\n    │ Round N ─────┼──────────────┼──────────────┼──────────────┤\n    │ Response N   │ Response N   │ Response N   │ Summary N    │\n    │              │              │              │              │\n    └──────────────┴──────────────┴──────────────┴──────────────┘\n                            ↓\n              All agents reach consensus/timeout\n                            ↓\n                ┌────────────────────────┐\n                │  📝 FINAL SUMMARY      │\n                │  (Comprehensive        │\n                │   synthesis by         │\n                │   Summarizer)          │\n                └────────────────────────┘\n                            ↓\n                    Displayed to User\n                            ↓\n              Persisted to PostgreSQL\n```\n\n**Key Characteristics:**\n- ⚡ **Parallel Processing**: All specialists run simultaneously in background workers\n- 🔄 **Multi-Round Discussion**: Up to 20 rounds, each agent builds on previous responses\n- 📊 **Live Rolling Updates**: Summarizer provides progress updates every 10 seconds\n- 🎯 **Context-Aware**: Each round, agents read entire discussion history\n- 💾 **Persistent**: All contributions saved to PostgreSQL in real-time\n- 🛑 **Smart Termination**: Discussion ends when consensus reached or timeout\n\n### Key Components\n\n**Agent Layer** (`src/queenbee/agents/`)\n- `base.py`: Shared agent infrastructure with LLM auto-detection\n- `queen.py`: Orchestration and delegation\n- `divergent.py`: Creative exploration\n- `convergent.py`: Solution synthesis\n- `critical.py`: Validation and risk assessment\n- `summarizer.py`: Rolling and final summaries\n\n**Worker System** (`src/queenbee/workers/`)\n- Async multi-process architecture\n- Live discussion updates\n- Task queue management\n- Rolling summary generation\n\n**Database Layer** (`src/queenbee/db/`)\n- PostgreSQL persistence\n- Session management\n- Agent state tracking\n- Chat history\n- Rate limit persistence (OpenRouter)\n\n**CLI** (`src/queenbee/cli/`)\n- Rich terminal UI\n- Live discussion viewer\n- Command processing\n- Provider-specific entry points\n\n---\n\n## 🧪 Development\n\n### Running Tests\n```bash\n# Full test suite\npytest\n\n# With coverage report\npytest --cov=src --cov-report=html\n\n# Specific test file\npytest tests/test_agents.py -v\n\n# Watch mode\npytest-watch\n```\n\n**Current Status**: ✅ 223 passed, ⚠️ 2 skipped, 📊 70% coverage\n\n### Code Quality\n```bash\n# Format code\nblack src/ tests/\n\n# Lint\nruff check src/ tests/ --fix\n\n# Type checking\nmypy src/\n```\n\n### Database Migrations\n```bash\n# Run all migrations\npython scripts/migrate.py\n\n# Check migration status\npsql -h localhost -U queenbee -d queenbee -c \"\\dt\"\n```\n\n### Project Structure\n```\nqueenbee/\n├── src/queenbee/\n│   ├── agents/          # Agent implementations\n│   ├── cli/             # Command-line interface  \n│   ├── config/          # Configuration management\n│   ├── db/              # Database layer \u0026 models\n│   ├── llm/             # LLM client implementations\n│   ├── session/         # Session management\n│   └── workers/         # Multi-process orchestration\n├── prompts/             # Agent system prompts\n├── migrations/          # SQL database migrations\n├── tests/               # Comprehensive test suite\n├── docs/                # Detailed documentation\n├── .github/\n│   ├── SPECS.md         # System specification\n│   └── TODO.md          # Development roadmap\n├── config.yaml          # System configuration\n├── .env.example         # Environment template\n├── pyproject.toml       # Python package config\n└── docker-compose.*.yml # Deployment configs\n```\n\n---\n\n## 🚢 Deployment\n\n### Local Development (All Services)\n```bash\ndocker-compose -f docker-compose.local.yml up -d\n```\nIncludes: PostgreSQL + Ollama + QueenBee (optional)\n\n### Production (Remote Database)\n```bash\ndocker-compose -f docker-compose.remote.yml up -d\n```\nIncludes: Ollama only (connect to external PostgreSQL)\n\n### Environment Variables\n```bash\n# .env file\nLOG_LEVEL=INFO                    # DEBUG, INFO, WARNING, ERROR\nOLLAMA_HOST=http://localhost:11434\nOPENROUTER_API_KEY=sk-or-v1-...  # Optional\nDB_HOST=localhost\nDB_PORT=5432\nDB_NAME=queenbee\nDB_USER=queenbee\nDB_PASSWORD=changeme\nDB_SSL_MODE=prefer               # require for remote DB\n```\n\n---\n\n## 📚 Documentation\n\n- **[Architecture](docs/architecture_update.md)**: System design and components\n- **[Inference Packs](docs/inference-packs.md)**: Advanced model configuration guide\n- **[OpenRouter Integration](docs/openrouter.md)**: Cloud LLM setup and rate limiting\n- **[Specialist Agents](docs/specialist-agents.md)**: Agent roles and behaviors\n- **[Testing](docs/testing.md)**: Test suite and coverage\n- **[Getting Started](docs/getting-started.md)**: Detailed setup guide\n- **[Specification](.github/SPECS.md)**: Complete system requirements\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! Here's how to get started:\n\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)\n3. **Make** your changes with tests\n4. **Run** the test suite (`pytest`)\n5. **Commit** your changes (`git commit -m 'Add amazing feature'`)\n6. **Push** to your branch (`git push origin feature/amazing-feature`)\n7. **Open** a Pull Request\n\n### Contribution Guidelines\n- Write tests for new features\n- Maintain or improve code coverage\n- Follow existing code style (black, ruff)\n- Update documentation as needed\n- Add entries to CHANGELOG\n\n---\n\n## 🗺️ Roadmap\n\n### Completed ✅\n- [x] Multi-agent collaboration system\n- [x] Ollama (local) LLM integration\n- [x] OpenRouter (cloud) LLM integration\n- [x] **Inference packs** - Per-agent model configuration\n- [x] Reasoning model support (dual-field extraction)\n- [x] Real-time streaming responses\n- [x] Live rolling summaries\n- [x] PostgreSQL persistence\n- [x] Smart rate limit management\n- [x] Comprehensive test suite (223 tests, 70% coverage)\n- [x] Docker deployment configs\n\n### In Progress 🚧\n- [ ] Phase 3: Production polish and refinements\n- [ ] Enhanced error handling and recovery\n- [ ] Performance optimizations\n- [ ] Advanced knowledge persistence\n\n### Planned 🎯\n- [ ] Web UI interface\n- [ ] Multi-user support\n- [ ] Additional LLM providers (Anthropic direct, Azure OpenAI)\n- [ ] Agent personality customization\n- [ ] Knowledge graph integration\n- [ ] Agent learning and adaptation\n- [ ] Real-time collaboration features\n\n---\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n---\n\n## 🆘 Support\n\n- **Issues**: [GitHub Issues](https://github.com/jechocarlos/queenbee/issues)\n- **Documentation**: See `/docs` directory\n- **Discussions**: [GitHub Discussions](https://github.com/jechocarlos/queenbee/discussions)\n\n---\n\n## 🙏 Acknowledgments\n\nBuilt with ❤️ using:\n- [Python 3.14](https://www.python.org/)\n- [Ollama](https://ollama.ai/) - Local LLM runtime\n- [OpenRouter](https://openrouter.ai/) - Cloud LLM API\n- [PostgreSQL](https://www.postgresql.org/) - Database\n- [Rich](https://rich.readthedocs.io/) - Terminal UI\n\n---\n\n**Made with collaborative AI thinking** 🐝","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjechocarlos%2Fqueenbee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjechocarlos%2Fqueenbee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjechocarlos%2Fqueenbee/lists"}