AutoGen — Microsoft Multi-Agent Framework Guide

Sanjeev SharmaSanjeev Sharma
2 min read

Advertisement

Introduction

AutoGen simplifies building multi-agent systems. This guide covers installation, usage, and advanced patterns.

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

Sanjeev Sharma

Written by

Sanjeev Sharma

Full Stack Engineer · E-mopro