====== AG2 ======
**AG2** (formerly AutoGen) is an open-source multi-agent AI framework maintained by the original creators of Microsoft AutoGen. Licensed under Apache 2.0 with 4.3K+ GitHub stars, AG2 brands itself as "The Open-Source AgentOS" -- providing a stable, community-driven platform for building conversational AI agent systems without the breaking changes introduced by Microsofts AutoGen 0.4 rewrite.
===== Overview =====
AG2 forked from Microsoft AutoGen v0.2.34 when Microsoft began a complete architectural rewrite (AutoGen 0.4) that shifted toward async messaging, TypeScript support, and Semantic Kernel integration. The original creators -- Chi Wang and Qingyun Wu -- established AG2 to preserve the familiar, battle-tested agent patterns while evolving the framework through community-driven development with an open RFC process.
Key features:
* **Multi-agent conversations** -- Flexible patterns from two-agent chats to complex group discussions with LLM-selected speaker rotation
* **ConversableAgent** -- Base agent class with built-in LLM integration, tool use, code execution, and configurable termination conditions
* **GroupChat** -- Orchestrates multi-agent collaboration with automatic speaker selection and message routing
* **Code execution** -- Agents can generate and execute code in sandboxed environments
* **Tool integration** -- Pluggable tools, memory modules, and external API access
* **Full backward compatibility** -- Existing AutoGen 0.2 code runs without modification
===== Why AG2 Forked =====
graph TD
A["2023: Microsoft releases AutoGen v0.2"] --> B["2024: Microsoft begins AutoGen v0.4 rewrite"]
B --> C["Breaking changes: async messaging, new architecture"]
B --> D["Nov 2024: Original creators fork to AG2"]
D --> E["Preserves v0.2 architecture"]
D --> F["Community-driven, open RFC, Apache 2.0"]
F --> G["2025-2026: Stable evolution v0.3.x to v0.10.x"]
G --> H["Gemini thinking, MCP, A2A support"]
===== Code Examples =====
**Two-agent conversation:**
from autogen import ConversableAgent, config_list_from_json
# Load LLM config (supports OpenAI, Azure, local models)
config_list = config_list_from_json("OAI_CONFIG_LIST")
llm_config = {"config_list": config_list, "temperature": 0}
# Create a user proxy that can execute code
user_proxy = ConversableAgent(
name="User",
human_input_mode="NEVER",
code_execution_config={"work_dir": "coding", "use_docker": True}
)
# Create an AI assistant
assistant = ConversableAgent(
name="Assistant",
llm_config=llm_config,
system_message="You are a helpful data analyst. Write Python code to solve tasks."
)
# Start conversation -- agents chat until task is complete
user_proxy.initiate_chat(
assistant,
message="Analyze the top 10 Python packages by downloads and create a bar chart."
)
**GroupChat with multiple specialized agents:**
from autogen import ConversableAgent, GroupChat, GroupChatManager
llm_config = {"config_list": config_list, "temperature": 0}
# Define specialized agents
planner = ConversableAgent(
name="Planner",
llm_config=llm_config,
system_message="You break down tasks into steps. Do not write code."
)
engineer = ConversableAgent(
name="Engineer",
llm_config=llm_config,
system_message="You write Python code to implement plans. Always include error handling."
)
critic = ConversableAgent(
name="Critic",
llm_config=llm_config,
system_message="You review code for bugs, security issues, and improvements."
)
user_proxy = ConversableAgent(
name="User_proxy",
human_input_mode="NEVER",
code_execution_config={"work_dir": "output"}
)
# Create group chat -- LLM selects next speaker
groupchat = GroupChat(
agents=[user_proxy, planner, engineer, critic],
messages=[],
max_round=12
)
manager = GroupChatManager(groupchat=groupchat, llm_config=llm_config)
user_proxy.initiate_chat(
manager,
message="Build a REST API that serves stock price predictions."
)
===== Installation =====
AG2 is installable under multiple package names (all point to the same codebase):
pip install ag2
# or
pip install pyautogen
# or
pip install autogen
===== AG2 vs Microsoft AutoGen =====
| ^ AG2 (Community Fork) ^ Microsoft AutoGen 0.4+ ^
| **Architecture** | Familiar synchronous chat patterns | Async messaging, event-driven |
| **Governance** | Community-driven, open RFC | Microsoft-led |
| **Migration** | None needed for 0.2 code | Significant rewrites required |
| **License** | Apache 2.0 | Apache 2.0 |
| **Focus** | Stability, backward compat | Enterprise scale, new features |
| **Ecosystem** | AG2 Studio, Marketplace (roadmap) | AutoGen Studio, Semantic Kernel |
| **Community** | 20K+ active builders | Microsoft ecosystem |
===== Recent Developments =====
* **v0.10.x** -- Gemini Thinking Configuration for enhanced reasoning control
* **MCP support** -- Model Context Protocol integration for tool interoperability
* **A2A protocol** -- Agent-to-Agent communication standard support
* **AG2 Studio** -- Visual prototyping interface (in development)
===== References =====
* [[https://github.com/ag2ai/ag2|AG2 on GitHub]]
* [[https://docs.ag2.ai/|AG2 Documentation]]
* [[https://ag2.ai/|AG2 Website]]
* [[https://discord.gg/sNGSwQME3x|AG2 Discord Community]]
===== See Also =====
* [[autogen|AutoGen]] -- Microsofts original multi-agent framework
* [[crewai|CrewAI]] -- Role-based multi-agent orchestration
* [[langchain|LangChain]] -- LLM application framework
* [[swarm|OpenAI Swarm]] -- Lightweight multi-agent framework