06-03-02 — AutoGen: origens e contribuições para multi-agent
TL;DR
AutoGen foi o pioneiro em sistemas multi-agente conversacionais da Microsoft Research. A ideia central: agentes se comunicam por mensagens como humanos, e um GroupChat orquestra quem fala quando. AutoGen v0.4 foi reescrito com runtime assíncrono e actor model — e essa arquitetura foi incorporada ao Agent Framework 1.0. AutoGen standalone ainda existe mas o roadmap enterprise agora é o AF 1.0.
A linha do tempo
AutoGen v0.2 — o modelo clássico
O modelo v0.2 introduziu os conceitos que definiram multi-agent:
from autogen import AssistantAgent, UserProxyAgent, GroupChat, GroupChatManager
# Agente assistente (usa LLM)
assistente = AssistantAgent(
name="Assistente",
llm_config={"model": "gpt-4o", "api_key": "..."},
system_message="Você é um especialista em análise de contratos."
)
# Agente proxy (pode executar código, simula usuário)
usuario = UserProxyAgent(
name="Usuario",
human_input_mode="NEVER", # totalmente automático
code_execution_config={"work_dir": "./workspace"}
)
# Conversa direta entre dois agentes
chat_result = usuario.initiate_chat(
assistente,
message="Analise o contrato e identifique cláusulas de risco."
)
GroupChat — múltiplos agentes
from autogen import AssistantAgent, UserProxyAgent, GroupChat, GroupChatManager
pesquisador = AssistantAgent("Pesquisador", llm_config=llm_cfg,
system_message="Você pesquisa fatos e dados.")
escritor = AssistantAgent("Escritor", llm_config=llm_cfg,
system_message="Você escreve relatórios claros e objetivos.")
revisor = AssistantAgent("Revisor", llm_config=llm_cfg,
system_message="Você revisa e critica o trabalho.")
usuario = UserProxyAgent("Usuario", human_input_mode="NEVER")
# GroupChat: define quem pode falar e em que ordem
groupchat = GroupChat(
agents=[pesquisador, escritor, revisor, usuario],
messages=[],
max_round=10,
speaker_selection_method="auto" # LLM decide quem fala
)
manager = GroupChatManager(groupchat=groupchat, llm_config=llm_cfg)
usuario.initiate_chat(manager, message="Escreva um relatório sobre IA em logística")
AutoGen v0.4 — reescrita com actor model
A v0.4 foi uma reescrita completa motivada por limitações de produção da v0.2:
- Runtime assíncrono: agents rodam em paralelo via actor model (inspirado em Erlang/Akka)
- Mensagens tipadas: comunicação via dataclasses tipadas, não strings
- Distribuído por design: agentes podem rodar em processos/máquinas diferentes
- Observabilidade: OpenTelemetry nativo
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.models.openai import OpenAIChatCompletionClient
# v0.4: modelo novo de API
modelo = OpenAIChatCompletionClient(model="gpt-4o-mini")
agente1 = AssistantAgent("Analista", model_client=modelo,
system_message="Analisa dados financeiros")
agente2 = AssistantAgent("Reporter", model_client=modelo,
system_message="Gera relatórios executivos")
# Teams: abstração de alto nível sobre GroupChat
team = RoundRobinGroupChat([agente1, agente2], max_turns=4)
import asyncio
resultado = asyncio.run(team.run(task="Analise Q1 2026 e gere relatório"))
Por que convergiu com Semantic Kernel?
AutoGen e SK tinham sobreposição significativa:
| Aspecto | Semantic Kernel | AutoGen v0.4 |
|---|---|---|
| Plugins/Tools | ✅ Muito maduro | ⚠️ Básico |
| Multi-agent | ⚠️ Via ProcessFramework | ✅ Core feature |
| Suporte .NET | ✅ Primeiro cidadão | ❌ Só Python |
| Enterprise integration | ✅ Azure, M365, Copilot | ❌ Research-first |
| Graph workflow | ❌ | ✅ Nativo |
A união foi lógica: SK trouxe plugins maduros, suporte .NET e integração enterprise; AutoGen trouxe multi-agent, actor model e graph workflow. O resultado é o Agent Framework 1.0.
microsoft/autogen continua ativo e é a base do AF 1.0. Para novos projetos Python multi-agent no ecossistema Microsoft, use AF 1.0 diretamente. AutoGen standalone é útil para experimentação rápida e pesquisa.
Como isso se conecta
- 06-03-01 Semantic Kernel — a outra metade da fusão que criou o AF 1.0
- 06-03-03 Agent Framework 1.0 — destino final da evolução do AutoGen
- 06-04-01 CrewAI — CrewAI adotou o modelo role-based inspirado no GroupChat do AutoGen
- 06-04-03 Decision matrix — AutoGen standalone ainda é opção válida para protótipos Python rápidos