A simple agent framework that's capable of browser use + mcp + auto instrument + plan + deep research + more
pip install minion-agent-x
git clone git@github.com:femto/minion-agent.git
cd minion-agent
pip install -e .
Here's a simple example of how to use Minion Agent:
from minion_agent import MinionAgent, AgentConfig, AgentFramework
from dotenv import load_dotenv
import os
load_dotenv()
async def main():
# Configure the agent
agent_config = AgentConfig(
model_id=os.environ.get("AZURE_DEPLOYMENT_NAME"),
name="research_assistant",
description="A helpful research assistant",
model_args={"azure_endpoint": os.environ.get("AZURE_OPENAI_ENDPOINT"),
"api_key": os.environ.get("AZURE_OPENAI_API_KEY"),
"api_version": os.environ.get("OPENAI_API_VERSION"),
},
model_type="AzureOpenAIServerModel", # use "AzureOpenAIServerModel" for auzre, use "OpenAIServerModel" for openai, use "LiteLLMModel" for litellm
)
agent = await MinionAgent.create(AgentFramework.SMOLAGENTS, agent_config)
# Run the agent with a question
result = agent.run("What are the latest developments in AI?")
print("Agent's response:", result)
import asyncio
asyncio.run(main())
see example.py see example_browser_use.py see example_with_managed_agents.py see example_deep_research.py
The AgentConfig
class accepts the following parameters:
model_id
: The ID of the model to use (e.g., "gpt-4")name
: Name of the agent (default: "Minion")description
: Optional description of the agentinstructions
: Optional system instructions for the agenttools
: List of tools the agent can usemodel_args
: Optional dictionary of model-specific argumentsagent_args
: Optional dictionary of agent-specific arguments
Minion Agent supports Model Context Protocol (MCP) tools. Here's how to use them:
from minion_agent.config import MCPTool
agent_config = AgentConfig(
# ... other config options ...
tools=[
"minion_agent.tools.browser_tool.browser", # Regular tools
MCPTool(
command="npx",
args=["-y", "@modelcontextprotocol/server-filesystem", "/path/to/workspace"]
) # MCP tool
]
)
You can also use MCP tools over Server-Sent Events (SSE). This is useful for connecting to remote MCP servers:
from minion_agent.config import MCPTool
agent_config = AgentConfig(
# ... other config options ...
tools=[
MCPTool({"url": "http://localhost:8000/sse"}), # SSE-based tool
]
)
⚠️ Security Warning: When using MCP servers over SSE, be extremely cautious and only connect to trusted and verified servers. Always verify the source and security of any MCP server before connecting.
You can also use multiple MCP tools together:
tools=[
MCPTool(command="npx", args=["..."]), # Standard MCP tool
MCPTool({"url": "http://localhost:8000/sse"}), # SSE-based tool
MCPTool({"url": "http://localhost:8001/sse"}) # Another SSE-based tool
]
You can enable automatic planning by setting the planning_interval
in agent_args
:
agent_config = AgentConfig(
# ... other config options ...
agent_args={
"planning_interval": 3, # Agent will create a plan every 3 steps
"additional_authorized_imports": "*"
}
)
The planning_interval
parameter determines how often the agent should create a new plan. When set to 3, the agent will:
- Create an initial plan for the task
- Execute 3 steps according to the plan
- Re-evaluate and create a new plan based on progress
- Repeat until the task is complete
Make sure to set up your environment variables in a .env
file:
OPENAI_API_KEY=your_api_key_here
To set up for development:
# Clone the repository
git clone https://github.com/yourusername/minion-agent.git
cd minion-agent
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install development dependencies
pip install -e ".[dev]"
See Deep Research Documentation for usage instructions.
Join our WeChat discussion group to connect with other users and get help:
群聊: minion-agent讨论群
MIT License