Autogen
Expert skill for conversational multi-agent AI with Microsoft AutoGen. AssistantAgent, UserProxyAgent, GroupChat, code execution, nested chats, cancellation tokens, tool integration, and MCP support. Use when building conversation-driven multi-agent systems or comparing agent frameworks.From its SKILL.md
npx -y skills add magnus919/agent-skills --skill autogenAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.0 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
AutoGen Expert Skill
AutoGen (by Microsoft Research) is a framework for conversational multi-agent AI. Unlike LangGraph's explicit graph topology or CrewAI's role-based crews, AutoGen uses agent-to-agent conversations as the orchestration primitive. Agents communicate through structured chat, with built-in patterns for nested conversations, group chat with routing, and code execution.
Core Paradigm
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.ui import Console
from autogen_ext.models.openai import OpenAIChatCompletionClient
model_client = OpenAIChatCompletionClient(model="gpt-4o-mini")
assistant = AssistantAgent(
name="assistant",
system_message="You are a helpful assistant.",
model_client=model_client,
)
⚠️ UserProxyAgent is NOT a human user. It is an automated proxy that can execute code. Despite the name, it runs autonomously unless
human_input_modeis set toALWAYS.
Core Principles
- Conversations are the orchestration primitive. Agents send messages, receive replies, and the conversation structure determines the workflow.
- UserProxyAgent is a code executor, not a human. Despite the name, it runs autonomously by default. Set
human_input_mode="ALWAYS"for actual human-in-the-loop. - GroupChat routes between agents. RoundRobinGroupChat cycles fixed-order. SelectorGroupChat uses an LLM to pick the next speaker.
- Nested chats delegate work. An agent can spawn a sub-conversation between specialist agents and return the result.
- Docker is the safe code execution mode. Local code execution (
LocalCommandLineCodeExecutor) runs LLM-generated code on your machine — use Docker in production. - Cancellation tokens stop runaway agents. Always pass
CancellationTokenfor long-running tasks.
Where to Start
| You already have... | Start here |
|---|---|
| Nothing — exploring AutoGen | Create a two-agent chat (Assistant + UserProxy) |
| Agents that need to coordinate | Build a GroupChat with multiple agents |
| Agents that need code execution | Configure Docker code executor |
| A complex multi-step task | Use nested chats for sub-tasks |
Quick Reference
| Task | Approach | Reference |
|---|---|---|
| Two-agent chat | AssistantAgent + UserProxyAgent | references/agent-types.md |
| Multi-agent group | GroupChat with RoundRobinGroupChat | references/group-chat.md |
| Code execution | DockerCommandLineCodeExecutor | references/code-execution.md |
| Tool integration | register_function() or @tool | references/tool-integration.md |
| Nested chat | initiate_chat() from within a tool | references/conversation-patterns.md |
| Cancellation | CancellationToken | references/conversation-patterns.md |
| MCP tools | McpWorkbench | references/tool-integration.md |
Framework Routing Guide
| Scenario | Reach for | Why |
|---|---|---|
| Conversation-driven multi-agent | AutoGen | Native agent-to-agent chat as orchestration |
| Role-based multi-agent teams | CrewAI | Role/Goal/Backstory is the native abstraction |
| State-machine multi-agent | LangGraph | Graph topology, subgraphs, human-in-the-loop |
| Chain/agent composition | LangChain | LCEL pipe operator for general chains |
Reference Files
| Reference | Load when | File |
|---|---|---|
| Agent Types | AssistantAgent, UserProxyAgent | references/agent-types.md |
| Conversation Patterns | Send/receive, nested chats, cancellation | references/conversation-patterns.md |
| Group Chat | RoundRobin, Selector, MagenticOne | references/group-chat.md |
| Code Execution | Docker, local, cancellation tokens | references/code-execution.md |
| Tool Integration | register_function, @tool, MCP integration | references/tool-integration.md |
| v0.4 Migration | v0.2->v0.4 migration, AgentTool, streaming, termination | references/v04-migration.md |
| Validation Audit | Research validation of all API claims | references/validation-audit.md |
| FAQ & Troubleshooting | Common errors and fixes | references/faq-and-troubleshooting.md |
Templates
| Template | When to use | File |
|---|---|---|
| Two-Agent Chat | Simple assistant + code executor | templates/two-agent-chat.py |
| Group Chat | Multi-agent team with speaker routing | templates/group-chat.py |
| Code Execution Agent | Agent with Docker code execution | templates/code-execution.py |
Troubleshooting
| Symptom | Likely cause | Fix | Reference |
|---|---|---|---|
| Agent loops forever | No termination condition | Add is_termination_msg or max_turns | references/conversation-patterns.md |
| Code execution fails | Docker not running | Start Docker or use LocalCommandLineCodeExecutor | references/code-execution.md |
| Nested chat never returns | Cancellation token not passed | Pass CancellationToken with timeout | references/conversation-patterns.md |
| v0.2 code doesn't work | v0.4 API changed | Follow migration guide | references/faq-and-troubleshooting.md |
| GroupChat speaker selection loops | SelectorGroupChat with no clear next | Use RoundRobinGroupChat for fixed order | references/group-chat.md |
| UserProxyAgent asking for input | human_input_mode="ALWAYS" | Set to "NEVER" for automated execution | references/agent-types.md |
When NOT to Use AutoGen
- Simple single-agent task — overkill, use direct API call
- Need fine-grained graph control — use LangGraph
- Need role-based teams with fixed processes — use CrewAI
- Need chain composition — use LangChain LCEL
What ships with it: 13 files
16.9 KB alongside SKILL.md, 4 of them executable
references/
- agent-types.md1.3 KB
- code-execution.md1.1 KB
- conversation-patterns.md1.5 KB
- faq-and-troubleshooting.md1.3 KB
- group-chat.md1.2 KB
- tool-integration.md968 B
- v04-migration.md2.8 KB
- validation-audit.md1.7 KB
scripts/
- check-setup.pyruns708 B
templates/
- code-execution.pyruns1011 B
- group-chat.pyruns1.0 KB
- two-agent-chat.pyruns678 B
- README.md1.8 KB