O que são Agents?
Saber o que são agents virou requisito para qualquer desenvolvedor que trabalha com inteligência artificial, porque o termo ganhou relevância crescente com a popularização dos grandes modelos de linguagem (LLMs). Compreender como esses sistemas funcionam e onde se aplicam é essencial para projetar aplicações modernas baseadas em IA.
Neste artigo, você vai conhecer a definição formal, o ciclo de execução, os componentes, os protocolos de comunicação e as ferramentas do ecossistema .NET. Além disso, vai ver os cuidados necessários para colocar agents em produção.
Para se aprofundar no tema com a stack da Microsoft, conheça a imersão no Microsoft Agent Framework do balta.io.
O que são agents: definição
Um agent, no contexto de inteligência artificial, é um sistema capaz de perceber o ambiente ao seu redor, tomar decisões e executar ações de forma autônoma para atingir um objetivo.
Diferente de uma chamada simples a um LLM, em que o modelo recebe um prompt e retorna uma resposta, um agent opera em um ciclo contínuo. Ou seja, ele observa, raciocina, age e observa novamente.
A Anthropic, no guia Building effective agents, propõe uma distinção útil. Enquanto um workflow orquestra LLMs e ferramentas por caminhos de código predefinidos, um agent deixa o próprio modelo decidir dinamicamente os passos e as ferramentas que vai usar.
Essa diferença ajuda a responder o que são agents de forma prática. Se o fluxo está todo escrito no código, você tem um workflow; se o modelo escolhe o próximo passo, você tem um agent.
O ciclo ReAct
O padrão mais utilizado para implementar agents é o ReAct (Reasoning + Acting), descrito por Yao et al. em 2022. Nesse modelo, o agent alterna entre dois modos: pensar sobre o problema e executar ações concretas.
A cada iteração, o agent avalia o estado atual e decide qual ferramenta ou ação utilizar. Em seguida, ele executa a ação, observa o resultado e repete o ciclo até atingir o objetivo ou esgotar os recursos disponíveis.
De forma simplificada, uma execução segue esta sequência:
# exemplo de rastro de execução no padrão ReAct
Thought: I need the weather forecast for Amsterdam
Action: GetWeather(location: "Amsterdam")
Observation: "The weather in Amsterdam is cloudy with a high of 15°C."
Thought: I have the information I need
Answer: Amsterdam is cloudy, with a high of 15°C.
O ponto central é que a observação volta para o contexto do modelo. Dessa forma, cada nova decisão considera o resultado das ações anteriores.
Componentes principais dos agents
Um agent tem três elementos fundamentais: o modelo de linguagem, que funciona como o "cérebro", as ferramentas disponíveis, que funcionam como o "corpo", e a memória, que guarda o contexto acumulado.
O modelo de linguagem cuida do raciocínio. Por sua vez, as ferramentas permitem que o agent interaja com sistemas externos, como APIs, bancos de dados, sistemas de arquivos e outros serviços.
A memória armazena o histórico de ações e observações. Com isso, o agent mantém coerência ao longo de toda a execução, mesmo quando ela envolve muitos passos.
Modelo de linguagem
O modelo interpreta o objetivo, planeja os próximos passos e decide quando parar. Por isso, a qualidade do raciocínio de um agent depende diretamente da capacidade do LLM escolhido.
Se você quer entender o que acontece dentro desse "cérebro", o artigo sobre como funciona uma LLM explica os fundamentos.
Memória
A memória de curto prazo corresponde ao histórico da conversa e das observações dentro de uma execução. Já a memória de longo prazo guarda informações entre sessões, normalmente em bancos de dados ou armazenamentos vetoriais.
No Microsoft Agent Framework, por exemplo, sessões e provedores de contexto cuidam desse estado. O artigo sobre memória e provedores de contexto no Microsoft Agent Framework mostra os detalhes.
Ferramentas (tools) nos agents
As ferramentas são funções ou serviços que o agent pode invocar durante sua execução. Por exemplo, um agent pode ter acesso a uma ferramenta de busca na web, a um interpretador de código, a um cliente HTTP ou a um leitor de arquivos.
O modelo de linguagem decide, com base no contexto, qual ferramenta utilizar e quais parâmetros passar. Então, o resultado da ferramenta entra no contexto e o raciocínio continua.
Tecnicamente, esse mecanismo se apoia no recurso de function calling dos LLMs. A aplicação descreve cada ferramenta com nome, descrição e esquema de parâmetros, e o modelo devolve um pedido estruturado de chamada quando precisa dela.
Por isso, descrições claras fazem muita diferença. Quanto mais precisa a descrição, maior a chance de o modelo escolher a ferramenta certa com os argumentos corretos.
Agents vs. LLM simples
A diferença central entre um LLM simples e um agent está na autonomia e na capacidade de agir sobre o mundo externo.
Um LLM responde a um prompt. Um agent, por outro lado, planeja, executa passos intermediários, corrige erros ao longo do caminho e persiste até atingir o objetivo determinado.
| Característica | LLM simples | Agent |
|---|---|---|
| Interação | Uma pergunta, uma resposta | Ciclo de várias iterações |
| Ações externas | Não executa | Invoca ferramentas e APIs |
| Estado | Apenas o prompt atual | Memória de ações e observações |
| Correção de erros | Depende de um novo prompt | Reavalia e tenta outro caminho |
Na prática, essa autonomia tem custo. Cada iteração consome tokens e tempo, então vale usar um agent apenas quando a tarefa realmente exige vários passos.
Padrões de workflow antes da autonomia total
Nem todo problema precisa de autonomia completa. O próprio guia da Anthropic recomenda começar pela solução mais simples possível e só aumentar a complexidade quando os resultados justificarem.
Nesse sentido, o guia descreve alguns padrões de workflow que ficam entre uma chamada isolada ao modelo e um agente totalmente autônomo.
Encadeamento e roteamento
No encadeamento de prompts (prompt chaining), a saída de uma chamada vira a entrada da próxima. Por exemplo, um passo gera um rascunho e o passo seguinte traduz esse rascunho para outro idioma.
No roteamento (routing), uma primeira chamada classifica a entrada e a direciona para um fluxo especializado. Assim, perguntas de suporte técnico e pedidos de reembolso seguem caminhos diferentes, cada um com instruções próprias.
Paralelização, orquestrador e avaliador
Na paralelização, várias chamadas trabalham ao mesmo tempo sobre partes independentes da tarefa, e o código junta os resultados no final. Esse padrão também serve para gerar várias respostas e escolher a melhor por votação.
No padrão orquestrador e trabalhadores (orchestrator-workers), um modelo central divide a tarefa dinamicamente e delega cada parte. Por sua vez, no padrão avaliador e otimizador (evaluator-optimizer), um modelo gera a resposta enquanto outro a critica até que ela atinja o critério de qualidade.
Esses padrões oferecem previsibilidade e custo controlado. Portanto, antes de construir um agente autônomo, vale verificar se um deles já resolve o problema.
Quando o número de passos não pode ser previsto e o caminho depende do que o sistema descobre durante a execução, aí sim a autonomia compensa. É exatamente nesse ponto que entra o ciclo ReAct descrito anteriormente.
Multi-agent systems
Em sistemas mais complexos, múltiplos agents colaboram entre si. Cada agent possui uma especialidade e pode delegar tarefas a outros agents ou orquestrar subprocessos.
Nesse modelo, geralmente existe um agent orquestrador que recebe o objetivo de alto nível e coordena os agents especializados. Essa abordagem recebe o nome de arquitetura multi-agent ou orquestração de agents.
Por exemplo, um sistema de produção de conteúdo pode ter um agent pesquisador, um agent redator e um agent revisor. O orquestrador distribui o trabalho, junta os resultados e decide quando a tarefa terminou.
No Microsoft Agent Framework, os workflows dão controle explícito sobre esses caminhos de execução. O artigo sobre como orquestrar a execução de agentes com workflows aprofunda esse tema.
Protocolos de comunicação entre agents
Para que agents se comuniquem com ferramentas e entre si de forma padronizada, surgiram protocolos como o MCP (Model Context Protocol) e o A2A (Agent-to-Agent).
O MCP define como um servidor expõe ferramentas, recursos e prompts para a aplicação que hospeda o modelo. A Anthropic lançou o protocolo em novembro de 2024 e, em dezembro de 2025, o doou à Agentic AI Foundation, ligada à Linux Foundation.
O A2A define como agents se comunicam diretamente. Assim, um agent consegue descobrir, invocar e colaborar com outro agent de forma interoperável, mesmo que cada um use uma tecnologia diferente.
O Google apresentou o A2A em abril de 2025, e o projeto também passou para a Linux Foundation. A descoberta acontece por meio de agent cards, documentos que descrevem nome, capacidades e endpoints de cada agent.
Para entender cada protocolo em detalhe, leia o que é MCP e o artigo sobre comunicação entre agentes utilizando o protocolo A2A.
Agents no ecossistema .NET
No ecossistema .NET, o Microsoft Agent Framework (MAF) e o Semantic Kernel são as principais bibliotecas para construção de agents.
O Semantic Kernel oferece abstrações para ferramentas, memória e planejamento. Segundo a documentação oficial, o Microsoft Agent Framework é o sucessor direto do Semantic Kernel e do AutoGen, criado pelas mesmas equipes.
O MAF foca em orquestração multi-agent, com workflows baseados em grafos e suporte nativo ao MCP e ao padrão A2A. Além disso, ele se integra ao ASP.NET Core por meio de pacotes de hospedagem que expõem agents como endpoints HTTP.
Criando agents com ferramentas em C#
No MAF, qualquer método C# pode virar uma ferramenta por meio do AIFunctionFactory.Create. O atributo Description ajuda o modelo a entender quando chamar a função:
using System.ComponentModel;
using Azure.AI.Projects;
using Azure.Identity;
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
// Ferramenta simulada que o agent pode invocar
[Description("Get the weather for a given location.")]
static string GetWeather([Description("The location to get the weather for.")] string location)
=> $"The weather in {location} is cloudy with a high of 15°C.";
AIAgent agent = new AIProjectClient(
new Uri("<your-foundry-project-endpoint>"),
new DefaultAzureCredential())
.AsAIAgent(
model: "gpt-4o-mini",
instructions: "You are a helpful assistant",
tools: [AIFunctionFactory.Create(GetWeather)]);
// O agent decide sozinho se precisa chamar GetWeather
Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));
Nesse exemplo, o agent recebe a pergunta, percebe que precisa de dados externos e chama GetWeather. Depois, usa o retorno da ferramenta para montar a resposta final.
O artigo sobre como utilizar tools no Microsoft Agent Framework mostra outras variações desse padrão.
Expondo agents com ASP.NET Core e A2A
A integração com ASP.NET Core permite publicar um agent para que outros agents o consumam via A2A:
// Registra o agent na injeção de dependência
var pirateAgent = builder.AddAIAgent("pirate",
instructions: "You are a pirate. Speak like a pirate",
description: "An agent that speaks like a pirate.");
// Expõe o agent pelo protocolo A2A
builder.Services.AddA2AServer();
var app = builder.Build();
app.MapA2AServer();
app.Run();
Com isso, qualquer cliente compatível com A2A consegue descobrir e conversar com o agent, independentemente da linguagem em que foi escrito.
Casos de uso de agents
Agents se aplicam a cenários em que a tarefa é complexa demais para uma única chamada ao modelo. Exemplos incluem revisão automatizada de código, geração de relatórios a partir de múltiplas fontes, automação de workflows de negócio e assistentes com acesso a sistemas internos.
A escolha de usar um agent deve partir da necessidade de autonomia, encadeamento de passos e interação com sistemas externos. Caso a tarefa tenha passos fixos e previsíveis, um workflow simples costuma ser mais barato e mais fácil de testar.
Se você está em dúvida entre construir um agent ou apenas expor ferramentas, o artigo agents ou MCP: qual escolher compara as duas abordagens.
Considerações de produção para agents
Agents em produção exigem atenção especial a limites de execução, tratamento de falhas e observabilidade. Por isso, é fundamental definir um número máximo de iterações, registrar todas as ações executadas e implementar mecanismos de timeout.
A ausência de controles pode resultar em loops infinitos, consumo excessivo de tokens e comportamentos imprevisíveis em cenários não testados.
No MAF, o FunctionInvokingChatClient controla quantas rodadas de chamadas de ferramenta acontecem por requisição. Além disso, o framework permite exigir aprovação humana antes de ferramentas sensíveis, como envio de e-mails ou exclusão de arquivos.
A observabilidade também merece cuidado desde o início. O artigo sobre observabilidade de agentes e workflows no Microsoft Agent Framework mostra como rastrear cada passo com OpenTelemetry.
Por fim, aplique o princípio do menor privilégio. Cada ferramenta deve acessar apenas o que precisa, porque um agent autônomo com permissões amplas amplia muito o impacto de um erro.
Conclusão
Entender o que são agents é perceber uma evolução significativa na forma como construímos sistemas de IA. Ao combinar raciocínio, ação e memória, eles habilitam automações impossíveis com chamadas isoladas a modelos de linguagem.
Compreender os fundamentos de agents é o primeiro passo para projetar sistemas inteligentes, robustos e capazes de operar de forma autônoma em ambientes reais. Para colocar a mão no código, comece pelo artigo criando seu primeiro agente de IA.
FAQ
Qual a diferença entre agent e chatbot?
Um chatbot tradicional responde a mensagens. Um agent, além de conversar, planeja passos, chama ferramentas e age sobre sistemas externos para atingir um objetivo.
Todo agent precisa de um LLM?
No sentido moderno do termo, sim. O LLM fornece o raciocínio que decide quais ações executar e quando parar.
O que é o padrão ReAct?
ReAct combina raciocínio e ação em um ciclo. O agent pensa, executa uma ação, observa o resultado e repete até concluir a tarefa.
Qual a diferença entre MCP e A2A?
Em resumo, o MCP conecta agents a ferramentas e dados. Já o A2A conecta agents a outros agents, permitindo descoberta e colaboração entre sistemas diferentes.
Devo usar Semantic Kernel ou Microsoft Agent Framework?
Para projetos novos, a Microsoft apresenta o Agent Framework como sucessor do Semantic Kernel e do AutoGen. Projetos existentes contam com guias oficiais de migração.
Como evitar que um agent entre em loop?
Defina um limite máximo de iterações, aplique timeouts e registre todas as ações. Esses controles impedem consumo excessivo de tokens e comportamentos inesperados.