MODULO 2.5

πŸ’¬ AutoGen e Microsoft Agent Framework

Entenda a abordagem conversacional da Microsoft para agentes, com GroupChat, coding em Docker e a evolucao para o Agent Framework.

6
Topicos
40
Minutos
Interm.
Nivel
Teoria
Tipo
1

πŸ’¬ AutoGen: agentes conversacionais

O AutoGen da Microsoft adota uma abordagem radicalmente diferente de CrewAI e LangGraph: em vez de definir grafos ou equipes, voce cria agentes que conversam entre si. A coordenacao emerge do dialogo β€” um agente propoe, outro critica, um terceiro sintetiza, e o ciclo continua ate chegar a um consenso. E como uma reuniao de brainstorming estruturada entre especialistas.

O componente central e o ConversableAgent: um agente que pode enviar e receber mensagens, chamar ferramentas e interagir com humanos. Dois ConversableAgents conectados ja formam um sistema multiagente funcional. O AssistantAgent (prΓ©-configurado para LLM) e o UserProxyAgent (que executa codigo e representa o humano) sao os tipos mais usados. Essa simplicidade conceitual esconde poder: debates entre agentes frequentemente produzem resultados superiores a um unico agente trabalhando sozinho.

πŸ’‘ Filosofia conversacional

Como dialogo estruturado cria coordenacao:

  • β€’ ConversableAgent: Unidade basica β€” qualquer agente que pode enviar e receber mensagens
  • β€’ AssistantAgent: Configurado para usar LLM β€” raciocina e gera texto/codigo
  • β€’ UserProxyAgent: Representa o humano β€” pode executar codigo e aprovar acoes
  • β€’ Dialogo como coordenacao: Agentes se coordenam trocando mensagens β€” sem orquestrador explicito

πŸ“Š Contexto do ecossistema

  • Microsoft Research: Nasceu como projeto de pesquisa β€” rigor academico na base
  • Open source: 40k+ stars no GitHub β€” comunidade ativa e crescente
  • Papers academicos: Varios papers publicados validando a abordagem conversacional
  • Enterprise-ready: Integracao nativa com Azure, Microsoft 365, Semantic Kernel
2

πŸ”„ Evolucao: Microsoft Agent Framework

Em 2025, a Microsoft lancou o Microsoft Agent Framework, unificando AutoGen e Semantic Kernel em uma plataforma enterprise coesa. O AutoGen continua sendo o motor de conversacao multiagente, enquanto o Semantic Kernel fornece a camada de integracao enterprise (conectores Azure, Microsoft Graph, SharePoint, Teams). Juntos, eles formam a resposta da Microsoft para o ecossistema agentico.

O Agent Framework adiciona recursos que o AutoGen original nao tinha: state management robusto com persistencia, type safety com modelos Pydantic, middleware para logging, caching e rate limiting, e telemetria integrada com Azure Monitor. Para organizacoes ja no ecossistema Microsoft, essa evolucao e natural β€” tudo se integra com a infraestrutura existente.

πŸ’‘ O que muda

Melhorias do Agent Framework sobre o AutoGen original:

  • β€’ State management: Persistencia robusta de estado entre sessoes β€” nao mais stateless
  • β€’ Type safety: Modelos Pydantic para estado e mensagens β€” menos bugs em runtime
  • β€’ Middleware: Camadas de logging, caching, auth e rate limiting configurΓ‘veis
  • β€’ Telemetria: Integracao nativa com Azure Monitor para observabilidade enterprise

πŸ“Š Ecossistema Microsoft

  • Semantic Kernel: Conectores para Azure, M365, SharePoint, Teams, Dynamics 365
  • Azure AI Services: Deploy gerenciado com escala automatica e SLA enterprise
  • Microsoft Graph: Acesso a dados organizacionais (emails, calendarios, documentos)
  • Copilot Studio: Interface visual para criar workflows agenticos sem codigo
3

πŸ’» Coding agents com Docker

Uma das features mais distintas do AutoGen e a capacidade de executar codigo gerado por agentes em containers Docker isolados. Quando um AssistantAgent gera codigo Python, o UserProxyAgent pode executa-lo automaticamente dentro de um container Docker β€” isolamento total do sistema host. Se o codigo gerar erro, o AssistantAgent recebe o traceback e corrige iterativamente ate funcionar.

Esse pattern β€” gerar, executar, corrigir, repetir β€” e extremamente poderoso para tarefas de analise de dados, automacao e desenvolvimento. O agente escreve um script de analise, executa no Docker, ve o output (ou erro), ajusta o codigo e repete. Em 3-5 iteracoes, geralmente chega a um resultado correto. A seguranca do Docker garante que mesmo codigo malicioso ou bugado nao afeta o sistema host.

πŸ’‘ Seguranca na execucao

Como Docker garante seguranca:

  • β€’ Isolamento total: Codigo roda em container efemero β€” sem acesso ao filesystem host
  • β€’ Recursos limitados: CPU, memoria e rede controlados β€” sem risco de resource exhaustion
  • β€’ Descartavel: Container destruido apos execucao β€” sem residuos ou side effects
  • β€’ Iterativo: Erro no codigo β†’ traceback enviado ao agente β†’ correcao automatica β†’ nova tentativa

πŸ“Š Resultados praticos

  • Taxa de sucesso: 85%+ das tarefas de analise de dados resolvidas em menos de 5 iteracoes
  • Seguranca: Zero incidentes de seguranca reportados com execucao via Docker
  • Linguagens: Python, JavaScript, Bash β€” qualquer linguagem com Docker image disponivel
  • Integracao: Instalar pacotes pip/npm dentro do container β€” acesso a todo o ecossistema
4

πŸ—£οΈ GroupChat: conversacao multiagente

O GroupChat e o mecanismo do AutoGen para conversas com mais de dois agentes. Voce cria um grupo com multiplos agentes e um GroupChatManager que controla quem fala quando. O manager pode usar diferentes estrategias: round_robin (cada um fala na vez), random (aleatorio) ou auto (o LLM decide quem deve falar baseado no contexto da conversa).

O GroupChat brilha em cenarios de debate e refinamento. Imagine um grupo com um Researcher, um Critic e um Writer: o Researcher apresenta dados, o Critic questiona a validade, o Researcher refina sua analise, o Writer sintetiza o resultado. Esse ciclo de debate produz resultados mais robustos do que qualquer agente individual, porque cada perspectiva desafia e complementa as outras.

πŸ’‘ Mecanica do GroupChat

Como conversas multiagentes funcionam:

  • β€’ GroupChat: Container que agrupa multiplos agentes numa conversa compartilhada
  • β€’ GroupChatManager: Controla turnos β€” decide quem fala a cada rodada
  • β€’ Estrategias de turno: round_robin, random, auto (LLM decide), manual
  • β€’ Max rounds: Limite de rodadas para evitar conversas infinitas β€” tipicamente 10-20

πŸ“Š Padroes de uso

  • Debate critico: Propositor + Critico + Sintetizador β€” refinamento por argumentacao
  • Pair programming: Developer + Reviewer β€” um escreve, outro revisa, iterativamente
  • Brainstorming: Multiplos especialistas contribuem ideias de perspectivas diferentes
  • Votacao: Multiplos agentes opinam e um sintetizador compila a decisao majoritaria
5

πŸ”§ Tools e Function Calling

No AutoGen, tools sao funcoes Python registradas nos agentes usando register_function(). Quando o LLM determina que precisa de uma tool, ele gera uma chamada de funcao que o UserProxyAgent executa e retorna o resultado. O sistema suporta function calling nativo da OpenAI e Anthropic, garantindo chamadas de tools precisas e tipadas.

A flexibilidade esta na composicao: voce pode dar tools diferentes a agentes diferentes no mesmo GroupChat. O researcher tem acesso a busca web, o developer tem acesso a execucao de codigo, o analyst tem acesso a banco de dados. Cada agente usa apenas suas ferramentas, e a conversacao entre eles cria um workflow onde informacao flui naturalmente entre especializacoes.

πŸ’‘ Sistema de tools

Como ferramentas funcionam no AutoGen:

  • β€’ register_function(): Registra uma funcao Python como tool disponivel para o agente
  • β€’ Function calling nativo: Usa o mecanismo nativo do provider (OpenAI, Anthropic)
  • β€’ Return values: Resultado da tool e inserido automaticamente na conversa
  • β€’ Tools por agente: Cada agente no GroupChat pode ter suas proprias tools exclusivas

πŸ“Š Exemplos de tools

  • Busca web: Pesquisar informacoes em tempo real via APIs de busca
  • Execucao de codigo: Rodar scripts Python/JS via Docker ou local
  • Banco de dados: Consultar, inserir e atualizar dados em SQL ou NoSQL
  • APIs externas: Integrar com qualquer servico via HTTP requests
6

πŸ“Š Quando usar AutoGen vs CrewAI vs LangGraph

A escolha entre AutoGen, CrewAI e LangGraph depende do problema que voce esta resolvendo. AutoGen brilha em cenarios conversacionais β€” debate entre agentes, pair programming, brainstorming. CrewAI e ideal para equipes com papeis definidos β€” pesquisa + escrita, planejamento + execucao. LangGraph oferece controle maximo β€” workflows com compliance, human-in-the-loop, checkpointing.

Uma regra pratica: se seus agentes precisam debater e iterar, use AutoGen. Se seus agentes tem papeis claros e tarefas definidas, use CrewAI. Se voce precisa de controle total sobre cada decisao de roteamento, use LangGraph. Em projetos grandes, nao e incomum combinar frameworks β€” LangGraph para o fluxo principal com CrewAI para sub-workflows de equipe.

πŸ’‘ Tabela comparativa

Criterios de decisao entre os tres frameworks:

  • β€’ AutoGen: Conversacional, debate, pair programming β€” agentes que discutem e refinam
  • β€’ CrewAI: Role-based, equipes com cargos, tarefas estruturadas β€” intuitivo e produtivo
  • β€’ LangGraph: Graph-based, controle total, checkpointing, HITL β€” enterprise e compliance
  • β€’ Combinacao: LangGraph como backbone + CrewAI para sub-equipes + AutoGen para debates

πŸ“Š Guia de decisao rapida

  • Prototipo rapido? CrewAI β€” mais facil de comecar e iterar
  • Debate e consenso? AutoGen β€” coordenacao conversacional natural
  • Compliance/auditoria? LangGraph β€” controle total e rastreabilidade
  • Ecossistema Microsoft? AutoGen/Agent Framework β€” integracao nativa

πŸ“š Resumo do Modulo

βœ“
AutoGen: conversacional - Coordenacao via dialogo entre agentes
βœ“
MS Agent Framework - AutoGen + Semantic Kernel unificados para enterprise
βœ“
Coding com Docker - Execucao segura de codigo em containers isolados
βœ“
GroupChat multiagente - Debate estruturado entre multiplos agentes
βœ“
Tools e Function Calling - Funcoes Python como ferramentas dos agentes
βœ“
Comparacao de frameworks - Conversacional vs role-based vs graph-based

Proximo:

Modulo 2.6 - Protocolos MCP, A2A, ACP