AutoGen is Microsoft's open-source Python framework for building multi-agent AI applications where LLM-powered agents collaborate through structured conversations to complete complex tasks. It sits at the intersection of agentic orchestration and LLM tooling, providing everything from a simple two-agent chat to distributed, event-driven systems spanning multiple processes. The key mental model: AutoGen agents are not autonomous executors — they are conversational actors whose behavior is shaped by system messages, registered tools, and termination conditions, making them composable and debuggable by design.
What This Cheat Sheet Covers
This topic spans 16 focused tables and 100 indexed concepts, 98 flashcards. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
A jump-to index of every table row in this cheat sheet.
An interactive map of every table and concept in this topic.
Table 1: Core Agent Types (AutoGen 0.2)
The three built-in agent classes in AutoGen 0.2 cover the majority of real-world use cases. Every more complex workflow is built by composing or subclassing these types, so understanding their default behaviors and parameters is the foundation of the entire framework.
| Type | Example | Description | |
|---|---|---|---|
agent = autogen.ConversableAgent( name="agent", llm_config={"config_list": cfg}, human_input_mode="NEVER") | • Base class for all AutoGen agents • supports both LLM-based replies and code execution via register_reply()• all other agents are subclasses | ||
assistant = autogen.AssistantAgent( name="assistant", llm_config={"config_list": cfg}) | • LLM-powered agent preconfigured to write code and suggest fixes • does not execute code and does not request human input by default | ||
proxy = autogen.UserProxyAgent( name="user_proxy", human_input_mode="NEVER", code_execution_config={"work_dir": "coding"}) | • Proxy agent that auto-executes code blocks found in messages • solicits human input based on human_input_mode• can optionally use an LLM for replies | ||
manager = autogen.GroupChatManager( groupchat=gc, llm_config={"config_list": cfg}) | • Orchestrator agent that receives all messages and selects the next speaker in a GroupChat• uses an LLM with auto selection mode by default | ||
from autogen.agentchat.contrib.capabilities import Teachabilityt = Teachability()t.add_to_agent(agent) | • Adds persistent memory to a ConversableAgent via a vector database (ChromaDB by default) • stores user corrections as memos and retrieves them in future sessions | ||
from autogen.agentchat.contrib import RetrieveUserProxyAgentra = RetrieveUserProxyAgent( name="rag_proxy", retrieve_config={"task": "qa"}) | Extended UserProxyAgent that retrieves relevant document chunks via embedding similarity before each turn, injecting context into the conversation. |