Imagine que você é um treinador Pokémon, mas em vez de capturar Pikachus e Charizards, você está a construir uma equipe de agentes de IA especializados. Cada agente tem as suas próprias habilidades únicas, pode aprender novos movimentos (ferramentas) e trabalhar em conjunto com outros agentes para resolver desafios complexos. Este é, em essência, o mundo do Microsoft Agent Framework, um universo onde você pode treinar, coordenar e evoluir os seus agentes de IA para enfrentar qualquer missão empresarial.
Anunciado em 1 de outubro de 2025 [1], o Microsoft Agent Framework é como a evolução definitiva do mundo Pokémon da IA. Ele une dois projetos poderosos da Microsoft , o Semantic Kernel (o equivalente aos Pokémons clássicos e confiáveis da primeira geração) e o AutoGen (os Pokémons experimentais e inovadores das gerações mais recentes), numa única Pokédex unificada. O resultado é um framework open-source que permite aos desenvolvedores construir desde agentes simples até sistemas multi-agente complexos, tudo com a estabilidade necessária para batalhas de produção em larga escala.
Neste artigo, vamos explorar este novo universo, entender como funciona a mecânica de treino e combate, e dar os primeiros passos para você se tornar um verdadeiro Mestre Pokémon da IA Agêntica.
O Problema: Quando a Sua Equipe Pokémon Não Está Sincronizada
Antes do Microsoft Agent Framework, os desenvolvedores enfrentavam um cenário semelhante a ter uma coleção de Pokémons poderosos, mas sem uma estratégia clara de batalha ou um centro Pokémon adequado para os treinar. Os principais desafios incluíam:
Fragmentação de Frameworks: Era como ter Pokémons de diferentes gerações e regiões, cada um com o seu próprio sistema de batalha incompatível. Múltiplos frameworks coexistiam, cada um com as suas próprias regras, dificultando a criação de uma equipe coesa.
Lacuna entre Treino e Batalha Real: O que funcionava no treino local (como batalhar contra o Professor Carvalho) raramente se traduzia para as batalhas de ginásio em produção. Os desenvolvedores precisavam de reconfigurar completamente as suas equipes para ambientes de nuvem escaláveis.
Falta de Recursos para Batalhas Profissionais: Muitas ferramentas eram como centros Pokémon improvisados, funcionavam para curar os seus Pokémons, mas não tinham os recursos avançados necessários para competições sérias. Faltavam funcionalidades como observabilidade (saber exatamente o que cada Pokémon fez durante a batalha), conformidade (garantir que as regras do torneio foram seguidas) e durabilidade (garantir que a batalha pode ser pausada e retomada sem perder o progresso).
A Microsoft, com a sua experiência em criar tanto Pokémons estáveis e confiáveis (Semantic Kernel) quanto Pokémons experimentais e inovadores (AutoGen), estava na posição perfeita para criar a Pokédex definitiva.
A Solução: A Pokédex Unificada da IA
O Microsoft Agent Framework é a sua Pokédex completa e o seu centro Pokémon avançado, tudo num só lugar [1, 2]. É um kit de desenvolvimento open-source que permite capturar, treinar e coordenar agentes de IA (os seus Pokémons digitais) para resolver problemas complexos.
O Que Torna Esta Pokédex Especial?
Assim como a Pokédex regista informações sobre todos os Pokémons e as suas evoluções, o Agent Framework unifica o melhor de dois mundos:
- Semantic Kernel - Os Pokémons da primeira geração (Bulbasaur, Charmander, Squirtle), confiáveis, testados em batalha e com movimentos bem documentados
- AutoGen - Os Pokémons experimentais das gerações mais recentes, com habilidades inovadoras e estratégias de batalha criativas
- Microsoft Agent Framework - A evolução final que combina a confiabilidade dos clássicos com a inovação dos novos
Vamos comparar estes três “sistemas de batalha” e entender como cada um funciona:
Semantic Kernel: Os Pokémons Clássicos da Primeira Geração
Pense no Semantic Kernel como os Pokémons originais, Bulbasaur, Charmander e Squirtle. São confiáveis, testados em batalha e todos conhecem os seus movimentos.
Características principais:
- Foco: Pokémons estáveis com movimentos testados e centros Pokémon confiáveis
- Interoperabilidade: Pode trocar Pokémons entre algumas regiões usando protocolos como MCP, A2A e OpenAPI
- Sistema de Memória: Caixas de armazenamento bem organizadas (como Elasticsearch e MongoDB)
- Estilo de Batalha: Batalhas estruturadas e previsíveis, onde você sabe exatamente o que vai acontecer
- Recursos: Telemetria de batalha e análise de desempenho para melhorar continuamente
AutoGen: Os Pokémons Experimentais das Novas Gerações
O AutoGen é como descobrir Pokémons raros e experimentais com habilidades nunca vistas antes. São inovadores, mas ainda estão em fase de testes.
Características principais:
- Foco: Pokémons experimentais com estratégias inovadoras de batalha vindas do laboratório de pesquisa
- Interoperabilidade: Troca limitada entre regiões, alguns Pokémons não funcionam em todas as áreas
- Sistema de Memória: Armazenamento básico com algumas opções externas para guardar experiências
- Estilo de Batalha: Batalhas dinâmicas com improvisação, onde os Pokémons decidem as táticas em tempo real
- Recursos: Recursos mínimos, foca mais na inovação do que na infraestrutura
Microsoft Agent Framework: A Evolução Definitiva
O Agent Framework é como ter uma Pokédex completa que funciona com TODOS os Pokémons, de todas as gerações, com o melhor de cada mundo.
Características principais:
- Foco: Pokédex unificada com todos os tipos de Pokémons e estratégias, você escolhe o que funciona melhor
- Interoperabilidade: Troca universal, todos os Pokémons funcionam em qualquer região, sem restrições
- Sistema de Memória: Sistema de caixas avançado com sincronização na nuvem e backup automático
- Estilo de Batalha: Você escolhe! Batalhas estruturadas OU dinâmicas, conforme a missão exigir
- Recursos: Centro Pokémon completo com análise avançada, sistema de aprovações e recuperação de batalhas interrompidas
Importante: O Agent Framework não substitui os seus Pokémons favoritos do Semantic Kernel ou AutoGen. Ele simplesmente oferece uma forma melhor de organizá-los e fazê-los trabalhar em conjunto.
Os Quatro Ginásios do Agent Framework
Para se tornar um Mestre Pokémon da IA, você precisa dominar os quatro ginásios (pilares) do Microsoft Agent Framework [1]:
Ginásio 1: Comunicação Universal (Padrões Abertos)
Imagine que os seus Pokémons podem comunicar-se com Pokémons de outras regiões, independentemente da língua ou do sistema de batalha. Este ginásio ensina os seus agentes a trabalhar com padrões universais.
Model Context Protocol (MCP) funciona como o tradutor universal do mundo Pokémon. Os seus agentes podem descobrir e usar ferramentas externas automaticamente, como se estivessem a aprender novos movimentos TM (Technical Machine) instantaneamente.
Agent-to-Agent (A2A) é como o sistema de troca de Pokémons, mas para colaboração em tempo real. Um agente pode pedir ajuda a outro, mesmo que estejam em “regiões” (runtimes) diferentes.
OpenAPI é como ter acesso a todos os movimentos possíveis através de uma única interface. Qualquer API REST pode ser usada como um movimento especial pelos seus agentes.
Ginásio 2: Do Laboratório para o Campeonato (Pipeline Pesquisa-Produção)
Este ginásio treina os seus Pokémons para evoluir de batalhas de treino para torneios profissionais. O framework suporta diferentes estratégias de batalha:
Estratégias de Batalha Disponíveis:
- Batalha Sequencial: Os seus Pokémons atacam um de cada vez, seguindo uma ordem definida
- Batalha em Dupla: Múltiplos Pokémons atacam simultaneamente
- Batalha em Equipe (Group Chat): Toda a equipe discute a estratégia antes de cada movimento
- Revezamento (Handoff): Um Pokémon passa o bastão para outro quando necessário
O AF Labs é como o laboratório do Professor Carvalho, onde novos Pokémons e movimentos experimentais são testados antes de serem lançados oficialmente.
Ginásio 3: Captura e Personalização (Extensibilidade)
Neste ginásio, você aprende a capturar novos Pokémons (agentes) e ensiná-los movimentos personalizados. O framework é 100% open-source (licença MIT) [3], como uma região onde todos os treinadores podem partilhar as suas descobertas.
Conectores Empresariais são como as Poké Bolas especiais (Ultra Ball, Master Ball) que permitem capturar Pokémons raros de sistemas empresariais como Microsoft Graph, SharePoint e Oracle.
Módulos de Memória funcionam como as caixas de armazenamento do PC, você pode escolher entre Redis, Pinecone, Weaviate e outros sistemas para guardar os seus Pokémons e as suas experiências.
Agentes Declarativos são como as fichas de registo dos Pokémons em formato YAML ou JSON, que podem ser partilhadas com outros treinadores.
Ginásio 4: Torneios Profissionais (Prontidão para Produção)
O ginásio final prepara a sua equipe para batalhas de alto nível em ambientes empresariais, com todos os recursos necessários para competições sérias.
Observabilidade é como ter uma câmara de replay que grava cada movimento da batalha. A integração com OpenTelemetry permite analisar exatamente o que cada Pokémon fez e porquê.
Centro Pokémon na Nuvem (Azure AI Foundry) oferece cuidados profissionais com segurança avançada, controlo de acesso e proteção de dados.
Durabilidade de Batalha garante que se a batalha for interrompida (queda de energia, por exemplo), você pode retomá-la exatamente de onde parou, sem perder o progresso.
Aprovação do Treinador (Human-in-the-Loop) permite que certas ações críticas só sejam executadas após a sua aprovação explícita, como usar um item raro ou fazer uma troca importante.
Batalhas Simples vs. Torneios Complexos
O Agent Framework oferece dois modos de jogo principais [1, 2]:
Modo Batalha Individual (Agent Orchestration)
Neste modo, você envia um Pokémon (agente) para uma batalha e ele decide autonomamente quais movimentos usar com base na situação. É ideal para desafios imprevisíveis onde a criatividade e a adaptação são essenciais.
Quando usar: Suporte ao cliente, assistentes de pesquisa, tutoria personalizada, situações onde cada batalha é diferente.
Modo Torneio Estruturado (Workflow Orchestration)
Aqui, você define uma estratégia de batalha detalhada antecipadamente, como um plano de jogo num torneio profissional. Cada Pokémon sabe exatamente quando entrar em campo e que movimento executar.
Quando usar: Processos de negócio estruturados, pipelines de aprovação, auditorias automatizadas, situações onde a consistência e a previsibilidade são cruciais.
Evoluindo os Seus Pokémons Antigos
Se você já tem Pokémons treinados no Semantic Kernel ou AutoGen, não precisa de recomeçar do zero [1]. É como transferir os seus Pokémons de um jogo antigo para a versão mais recente.
Transferindo do Semantic Kernel
A migração é simples e direta. Os seus Kernels e Plugins evoluem para Agents e Tools. As integrações existentes com vector stores continuam a funcionar, e os seus Pokémons mantêm todos os movimentos que aprenderam.
Transferindo do AutoGen
Os padrões de batalha do AutoGen, como GroupChat e GraphFlow, são agora unificados sob o conceito de Workflow. O seu AssistantAgent evolui naturalmente para ChatAgent, mantendo todas as suas capacidades.
Tutorial: Capturando e Treinando o Seu Primeiro Pokémon de IA
Agora vamos à parte prática! Vou guiá-lo passo a passo na captura e treino do seu primeiro agente de IA usando o Microsoft Agent Framework.
Passo 1: Preparar o Seu Kit de Treinador
Antes de começar a sua jornada, você precisa preparar o ambiente. É como comprar a sua mochila e os itens iniciais.
Para Python:
# Instalar o framework completo
pip install agent-framework --pre
# Instalar as dependências do Azure
pip install azure-identity azure-ai-openai
Para .NET:
# Instalar o pacote principal
dotnet add package Microsoft.Agents.AI --prerelease
# Instalar os pacotes do Azure
dotnet add package Azure.AI.OpenAI
dotnet add package Azure.Identity
Passo 2: Configurar as Suas Credenciais
Você precisa de acesso ao Azure OpenAI (o equivalente ao seu Trainer ID e credenciais). Existem duas formas de fazer isso:
Opção A: Usar a Azure CLI (Recomendado para começar)
# Fazer login no Azure
az login
Opção B: Usar variáveis de ambiente
# No Linux/Mac
export AZURE_OPENAI_ENDPOINT="https://seu-recurso.openai.azure.com/"
export AZURE_OPENAI_DEPLOYMENT_NAME="gpt-4"
export AZURE_OPENAI_API_VERSION="2024-08-01-preview"
export AZURE_OPENAI_API_KEY="sua-chave-api"
# No Windows (PowerShell)
$env:AZURE_OPENAI_ENDPOINT="https://seu-recurso.openai.azure.com/"
$env:AZURE_OPENAI_DEPLOYMENT_NAME="gpt-4"
$env:AZURE_OPENAI_API_VERSION="2024-08-01-preview"
$env:AZURE_OPENAI_API_KEY="sua-chave-api"
Passo 3: Capturar o Seu Primeiro Pokémon (Criar um Agente Básico)
Vamos criar o nosso primeiro agente, um “Pikachu Poeta” que escreve haikus sobre tecnologia.
Python:
# arquivo: meu_primeiro_agente.py
import asyncio
from agent_framework.azure import AzureOpenAIResponsesClient
from azure.identity import AzureCliCredential
async def main():
# Criar o cliente Azure OpenAI
# É como abrir a sua Pokédex e conectar ao servidor
client = AzureOpenAIResponsesClient(
credential=AzureCliCredential(),
# Se preferir usar variáveis de ambiente, descomente:
# endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
# deployment_name=os.environ["AZURE_OPENAI_DEPLOYMENT_NAME"],
)
# Capturar (criar) o agente
# É como lançar uma Poké Ball e dar um nome ao seu Pokémon
pikachu_poeta = client.create_agent(
name="PikachuPoeta",
instructions="""És um Pikachu que adora poesia.
Escreves haikus criativos sobre tecnologia e IA.
Sempre terminas as tuas respostas com 'Pika Pika!'"""
)
# Usar o agente (batalhar)
print("Treinador: Pikachu, escreve um haiku sobre IA!")
print("Pikachu Poeta:")
resposta = await pikachu_poeta.run(
"Escreve um haiku sobre inteligência artificial"
)
print(resposta)
# Iniciar a aventura
if __name__ == "__main__":
asyncio.run(main())
Executar:
python meu_primeiro_agente.py
Resultado esperado:
Treinador: Pikachu, escreve um haiku sobre IA!
Pikachu Poeta:
Bits dançam na luz
Máquinas que aprendem, sonham
Futuro desperta
Pika Pika!
Passo 4: Ensinar Movimentos ao Seu Pokémon (Adicionar Ferramentas)
Agora vamos ensinar ao nosso Pikachu um movimento especial, a capacidade de calcular números (como se fosse um ataque tipo Elétrico).
Python
# arquivo: agente_com_ferramentas.py
import asyncio
from agent_framework.azure import AzureOpenAIResponsesClient
from azure.identity import AzureCliCredential
# Definir um movimento (ferramenta)
# É como ensinar um TM (Technical Machine) ao seu Pokémon
def calcular_potencia(base: int, expoente: int) -> int:
"""
Calcula a potência de um número.
Args:
base: O número base
expoente: O expoente
Returns:
O resultado de base elevado a expoente
"""
return base ** expoente
async def main():
client = AzureOpenAIResponsesClient(
credential=AzureCliCredential(),
)
# Criar agente com ferramentas
# É como dar ao Pikachu acesso a movimentos especiais
pikachu_matematico = client.create_agent(
name="PikachuMatematico",
instructions="""És um Pikachu especialista em matemática.
Quando precisares de calcular potências, usa a ferramenta disponível.
Explica os cálculos de forma simples e termina com 'Pika Pika!'""",
tools=[calcular_potencia] # Ensinar o movimento
)
# Testar o movimento
print("Treinador: Pikachu, quanto é 2 elevado a 10?")
print("Pikachu Matemático:")
resposta = await pikachu_matematico.run(
"Quanto é 2 elevado a 10? Usa a ferramenta para calcular."
)
print(resposta)
if __name__ == "__main__":
asyncio.run(main())
Resultado esperado:
Treinador: Pikachu, quanto é 2 elevado a 10?
Pikachu Matemático:
Vou calcular isso para ti!
[Usando a ferramenta calcular_potencia...]
2 elevado a 10 é igual a 1024!
É como ter 1024 Pikachus juntos! Pika Pika!
Passo 5: Criar uma Equipe Pokémon (Workflow Multi-Agente)
Agora vamos criar uma equipe com múltiplos Pokémons trabalhando juntos, como numa batalha em dupla.
Python
# arquivo: equipe_pokemon.py
import asyncio
from agent_framework.azure import AzureOpenAIResponsesClient
from azure.identity import AzureCliCredential
async def main():
client = AzureOpenAIResponsesClient(
credential=AzureCliCredential(),
)
# Criar uma equipe de 3 Pokémons especialistas
# Pokémon 1: Especialista em Pesquisa
bulbasaur_pesquisador = client.create_agent(
name="BulbasaurPesquisador",
instructions="""És um Bulbasaur especialista em pesquisa.
Recolhes informações e factos sobre qualquer tópico.
És metódico e detalhista."""
)
# Pokémon 2: Especialista em Análise
charmander_analista = client.create_agent(
name="CharmanderAnalista",
instructions="""És um Charmander especialista em análise.
Analisas informações e identificas padrões importantes.
És perspicaz e objetivo."""
)
# Pokémon 3: Especialista em Comunicação
squirtle_comunicador = client.create_agent(
name="SquirtleComunicador",
instructions="""És um Squirtle especialista em comunicação.
Transformas análises técnicas em explicações simples e claras.
És amigável e didático."""
)
# Missão em equipe: Explicar o Microsoft Agent Framework
topico = "Microsoft Agent Framework"
print(f"Missão da Equipe: Explicar '{topico}' de forma simples\n")
# Fase 1: Pesquisa (Bulbasaur)
print("Bulbasaur está a pesquisar...")
pesquisa = await bulbasaur_pesquisador.run(
f"Recolhe os 3 factos mais importantes sobre {topico}"
)
print(f"Bulbasaur: {pesquisa}\n")
# Fase 2: Análise (Charmander)
print("Charmander está a analisar...")
analise = await charmander_analista.run(
f"Analisa estes factos e identifica o benefício principal: {pesquisa}"
)
print(f"Charmander: {analise}\n")
# Fase 3: Comunicação (Squirtle)
print("Squirtle está a preparar a explicação...")
explicacao = await squirtle_comunicador.run(
f"Explica isto de forma simples para iniciantes: {analise}"
)
print(f"Squirtle: {explicacao}\n")
print("Missão concluída! A equipe trabalhou em perfeita harmonia!")
if __name__ == "__main__":
asyncio.run(main())
Passo 6: Guardar o Progresso (Memória Persistente)
Como num jogo Pokémon, você quer guardar o progresso. Vamos adicionar memória ao agente.
Python
# arquivo: agente_com_memoria.py
import asyncio
from agent_framework.azure import AzureOpenAIResponsesClient
from azure.identity import AzureCliCredential
async def main():
client = AzureOpenAIResponsesClient(
credential=AzureCliCredential(),
)
# Criar agente com memória de conversa
pikachu_amigo = client.create_agent(
name="PikachuAmigo",
instructions="""És um Pikachu amigável que se lembra das conversas.
Lembras-te do nome do treinador e dos tópicos discutidos.
És prestativo e carinhoso."""
)
# Criar um thread (sessão de conversa)
# É como iniciar uma nova aventura guardada
thread = client.create_thread()
# Conversa 1
print("Treinador: Olá! O meu nome é Ash.")
resposta1 = await pikachu_amigo.run(
"Olá! O meu nome é Ash.",
thread_id=thread.id
)
print(f"Pikachu: {resposta1}\n")
# Conversa 2 (na mesma sessão)
print("Treinador: Qual é o meu nome?")
resposta2 = await pikachu_amigo.run(
"Qual é o meu nome?",
thread_id=thread.id
)
print(f"Pikachu: {resposta2}\n")
# O Pikachu deve lembrar-se que o nome é Ash!
if __name__ == "__main__":
asyncio.run(main())
Passo 7: Modo Avançado - Criar um Agente com Aprovação Humana
Para operações críticas, você pode querer aprovar as ações do agente antes de serem executadas.
Python
# arquivo: agente_com_aprovacao.py
import asyncio
from agent_framework.azure import AzureOpenAIResponsesClient
from azure.identity import AzureCliCredential
def enviar_email(destinatario: str, assunto: str, mensagem: str) -> str:
"""
Envia um email (simulado).
Esta ferramenta requer aprovação humana.
"""
# Em produção, aqui estaria o código real de envio
return f"Email enviado para {destinatario} com assunto '{assunto}'"
async def main():
client = AzureOpenAIResponsesClient(
credential=AzureCliCredential(),
)
# Criar agente com ferramenta que requer aprovação
agente_email = client.create_agent(
name="AgenteEmail",
instructions="""És um assistente que ajuda a redigir e enviar emails.
Sempre pedes confirmação antes de enviar.""",
tools=[enviar_email],
# Configurar aprovação humana para a ferramenta
tool_approval_required=True
)
print("Treinador: Envia um email para o Professor Carvalho")
print("Agente: Vou preparar o email e pedir a tua aprovação...\n")
# O agente irá preparar a ação mas esperar pela aprovação
# Em produção, isto integraria com um sistema de aprovação
resposta = await agente_email.run(
"""Envia um email para professor.carvalho@pokemon.com
com o assunto 'Relatório de Progresso'
e a mensagem 'Capturei 10 novos Pokémons esta semana!'"""
)
print(f"Agente: {resposta}")
if __name__ == "__main__":
asyncio.run(main())
Recursos para Continuar a Sua Jornada
Agora que capturou e treinou os seus primeiros Pokémons de IA, aqui estão os recursos para continuar a evoluir:
Documentação Oficial:
- Guia completo: https://learn.microsoft.com/en-us/agent-framework/
- Tutoriais passo a passo: https://learn.microsoft.com/en-us/agent-framework/tutorials/
Repositório GitHub:
- Código-fonte e exemplos: https://github.com/microsoft/agent-framework
- Mais de 1.6k stars e comunidade ativa [3]
Ferramentas de Desenvolvimento:
- VS Code AI Toolkit: IDE para desenvolver e testar agentes localmente
- Azure AI Foundry: Plataforma de hospedagem profissional para os seus agentes
- DevUI: Interface interativa para debugging de workflows
Conclusão: A Sua Jornada Como Mestre Pokémon da IA Começa Agora
O Microsoft Agent Framework é mais do que uma ferramenta técnica, é o seu passaporte para se tornar um verdadeiro Mestre Pokémon da IA Agêntica. Assim como Ash Ketchum começou a sua jornada com um único Pikachu e evoluiu para treinar uma equipe diversificada de Pokémons poderosos, você também pode começar com um agente simples e gradualmente construir sistemas multi-agente sofisticados.
A união do Semantic Kernel e do AutoGen neste framework unificado é como ter acesso a Pokémons de todas as gerações e regiões, com a garantia de que todos eles trabalharão em harmonia. Com padrões abertos, prontidão empresarial e uma comunidade vibrante de “treinadores” (desenvolvedores) a partilhar as suas descobertas, o futuro da IA agêntica nunca foi tão promissor.
As grandes empresas como KPMG, BMW, Fujitsu e outras já estão a treinar as suas equipes de Pokémons de IA para resolver desafios reais [1]. Agora é a sua vez de embarcar nesta jornada. Capture o seu primeiro agente, ensine-lhe novos movimentos, forme a sua equipe dos sonhos e prepare-se para as batalhas que virão.
Lembre-se: todo Mestre Pokémon começou com um único Pokémon e muita determinação. A sua aventura na IA Agêntica começa hoje.
Gotta catch ’em all! 🎮⚡
Referências
[1] Microsoft. (2025, October 1). Introducing Microsoft Agent Framework: The Open-Source Engine for Agentic AI Apps. Azure AI Foundry Blog. https://devblogs.microsoft.com/foundry/introducing-microsoft-agent-framework-the-open-source-engine-for-agentic-ai-apps/
[2] Microsoft. (2025). Introduction to Microsoft Agent Framework. Microsoft Learn. https://learn.microsoft.com/en-us/agent-framework/overview/agent-framework-overview
[3] Microsoft. (2025). microsoft/agent-framework. GitHub. https://github.com/microsoft/agent-framework



