06-03-02 — AutoGen: origens e contribuições para multi-agent

⏱ 12 minFontes validadas em: 2026-04-29

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

timeline title Evolução AutoGen 2023 : AutoGen v0.1 lançado (Microsoft Research) : Conceito de conversational agents 2024 Q1 : AutoGen v0.2 — GroupChat, CodeExecutor 2024 Q3 : AutoGen v0.4 — reescrita completa : Actor model, runtime assíncrono : Separação core/agentchat/extensions 2025 Q2 : Convergência com Semantic Kernel anunciada 2026 Q1 : Agent Framework 1.0 GA : AutoGen integrado ao AF 1.0

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:

AspectoSemantic KernelAutoGen 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.

AutoGen hoje: O repositório 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

Fontes

  1. AutoGen Docs — Stable Documentation
  2. AutoGen Paper — "AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation" (arXiv)
  3. Microsoft DevBlog — AutoGen 0.4: Reimagining the Foundation
  4. GitHub — microsoft/autogen