About autogen
A skill for the AutoGen AgentChat 0.7.5 API in Python, explaining conversation-based orchestration between agents. It is for building coordinating agents, human-in-the-loop workflows, and code-execution tasks.
Key features
- 01Agent-to-agent conversation orchestration
- 02Group chat and speaker routing
- 03Nested chats for delegated subtasks
- 04Separate human input from code execution
- 05Tool integration and task cancellation
Use cases
- 01Building multi-agent group chat workflows
- 02Delegating complex tasks to specialist agents
- 03Executing generated code through Docker
- 04Connecting MCP tools in AgentChat
MCP support
The skill describes integrating MCP tools into AutoGen through McpWorkbench. It includes related reference material and examples.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ magnus919/ agent-skills --skill autogenAfter installing, type/autogenin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
README.mdrequirements.txtevals/evals.jsonreferences/agent-types.mdcode-execution.mdconversation-patterns.mdfaq-and-troubleshooting.mdgroup-chat.mdtool-integration.mdv04-migration.mdvalidation-audit.mdscripts/check-setup.pytest_templates.pytemplates/code-execution.pygroup-chat.pytwo-agent-chat.pyDetails
From the project READMEAutoGen Expert Skill
This skill targets the AutoGen AgentChat 0.7.5 API on Python 3.10+. 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 group chat routing, human input, 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,
)
Role split in AgentChat 0.7.5:
UserProxyAgentrepresents a human and obtains replies throughinput_func.CodeExecutorAgentexecutes code blocks using aCodeExecutor. They are separate agents; neither accepts the legacyhuman_input_modeoption.
Core Principles
- Conversations are the orchestration primitive. Agents send messages, receive replies, and the conversation structure determines the workflow.
- Keep human input and code execution separate. Use
UserProxyAgentfor a human participant; useCodeExecutorAgentwith aCodeExecutorfor code. - 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 an assistant chat or a team with a human UserProxyAgent |
| 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 |
|---|---|---|
| Human-in-the-loop 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 | AgentTool or a team run from 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 |
Install the exact package versions used by the templates with python -m pip install -r requirements.txt from this skill directory. The code-execution example uses Docker and requires a working Docker daemon.
Templates
| Template | When to use | File |
|---|---|---|
| Two-Agent Chat | Assistant + human input | templates/two-agent-chat.py |
| Group Chat | Multi-agent team with speaker routing | templates/group-chat.py |
| Code Execution Agent | Assistant + Docker-backed code executor | templates/code-execution.py |
Troubleshooting
| Symptom | Likely cause | Fix | Reference |
|---|---|---|---|
| Agent loops forever | No team termination condition | Add a TerminationCondition such as MaxMessageTermination | 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 waits for input | It is a human participant and its input_func is waiting | Supply an appropriate input function or use an automated agent | 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