
À medida que os agentes de IA se tornam suficientemente capazes para lidar com fluxos de trabalho reais, surgiu um novo desafio de infraestrutura: como comunicam humanos e agentes durante a execução — não apenas no início e no fim, mas ao longo de todo o processo?
O protocolo AG-UI é uma especificação aberta criada precisamente para resolver isto. Define um padrão para a forma como os agentes de IA fazem streaming de eventos, pedem entrada e expõem estado a aplicações de frontend e operadores humanos em tempo real. Se o MCP (Model Context Protocol) normalizou a forma como os agentes acedem a ferramentas, o AG-UI normaliza a forma como os agentes falam com os utilizadores.
Este guia explica o que é o AG-UI, porque é importante, como funciona e como começar a utilizá-lo na sua stack de agentes.
O problema que o AG-UI resolve
Antes do AG-UI, cada equipa que construía uma aplicação de agente de IA virada para humanos tinha de inventar o seu próprio protocolo de comunicação. Como diz o agente ao frontend que está a pensar? Como pede uma decisão humana? Como envia o utilizador uma correcção a meio da tarefa? Como é apresentado o progresso?
As respostas eram diferentes em cada equipa — muitas vezes ad hoc, mal documentadas e difíceis de reutilizar. Isto criou um ecossistema fragmentado em que:
- frameworks de agentes não conseguiam partilhar componentes de frontend
- os programadores tinham de reconstruir a infraestrutura de UI em streaming de raiz em cada projecto
- os utilizadores tinham experiências inconsistentes entre diferentes produtos com agentes
- depurar o comportamento do agente exigia logging personalizado em cada implementação
O AG-UI estabelece um vocabulário comum e uma estrutura de eventos partilhada para que qualquer framework de agentes possa produzir eventos que qualquer frontend compatível com AG-UI consiga renderizar — sem código de integração personalizado.
O que é o AG-UI?
O AG-UI é um protocolo aberto de eventos em streaming que define o formato e a semântica das mensagens trocadas entre agentes de IA e interfaces voltadas para o utilizador.
É:
- agnóstico quanto ao transporte: funciona sobre HTTP (Server-Sent Events), WebSockets ou qualquer transporte de streaming
- agnóstico quanto ao framework: pode ser implementado em qualquer linguagem ou framework de agentes
- bidireccional: os agentes enviam eventos ao frontend; os utilizadores enviam mensagens e interrupções ao agente
- com estado: o protocolo inclui snapshots de estado para que os frontends possam reconstruir o contexto completo do agente em qualquer momento
Não é:
- um protocolo de ferramentas, esse é o papel do MCP
- um framework de agentes em si
- uma biblioteca de componentes de UI, embora existam implementações de referência
AG-UI vs. MCP: perceber a distinção
Uma fonte comum de confusão é a forma como o AG-UI se relaciona com o Model Context Protocol (MCP) da Anthropic.
| Dimensão | MCP | AG-UI |
|---|---|---|
| Objectivo | Comunicação agente ↔ ferramenta | Comunicação agente ↔ humano/frontend |
| Direcção | O agente chama ferramentas e recebe resultados | O agente transmite eventos; o humano envia mensagens |
| Público | Programadores de ferramentas/servidores | Programadores de frontend e de frameworks de agentes |
| Foco | Que capacidades o agente pode usar | Como o agente comunica estado e progresso |
| Relação | Trata do lado das ferramentas do agente | Trata do lado da interface com o utilizador |
São complementares. Um agente em produção utiliza normalmente o MCP para aceder a ferramentas, como pesquisa na web, geração de imagem e execução de código, e o AG-UI para comunicar o seu progresso e pedir entrada humana.
Conceitos centrais no AG-UI
Tipos de evento
O AG-UI define um conjunto padrão de tipos de evento emitidos pelos agentes:
Eventos de ciclo de vida:
RUN_STARTED/RUN_FINISHED— o agente iniciou ou concluiu a execuçãoSTEP_STARTED/STEP_FINISHED— uma etapa discreta dentro do fluxo de trabalho começou ou terminouRUN_ERROR— o agente encontrou um erro irrecuperável
Eventos de mensagem:
TEXT_MESSAGE_START/TEXT_MESSAGE_CONTENT/TEXT_MESSAGE_END— saída de texto em streaming do agenteTOOL_CALL_START/TOOL_CALL_ARGS/TOOL_CALL_END— o agente está a chamar uma ferramenta
Eventos de estado:
STATE_SNAPSHOT— um snapshot completo do estado actual do agenteSTATE_DELTA— uma actualização incremental do estadoMESSAGES_SNAPSHOT— o histórico completo da conversa num dado momento
Eventos personalizados:
CUSTOM— para eventos específicos da aplicação não cobertos pelo conjunto padrão
O turno humano
O AG-UI também normaliza a forma como os humanos interagem com agentes em execução. O frontend envia um AgentInput para interromper, redireccionar ou fornecer informação ao agente a meio da execução. Isto é diferente de um novo turno de conversa — o agente está em execução, e o humano está a influenciar a sua tarefa actual.
Arquitectura baseada em threads
O AG-UI organiza execuções de agentes em threads — contextos persistentes de conversa que mantêm estado ao longo de múltiplas execuções. Uma thread no AG-UI é aproximadamente equivalente a uma sessão ou conversa noutros frameworks, mas com suporte explícito no protocolo para retomar, ramificar e reproduzir.
Como o AG-UI funciona: um fluxo típico
1. O utilizador submete uma tarefa através do frontend
2. O frontend envia um pedido InitialRun com RunAgentInput para o backend do agente
3. O agente inicia a execução e emite o evento RUN_STARTED
4. O agente emite STEP_STARTED para cada etapa de planeamento
5. O agente chama uma ferramenta → emite TOOL_CALL_START, TOOL_CALL_ARGS, TOOL_CALL_END
6. O agente gera texto → emite TEXT_MESSAGE_START, TEXT_MESSAGE_CONTENT (streaming), TEXT_MESSAGE_END
7. O agente emite STATE_DELTA para actualizar o estado do frontend em tempo real
8. O utilizador decide redireccionar o agente → envia AgentInput com uma correcção
9. O agente incorpora a correcção e continua
10. O agente emite RUN_FINISHED
O frontend recebe estes eventos como um stream e renderiza-os progressivamente — mostrando chamadas de ferramentas à medida que acontecem, exibindo texto em tempo real e actualizando um indicador de progresso com base nos eventos de etapa.
Implementar o AG-UI
Suporte de frameworks
O AG-UI está a ganhar suporte nos principais frameworks de agentes:
- LangGraph: os eventos AG-UI podem ser emitidos a partir de nós do grafo usando o SDK Python do AG-UI
- Integração AG-UI com CopilotKit: o CopilotKit, um framework de frontend em React para IA, disponibiliza suporte nativo a AG-UI
- Implementações personalizadas: a especificação do AG-UI é aberta; qualquer framework pode implementá-la com as definições dos tipos de evento
Início rápido (Python)
from ag_ui.core import (
RunAgentInput, EventType,
RunStartedEvent, TextMessageStartEvent,
TextMessageContentEvent, TextMessageEndEvent,
RunFinishedEvent,
)
import uuid
async def run_agent(input: RunAgentInput):
run_id = str(uuid.uuid4())
yield RunStartedEvent(
type=EventType.RUN_STARTED,
thread_id=input.thread_id,
run_id=run_id,
)
msg_id = str(uuid.uuid4())
yield TextMessageStartEvent(type=EventType.TEXT_MESSAGE_START, message_id=msg_id, role="assistant")
for chunk in agent.stream(input.messages):
yield TextMessageContentEvent(
type=EventType.TEXT_MESSAGE_CONTENT,
message_id=msg_id,
delta=chunk
)
yield TextMessageEndEvent(type=EventType.TEXT_MESSAGE_END, message_id=msg_id)
yield RunFinishedEvent(type=EventType.RUN_FINISHED, thread_id=input.thread_id, run_id=run_id)
Ligar ao AnyCap
Quando o seu agente com AG-UI precisa de capacidades do mundo real, como pesquisa na web, geração de imagem e armazenamento de ficheiros, a AnyCap integra-se como uma camada de ferramentas por baixo da orquestração. O agente chama ferramentas da AnyCap durante o seu ciclo de execução e emite os eventos TOOL_CALL_* correspondentes para que o frontend mostre o que está a acontecer:
User: "Pesquisa os 5 principais frameworks de IA e cria uma imagem-resumo"
Agent emits: TOOL_CALL_START (tool: "anycap_search", args: {...})
Agent emits: TOOL_CALL_END (result: search results)
Agent emits: TOOL_CALL_START (tool: "anycap_image_generate", args: {...})
Agent emits: TOOL_CALL_END (result: image URL)
Agent emits: TEXT_MESSAGE (streaming summary with embedded image)
Esta transparência total — exposta através dos eventos do AG-UI — é o que separa uma interface humano-agente fiável de uma caixa-preta.
Porque é que o AG-UI importa para aplicações de agentes em produção
Se está a criar produtos com agentes, o AG-UI oferece:
Reutilização de componentes. Componentes de frontend criados de acordo com a especificação do AG-UI funcionam com qualquer backend compatível. Crie uma UI de chat em streaming uma vez e use-a com LangGraph, CrewAI e AutoGen sem alterações.
Experiência do utilizador consistente. Os utilizadores veem os mesmos padrões de interacção em diferentes fluxos de trabalho com agentes porque os tipos de evento são normalizados.
Depuração. Os snapshots de estado e o stream de eventos do AG-UI fornecem um registo completo da execução do agente. Reproduzir um stream de eventos mostra exactamente o que o agente viu e fez em cada etapa.
Supervisão humana. O mecanismo AgentInput para intervenção humana a meio da tarefa já faz parte do protocolo — não foi acrescentado mais tarde como remendo.
Conclusão
O AG-UI preenche uma lacuna real na stack de infraestrutura de IA agentiva. À medida que os agentes se tornam mais capazes e mais virados para o utilizador, o protocolo de como comunicam o seu estado e recebem entrada humana torna-se tão importante como as ferramentas a que conseguem aceder.
Para programadores que constroem produtos com agentes em 2026, adoptar o AG-UI cedo significa construir sobre uma base para a qual o ecossistema está a convergir — em vez de manter uma camada de comunicação feita à medida que se torna um passivo à medida que o produto cresce.
Leituras adicionais:
- Comparação de frameworks de orquestração de IA
- MCP vs. Skills: qual deve usar?
- Capacidades da AnyCap
- Repositório AG-UI no GitHub
- Guia de ferramentas de orquestração de automação 2026 — Zapier vs n8n vs Temporal vs LangGraph: como escolher
- Ferramentas de orquestração de dados 2026 — De Airflow à orquestração nativa de IA no seu pipeline de agentes