{"id":37074030,"url":"https://github.com/femto/minion","last_synced_at":"2026-01-14T08:43:09.142Z","repository":{"id":253607380,"uuid":"841020302","full_name":"femto/minion","owner":"femto","description":"👷‍♂️Minion is Agent's Brain. Minion is designed to execute any type of queries, offering a variety of features that demonstrate its flexibility and intelligence.","archived":false,"fork":false,"pushed_at":"2026-01-06T04:52:03.000Z","size":3587,"stargazers_count":94,"open_issues_count":3,"forks_count":12,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-08T10:14:17.168Z","etag":null,"topics":["agent","ai","python"],"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/femto.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2024-08-11T12:05:35.000Z","updated_at":"2026-01-08T05:03:07.000Z","dependencies_parsed_at":"2024-11-11T14:33:50.501Z","dependency_job_id":"7c5be73f-e6b2-400c-9d51-015a48e36021","html_url":"https://github.com/femto/minion","commit_stats":null,"previous_names":["femto/minion"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/femto/minion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/femto%2Fminion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/femto%2Fminion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/femto%2Fminion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/femto%2Fminion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/femto","download_url":"https://codeload.github.com/femto/minion/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/femto%2Fminion/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28414691,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","ai","python"],"created_at":"2026-01-14T08:43:08.587Z","updated_at":"2026-01-14T08:43:09.116Z","avatar_url":"https://github.com/femto.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Documentation Status](https://img.shields.io/badge/documentation-brightgreen)](https://github.com/femto/minion)\n[![Install](https://img.shields.io/badge/get_started-blue)](https://github.com/femto/minion#get-started)\n[![Discord](https://dcbadge.limes.pink/api/server/HUC6xEK9aT?style=flat)](https://discord.gg/HUC6xEK9aT)\n[![Twitter Follow](https://img.shields.io/twitter/follow/femtowin?style=social)](https://x.com/femtowin)\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/femto/minion)\n\n# Minion\n\n[![Run in Smithery](https://smithery.ai/badge/skills/femto)](https://smithery.ai/skills?ns=femto\u0026utm_source=github\u0026utm_medium=badge)\n\n\nMinion is Agent's Brain. Minion is designed to execute any type of queries, offering a variety of features that demonstrate its flexibility and intelligence.\n\n\u003cimg src=\"assets/minion1.webp\" alt=\"Minion\" width=\"200\" align=\"right\"\u003e\n\n## Installation\n\n### Basic Installation\n\n```bash\ngit clone https://github.com/femto/minion.git \u0026\u0026 cd minion\npip install -e .\ncp config/config.yaml.example config/config.yaml\ncp config/.env.example config/.env\n```\n\n### Optional Dependencies\n\nThe project uses optional dependency groups to avoid installing unnecessary packages. Install only what you need:\n\n```bash\n# Development tools (pytest, black, ruff)\npip install -e \".[dev]\"\n\n# Google ADK and LiteLLM support\npip install -e \".[google]\"\n\n# Browser automation (browser-use)\npip install -e \".[browser]\"\n\n# Gradio web UI\npip install -e \".[gradio]\"\n\n# UTCP support\npip install -e \".[utcp]\"\n\n# AWS Bedrock support\npip install -e \".[bedrock]\"\n\n# Anthropic Claude support\npip install -e \".[anthropic]\"\n\n# Web tools (httpx, beautifulsoup4, etc.)\npip install -e \".[web]\"\n\n# Install ALL optional dependencies\npip install -e \".[all]\"\n\n# You can also combine multiple groups:\npip install -e \".[dev,gradio,anthropic]\"\n```\n\nEdit `config/config.yaml`:\n\n```yaml\nmodels:\n  \"default\":\n    api_type: \"openai\"\n    base_url: \"${DEFAULT_BASE_URL}\"\n    api_key: \"${DEFAULT_API_KEY}\"\n    model: \"gpt-4.1\"\n    temperature: 0\n```\n\nSee [Configuration](#configuration) for more details on configuration options.\n\n## Quick Start\n\n### Using CodeAgent (Recommended)\n\n```python\nfrom minion.main.agent import CodeAgent\n\n# Create agent\nagent = await CodeAgent.create(\n    name=\"Minion Code Assistant\",\n    llm=\"your-model\",\n    tools=all_tools,  # optional\n)\n\n# Run task\nasync for event in await agent.run_async(\"your task here\"):\n    print(event)\n```\n\nSee [examples/mcp/mcp_agent_example.py](examples/mcp/mcp_agent_example.py) for a complete example with MCP tools.\n\n### Using Brain\n\n```python\nfrom minion.main.brain import Brain\n\nbrain = Brain()\nobs, score, *_ = await brain.step(query=\"what's the solution 234*568\")\nprint(obs)\n```\n\nSee [Brain Usage Guide](docs/brain_usage.md) for more examples.\n\n## Quick Demo\n\n[![Minion Quick Demo](https://img.youtube.com/vi/-LW7TCMUfLs/0.jpg)](https://youtu.be/-LW7TCMUfLs?si=-pL9GhNfbjFtNagJ)\n\n*Click to watch the demo video on YouTube.*\n\n## Working Principle\n\n\u003cimg src=\"assets/sci.png\" alt=\"Minion\" align=\"right\"\u003e\n\nThe flowchart demonstrates the complete process from query to final result:\n1. First receives the user query (Query)\n2. System generates a solution (Solution)\n3. Performs solution verification (Check)\n4. If unsatisfactory, makes improvements (Improve) and returns to generate new solutions\n5. If satisfactory, outputs the final result (Final Result)\n\n## Documentation\n\n- [CodeAgent Documentation](docs/merged_code_agent.md) - Powerful Python code execution agent\n- [Brain Usage Guide](docs/brain_usage.md) - Using brain.step() for various tasks\n- [Skills Guide](docs/skills.md) - Extend agent capabilities with modular skills\n- [Benchmarks](docs/benchmarks.md) - Performance results on GSM8K, Game of 24, AIME, Humaneval\n- [Route Parameter Guide](docs/agent_route_parameter_guide.md) - Route options for different reasoning strategies\n- [Gradio UI Guide](docs/gradio_ui_guide.md) - Web interface for Minion\n\n## Configuration\n\n### Configuration File Locations\n\n1. **Project Config**: `MINION_ROOT/config/config.yaml` - Default project configuration\n2. **User Config**: `~/.minion/config.yaml` - User-specific overrides\n\n### Configuration Priority\n\nWhen both configuration files exist:\n- **Project Config** takes precedence over **User Config**\n\nThis allows you to:\n- Keep sensitive data (API keys) in your user config\n- Share project defaults through the project config\n\n### Environment Variables\n\n**Variable Substitution**: Use `${VAR_NAME}` syntax to reference environment variables directly in config values:\n\n```yaml\nmodels:\n  \"default\":\n    api_key: \"${OPENAI_API_KEY}\"\n    base_url: \"${OPENAI_BASE_URL}\"\n    api_type: \"openai\"\n    model: \"gpt-4.1\"\n    temperature: 0.3\n```\n\n**Loading .env Files**: Use `env_file` to load environment variables from `.env` files (follows Docker `.env` file format):\n\n```yaml\nenv_file:\n  - .env\n  - .env.local\n```\n\nVariables defined in these files will be available for `${VAR_NAME}` substitution throughout the configuration.\n\n### MINION_ROOT Detection\n\n`MINION_ROOT` is determined automatically:\n1. Checks `MINION_ROOT` environment variable (if set)\n2. Auto-detects by finding `.git`, `.project_root`, or `.gitignore` in parent directories\n3. Falls back to current working directory\n\nCheck the startup log:\n```\nINFO | minion.const:get_minion_root:44 - MINION_ROOT set to: \u003csome_path\u003e\n```\n\n\u003e **Warning**: Be cautious - LLM can generate potentially harmful code.\n\n## Community and Support\n\n[![Discord](https://dcbadge.limes.pink/api/server/HUC6xEK9aT?style=flat)](https://discord.gg/HUC6xEK9aT)\n\n[![Twitter Follow](https://img.shields.io/twitter/follow/femtowin?style=social)](https://x.com/femtowin)\n\nWeChat Group (minion-agent discussion):\n\n\u003cimg src=\"docs/images/wechat.jpg\" alt=\"WeChat Group\" width=\"300\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffemto%2Fminion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffemto%2Fminion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffemto%2Fminion/lists"}