AutoGen — Microsoft Multi-Agent Framework Guide
Advertisement
Introduction
AutoGen simplifies building multi-agent systems. This guide covers installation, usage, and advanced patterns.
- Installation
- Basic Multi-Agent Setup
- GroupChat with Multiple Agents
- Agent with Tools
- Code Execution Agent
- Conclusion
- FAQ
Installation
pip install pyautogen
Basic Multi-Agent Setup
import autogen
config_list = [
{
"model": "gpt-4",
"api_key": "your-key"
}
]
assistant = autogen.AssistantAgent(
name="assistant",
llm_config={"config_list": config_list}
)
user_proxy = autogen.UserProxyAgent(
name="user_proxy",
human_input_mode="NEVER",
max_consecutive_auto_reply=10,
code_execution_config={"work_dir": "work"}
)
# Start conversation
user_proxy.initiate_chat(
assistant,
message="Write Python code to calculate fibonacci numbers"
)
GroupChat with Multiple Agents
critic = autogen.AssistantAgent(
name="critic",
system_message="You critique code quality",
llm_config={"config_list": config_list}
)
coder = autogen.AssistantAgent(
name="coder",
system_message="You write clean Python code",
llm_config={"config_list": config_list}
)
groupchat = autogen.GroupChat(
agents=[user_proxy, coder, critic],
messages=[],
max_round=10
)
manager = autogen.GroupChatManager(groupchat=groupchat)
user_proxy.initiate_chat(
manager,
message="Build a task management application"
)
Agent with Tools
def get_stock_price(symbol: str) -> float:
"""Get stock price."""
prices = {"AAPL": 150, "MSFT": 300}
return prices.get(symbol)
assistant = autogen.AssistantAgent(
name="assistant",
system_message="You help with financial analysis",
llm_config={"config_list": config_list},
functions=[
{
"name": "get_stock_price",
"description": "Get stock price",
"parameters": {
"type": "object",
"properties": {
"symbol": {"type": "string"}
}
}
}
]
)
user_proxy.initiate_chat(
assistant,
message="What's the price of Apple stock?"
)
Code Execution Agent
user_proxy = autogen.UserProxyAgent(
name="user",
human_input_mode="NEVER",
code_execution_config={
"work_dir": "work",
"use_docker": False
}
)
assistant = autogen.AssistantAgent(
name="assistant",
system_message="Write Python code to solve problems",
llm_config={"config_list": config_list}
)
user_proxy.initiate_chat(
assistant,
message="Generate data visualization for sales data"
)
Conclusion
AutoGen makes multi-agent systems accessible. Great for prototyping and production agent systems.
FAQ
Q: When should I use AutoGen? A: For complex tasks requiring multiple agents and perspectives.
Q: Can AutoGen agents call external APIs? A: Yes, define functions and agents will use them autonomously.
Q: Is AutoGen production-ready? A: Yes, used by many companies for production agents.
Advertisement