Microsoft Agent - O início da era dos agentes
![]() |
Hoje veremos o Microsoft Agent Framework um kit de desenvolvimento para criar Agentes de IA e fluxo de trabalho para .NET e Phyton. |
Se você tem desenvolvido com .NET ou explorado fluxos de trabalho de IA, este mês a Microsoft lançou discretamente o Agent Framework (Prévia Pública) — e não é apenas mais um lançamento de SDK.
O Microsoft Agent Framework é um kit de desenvolvimento de software livre para criar agentes de IA e fluxos de trabalho de vários agentes para .NET e Python. Ele reúne e estende ideias de projetos Semânticos kernel e AutoGen , combinando seus pontos fortes ao mesmo tempo em que adiciona novos recursos. Criada pelas mesmas equipes, é a base unificada para a criação de agentes de IA daqui para frente.
Ele oferece duas categorias primárias de funcionalidades:
Agentes
de IA: agentes individuais que usam LLMs para processar entradas de
usuário, ferramentas de chamada e servidores MCP para executar ações e gerar
respostas.
Fluxos de trabalho: fluxos de trabalho
baseados em grafo que conectam vários agentes e funções para executar tarefas
complexas e de várias etapas.
| Um agente de IA
usa uma LLM para processar entradas do usuário, tomar decisões, chamar
ferramentas e
servidores MCP para executar ações e gerar respostas.
Um fluxo de trabalho pode expressar uma sequência predefinida de operações que pode incluir agentes de IA como componentes, mantendo a consistência e a confiabilidade. |
Ele é um novo modelo de runtime para construir sistemas inteligentes, com estado (stateful) e de múltiplos agentes diretamente no .NET. Pense nele como o LangChain encontra o Semantic Kernel — mas construído nativamente para o stack da Microsoft.
De Prompts a Agentes
Até agora, a maioria dos desenvolvedores .NET interagia com a IA por meio de APIs sem estado (stateless):
Prompt de entrada → resposta de saída → repete.
O Agent Framework introduz uma nova camada de abstração — uma que adiciona:
- Estado baseado em thread (seus agentes lembram do contexto)
-
Chamada de função (Function calling) (raciocínio estruturado +
invocação de ferramentas)
- Filtros e telemetria (orquestração
rastreável)
- Suporte a cross-runtime (.NET e Python, local ou
Azure)
Isso significa que seus aplicativos .NET podem finalmente pensar, agir e colaborar — não apenas chamar um modelo uma vez e esquecer.
Arquitetura
A arquitetura do Microsoft Agent Framework é o coração da sua capacidade de construir sistemas de IA complexos e com estado, unindo os pontos fortes do Semantic Kernel (foco empresarial, extensibilidade) e do AutoGen (orquestração multi-agente).

1- Aplicação .NET (Sua Aplicação)
- É a sua camada de
apresentação e lógica de negócio.
- Ela inicia a conversa ou o fluxo de
trabalho criando um AgentThread (para estado) e adicionando etapas (AgentCall).
- Ela consome o resultado final do agente ou do fluxo de trabalho.
- O
desenvolvedor interage com APIs simples e intuitivas como thread.AddStep() e
thread.ExecuteAsync().
2- Microsoft.AgentFramework (O Orquestrador)
Esta é a camada
central, o runtime que adiciona a inteligência e o estado que faltavam nas
chamadas de API tradicionais:
- Orquestração de Agente - Gerencia a sequência, o paralelismo e a colaboração entre múltiplos agentes (padrões AutoGen como sequencial, concorrente, group chat).
- Estado basedo em thread - Utiliza a classe AgentThread (ou
abstrações semelhantes) para persistir o histórico da conversa (context)
e o estado atual da tarefa
- Chamada de função - Permite que o agente, em vez de apenas responder, decida invocar código (funções .NET, APIs externas, etc.)
- Filtros/ Telemetria - Inclui integração nativa com o OpenTelemetry para rastreamento distribuído, log de eventos e métricas
- Suporte Cross-Runtime - A abstração é consistente, permitindo que a orquestração coordene agentes escritos em .NET e Python, localmente ou na nuvem.
3- APIs de Modelo (Model APIs)
Esta camada trata da
comunicação real com os Grandes Modelos de Linguagem (LLMs).
É agnóstica
em relação à nuvem, ou seja, suporta:
- Modelos locais
(Local-first) como Ollama e Grok.
- Serviços de nuvem como Azure
AI, Azure OpenAI e OpenAI.
O Framework abstrai a chamada de API,
permitindo que você troque o LLM subjacente sem refatorar o código do seu
agente.
Exemplo prático
Este exemplo ilustra um princípio fundamental de design que é crucial para o
Microsoft Agent Framework: a separação entre o Agente e o Orquestrador.
Ele usa o OllamaAgent para
demonstrar que o Agent Framework é agnóstico em relação ao LLM.
Vamos criar um projeto console no Visual Studio chamado OllamaAgentes.
No projeto vamos criar a interface IAIAgent:
Define o contrato que todos os agentes devem seguir, expondo o método
InvokeAsync para executar prompts de IA
de forma padronizada.
| namespace
AgentesOllama; public interface IAIAgent { Task<string> InvokeAsync(string prompt); } |
E sua implementação na classe OllamaAgente que Implementa o agente que se conecta localmente ao Ollama via HTTP, envia o prompt e retorna o texto gerado pelo modelo:
using System.Text; using System.Text.Json; namespace AgentesOllama; public class OllamaAgent : IAIAgent { public async Task<string> InvokeAsync(string prompt) { using var client = new HttpClient(); var payload = new { model = "llama3.1", prompt }; var content = new StringContent(JsonSerializer.Serialize(payload), Encoding.UTF8, "application/json"); using var response = await client.PostAsync("http://localhost:11434/api/generate" ,content); response.EnsureSuccessStatusCode(); var stream = await response.Content.ReadAsStreamAsync(); using var reader = new StreamReader(stream); var sb = new StringBuilder(); while (!reader.EndOfStream) { var line = await reader.ReadLineAsync(); if (string.IsNullOrWhiteSpace(line)) continue; try { using var doc = JsonDocument.Parse(line); if (doc.RootElement.TryGetProperty("response", out var resp)) { sb.Append(resp.GetString()); } } catch { // Ignora linhas malformadas } } return sb.ToString().Trim(); } } |
Crie a classe AgentCall que representa uma etapa do fluxo,
associando um agente específico a uma entrada (Input)
que será processada.
| namespace
AgentesOllama; public class AgentCall { public IAIAgent? Agent { get; set; } public string? Input { get; set; } } |
A seguir a classe AgentThread que gerencia e executa em
sequência todas as chamadas (AgentCall)
adicionadas, coordenando o fluxo multiagente.
namespace AgentesOllama; public class AgentThread { private readonly List<AgentCall> _steps = new(); public void AddStep(AgentCall call) => _steps.Add(call); public async Task ExecuteAsync() { foreach (var step in _steps) { Console.WriteLine($"\n Executando agente: {step.Agent!.GetType().Name}"); var result = await step.Agent.InvokeAsync(step.Input!); Console.WriteLine($"🔹 Resultado:\n{result}"); } } } |
Agora na classe Program inclua o código que vai invocar o agente:
| using AgentesOllama; var thread = new AgentThread(); thread.AddStep(new AgentCall { Agent = new OllamaAgent(), Input = "O que é uma estrela ?" }); await thread.ExecuteAsync(); Console.ReadLine(); |
Este código cria uma instância de
AgentThread, adiciona os agentes com
seus prompts e inicia a execução, exibindo os resultados no console.
Executando o projeto iremos obter o seguinte resultado:

Temos a resposta do Agente para a pergunta: O que é uma estrela ?
O poder real surge quando você começa a encadear agentes:
thread.AddStep(new AgentCall { Agent = new GrokAgent(), Input = "Extract key insights from customer feedback JSON" }); thread.AddStep(new AgentCall { Agent = new OllamaAgent(), Input = "Rewrite insights as a marketing summary" }); await thread.ExecuteAsync(); |
Cada agente lida com seu próprio domínio:
Grok →
raciocínio estruturado (JSON, extração de dados)
Ollama →
geração criativa (texto, resumos)
Adicione Elsa Workflows
ou seu orquestrador favorito, e você terá uma cadeia de agentes completa —
construída inteiramente em C#.
|
Elsa Workflows é um framework de workflows .NET de código aberto que permite criar e executar fluxos de trabalho (workflows) em aplicações .NET. É uma biblioteca que você pode adicionar aos seus projetos para implementar lógica de negócio baseada em workflows.(https://v2.elsaworkflows.io/) |
Desta forma O Microsoft Agent Framework não é apenas uma biblioteca de conveniência — ela é projetada para cargas de trabalho de produção reais.
- Estado baseado em Thread Não é mais necessário serializar o contexto entre as
etapas — as threads persistem o estado nativamente.
- Telemetria
integrada Cada chamada de agente pode emitir métricas, rastreamentos (traces) e
filtros para observabilidade e governança.
- Híbrido Local + Nuvem Comece
localmente com Ollama ou Grok, implante perfeitamente no Azure AI Foundry quando
você escalar.
- Ciente de Custos Filtros permitem que você gerencie
o uso de tokens e orçamentos de desempenho — crítico para configurações
corporativas.
E por ser nativo do .NET, você pode depurar, criar perfis e fazer benchmarking com as mesmas ferramentas que já utiliza
Cenários do Mundo Real
Isso não é pesquisa — é engenharia pronta para ser lançada.
Copilots corporativos: Construa assistentes departamentais para
portais de finanças, RH ou seguros — integrados com Keycloak ou Azure AD.
RPA Multi-agente: Combine parsers de documentos, extratores
de dados e geradores de resposta em fluxos de tarefas autônomos.
Agentes Offline: Mantenha tudo on-premise para conformidade, usando
modelos Ollama ou Grok localmente.
Seus aplicativos .NET podem agora orquestrar cadeias de raciocínio, integrar-se a APIs internas e executar sistemas de decisão orientados por políticas — tudo sem a sobrecarga do Python.
“O Agent Framework marca o momento em que os desenvolvedores .NET param de
chamar a IA — e começam a colaborar com ela.”
Seja você construindo
copilots, assistentes de fluxo de trabalho ou ecossistemas multi-agentes
completos, é aqui que seu aplicativo .NET de próxima geração começa.
Acesse : https://github.com/microsoft/agent-framework e confira !!!
E estamos conversados...
Nota: Assista a vídeo aula sobre o MAF no meu canal: https://www.youtube.com/watch?v=Cr3JvrsCCx8
"Ora, o fim do mandamento é o amor de um coração puro, e de uma boa consciência,
e de uma fé não fingida."
1 Timóteo 1:5
Referências:
NET - Unit of Work - Padrão Unidade de ...