View a markdown version of this page

AG-UI contrato de protocolo - Amazon Bedrock AgentCore

AG-UI contrato de protocolo

O contrato de AG-UI protocolo define os requisitos para implementar a comunicação da interface do agente para o usuário no Amazon Bedrock Runtime. AgentCore Esse contrato especifica os requisitos técnicos, os endpoints e os padrões de comunicação que seu AG-UI agente deve implementar.

Por exemplo de código, consulte Implantar AG-UI servidores no AgentCore Runtime.

Requisitos de implementação do protocolo

Seu AG-UI agente deve implementar esses requisitos específicos de protocolo:

  • Transporte: Server-Sent Eventos (SSE) ou WebSocket - SSE fornece streaming unidirecional do servidor para o cliente, enquanto WebSocket permite a comunicação bidirecional em tempo real

  • Gerenciamento de sessão: a plataforma adiciona automaticamente o X-Amzn-Bedrock-AgentCore-Runtime-Session-Id cabeçalho para isolamento da sessão

Requisitos de contêiner

Seu AG-UI agente deve ser implantado como um aplicativo em contêiner que atenda às seguintes especificações:

  • Host: 0.0.0.0

  • Porta: 8080 - Porta padrão para comunicação do AG-UI agente (igual ao protocolo HTTP)

  • Plataforma: contêiner ARM64 - necessário para compatibilidade com o ambiente de execução AWS Amazon Bedrock AgentCore

Requisitos de caminho

/invocações - POST

Finalidade

Recebe solicitações de usuários e transmite respostas como Server-Sent eventos (SSE)

Casos de uso

O endpoint de invocações serve a vários propósitos principais:

  • Streaming de respostas de bate-papo

  • Status do agente e etapas de pensamento

  • Chamadas de ferramentas e resultados

Formato de solicitação

O Amazon Bedrock AgentCore passa as cargas de solicitação diretamente para seu contêiner sem validação. Para ser AG-UI-compliant, suas solicitações devem seguir o RunAgentInput formato. Sua implementação de contêiner determina quais campos são obrigatórios e como os erros de validação são tratados.

AG-UI-compliant os agentes esperam uma carga RunAgentInput JSON. Exemplo:

{ "threadId": "thread-123", "runId": "run-456", "messages": [{"id": "msg-1", "role": "user", "content": "Hello, agent!"}], "tools": [], "context": [], "state": {}, "forwardedProps": {} }

Para obter os detalhes completos do RunAgentInput esquema e do formato da mensagem, consulte AG-UI Tipos.

Formato de resposta

AG-UI os agentes respondem com fluxos de SSE-formatted eventos:

Content-Type: text/event-stream data: {"type":"RUN_STARTED","threadId":"thread-123","runId":"run-456"} data: {"type":"TEXT_MESSAGE_START","messageId":"msg-789","role":"assistant"} data: {"type":"TEXT_MESSAGE_CONTENT","messageId":"msg-789","delta":"Processing your request"} data: {"type":"TOOL_CALL_START","toolCallId":"tool-001","toolCallName":"search","parentMessageId":"msg-789"} data: {"type":"TOOL_CALL_RESULT","messageId":"msg-789","toolCallId":"tool-001","content":"Search completed"} data: {"type":"TEXT_MESSAGE_END","messageId":"msg-789"} data: {"type":"RUN_FINISHED","threadId":"thread-123","runId":"run-456"}

/ws - WebSocket

Finalidade

Fornece comunicação bidirecional em tempo real entre clientes e agentes

Casos de uso

O WebSocket endpoint serve a vários propósitos principais:

  • Real-time interfaces de conversação

  • Sessões interativas de agentes com interrupções do usuário

  • Multi-turn conversas com conexões persistentes

/ping - OBTER

Finalidade

Verifica se seu AG-UI agente está operacional e pronto para lidar com as solicitações

Formato de resposta

Retorna um código de status indicando a saúde do seu agente:

  • Content-Type : application/json

  • Código de status HTTP: 200 para códigos de erro íntegros e apropriados para estados não íntegros

{ "status": "Healthy" }

statusé obrigatório e é um dos Healthy ouHealthyBusy. Enquanto o status forHealthyBusy, a sessão de tempo de execução é mantida ativa.

Um time_of_last_update campo opcional (um carimbo de data/hora do Unix em segundos) pode ser incluído para relatar quando a status última alteração foi feita.

Atenção

Não time_of_last_update defina a hora atual em cada ping. Um registro de data e hora que avança a cada ping sinaliza uma mudança contínua de status, o que evita que o tempo limite da sessão ociosa seja acionado. As sessões então persistem até MaxLifetime esgotar sua cota de sessão. Se você omitir o campo, a plataforma rastreará as alterações de status sozinha. Se você usa o AgentCore SDK do Bedrock, a resposta do ping é tratada para você.

Requisitos de autenticação

AG-UI os agentes oferecem suporte a vários mecanismos de autenticação:

Tokens de portador do OAuth 2.0

Para autenticação AG-UI do cliente, inclua o token do portador nos cabeçalhos da solicitação:

Authorization: Bearer <oauth-token> X-Amzn-Bedrock-AgentCore-Runtime-Session-Id: <session-id>

Autenticação SigV4

A autenticação AWS SigV4 padrão também é suportada para acesso programático.

Tratamento de erros

Os erros são classificados em duas categorias com base em quando eles ocorrem:

  • Connection-level erros: ocorrem antes que a solicitação chegue ao seu contêiner (autenticação, validação, limitação). Eles retornam códigos de status HTTP padrão.

  • Erros de tempo de execução: ocorrem durante a execução do agente após o início do stream. Eles aparecem como RUN_ERROR eventos no fluxo SSE em vez de códigos de status HTTP.

AG-UI Código de erro Status HTTP Description

UNAUTHORIZED

401

Autenticação necessária ou credenciais inválidas

ACCESS_DENIED

403

Permissões insuficientes para a operação solicitada

VALIDATION_ERROR

400

Dados ou parâmetros de solicitação inválidos

RATE_LIMIT_EXCEEDED

429

Muitas solicitações do cliente

AGENT_ERROR

200

O código do agente falhou durante a execução — verifique seus CloudWatch registros

Exemplo de erro de tempo de execução (falha do agente):

HTTP/1.1 200 OK Content-Type: text/event-stream x-amzn-requestid: 8bg30e9c-7e26-6bge-dc4b-75h368cc10cf data: {"type":"RUN_ERROR","code":"AGENT_ERROR","message":"Agent execution failed"}

Respostas de autenticação OAuth

OAuth-configured os agentes retornam erros de autenticação com códigos de status HTTP padrão. A resposta inclui um WWW-Authenticate cabeçalho (de acordo com a RFC 7235) para a descoberta do OAuth por meio da API. GetRuntimeProtectedResourceMetadata

Exemplo de erro de autenticação OAuth:

HTTP/1.1 401 Unauthorized Content-Type: text/event-stream WWW-Authenticate: Bearer resource_metadata="https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{ESCAPED_ARN}/invocations/.well-known/oauth-protected-resource?qualifier={QUALIFIER}" x-amzn-requestid: 8bg30e9c-7e26-6bge-dc4b-75h368cc10cf data: {"type":"RUN_ERROR","code":"UNAUTHORIZED","message":"Authentication required"}

SigV4-configured os agentes retornam HTTP 403 com um ACCESS_DENIED erro e não incluem WWW-Authenticate cabeçalhos.