Chamar um agente externo
Registre um endpoint A2A remoto e invoque-o pela Responses API do AI Gateway com
model: "agent/<key>".Expor um Agent interno
Ofereça aos clientes A2A um endpoint por Agent, sustentado por um Agent interno do Toqan Router.
Conectar um agente A2A externo
O registro de um Agent externo busca e valida seu Agent Card antes de salvar a conexão. O Toqan Router armazena o card em cache para exibição e metadados de descoberta, enquanto cada invocação descobre o card atual antes de selecionar um transporte.Registrar pelo AI Studio
1
Abra o criador de Agents
Abra um projeto ou uma pasta no AI Studio, selecione , selecione Agent e, em seguida, Connect External Agent.
2
Insira a conexão
Insira a chave do Agent, o nome de exibição, a URL do Agent e, opcionalmente, a URL do Agent Card. Deixe a versão do protocolo e o transporte preferido em branco para selecionar automaticamente uma interface compatível do card.
3
Adicione cabeçalhos de autenticação
Adicione até 20 cabeçalhos de saída. Mantenha Encrypt ativado para credenciais e outros segredos.
4
Crie o Agent
Selecione Create agent. O registro só é concluído quando o Agent Card está acessível, é válido e anuncia o protocolo e o transporte solicitados.
Registrar pela API
Use uma chave de API com a permissãoa2a.create:
cURL
card_url para descobrir o card a partir de agent_url. Omita protocol_version e preferred_transport para selecionar a primeira interface compatível anunciada pelo card. O protocol_version aceito é 1.0 ou 0.3; 1.0 combina com JSONRPC, HTTP+JSON ou GRPC, e 0.3 combina com JSONRPC.
card_url pode estar em outra origem, mas as interfaces anunciadas pelo card não. Toda invocação HTTP vai para a origem de agent_url, e uma interface gRPC precisa ao menos compartilhar o mesmo host, porque um listener gRPC usa sua própria porta. O registro é recusado quando o card não anuncia nenhuma interface nessa origem.
Um Agent do Toqan Router pode chamar um Agent externo adicionando a chave dele a team_of_agents e habilitando a tool call_sub_agent. As chamadas carregam X-Orq-A2A-Hops; quando uma cadeia atinge cinco saltos, a próxima chamada é rejeitada como um loop de autochamada, com uma mensagem informando que a solicitação já passou por cinco agents A2A.
Os valores de cabeçalhos criptografados são criptografados em repouso e retornados como strings vazias nas operações de leitura. Ao atualizar um cabeçalho criptografado existente, envie um valor vazio para preservar o segredo armazenado. Envie o mapa
headers completo desejado, pois a atualização substitui o mapa.
As solicitações de listagem aceitam
limit, starting_after e ending_before. Não envie os dois campos de cursor na mesma solicitação.
Atualize uma conexão e valide-a novamente:
cURL
Invocar um Agent externo
Chame um Agent externo registrado pela Responses API padrão. Mantenha o prefixo de modeloagent/:
cURL
Saída em streaming
Definastream: true para receber server-sent events padrão da Responses API:
cURL
Continuar uma tarefa interrompida
Quando uma tarefa remota retornainput_required ou auth_required, a Responses API retorna uma resposta incompleta. Passe o ID dessa resposta como previous_response_id para continuar no mesmo contexto A2A:
cURL
previous_response_id.
Limites de Agents externos na v1
A execução externa na v1 usa um contrato restrito:- O mapeamento A2A remoto oferece suporte a
input,streameprevious_response_id. Os controles gerenciados pelo gateway, como o armazenamento de respostas, continuam se aplicando. - Entrada aceita: uma string ou mensagens de usuário contendo texto, URLs de imagens, URLs de arquivos ou dados de arquivos em base64.
- Os controles de solicitação não compatíveis incluem
toolsetool_choicefornecidos pelo chamador, novas tentativas, fallbacks, balanceamento de carga, parâmetros de amostragem, modo em segundo plano e formatação de saída diferente da padrão. instructionsnão são aplicadas ao Agent remoto. Configure o comportamento dele no endpoint remoto.- Partes de saída de arquivos remotos não são mapeadas na v1. Retorne texto ou partes de dados estruturados.
- Tarefas A2A com falha ou rejeitadas são mapeadas para Responses com falha. Tarefas canceladas são mapeadas para Responses canceladas. Tarefas que exigem entrada ou autenticação são mapeadas para Responses incompletas.
Expor um Agent interno por A2A
Todo Agent interno do Toqan Router tem um endpoint A2A. Abra o Agent no Agent Studio, expanda Expose via A2A e copie a URL do Agent, a URL do Agent Card e a permissão necessáriaa2a.execute.
Descobrir o Agent Card
Busque o caminho padrão do Agent Card com uma chave de API do Toqan Router com escopo definido:cURL
Enviar uma mensagem JSON-RPC
QuandoA2A-Version está ausente, o endpoint base usa por padrão o contrato de compatibilidade A2A 0.3. Defina A2A-Version: 1.0 para usar o contrato A2A 1.0.
A2A-Version não compatíveis retornam 400.
Usar outro transporte A2A
Envie a chave de API como
Authorization: Bearer <token> para HTTP, Connect e metadados gRPC. A chave de API precisa incluir a2a.execute e ter acesso ao projeto do Agent. Autenticação, escopo de projeto, cota e limites de taxa são aplicados antes da execução.
Limites de entrada na v1
- A execução de mensagens bloqueante e em streaming é compatível.
- A consulta e a listagem de tarefas são compatíveis para Responses armazenadas que pertencem ao Agent roteado.
- A execução não bloqueante não é compatível.
- O cancelamento e as assinaturas de tarefas não são compatíveis.
- A configuração de notificações push e os Agent Cards estendidos não são compatíveis.
- Os Agent Cards anunciam
streaming: trueepushNotifications: false.
Controles de segurança
O registro e a execução de Agents externos aplicam os seguintes controles:- HTTPS é obrigatório para as URLs do Agent, do card e das interfaces anunciadas.
- Destinos de rede loopback, privados, link-local, de metadados e unique-local são bloqueados antes da conexão, incluindo formas numéricas alternativas de IP e respostas DNS que resolvem para faixas bloqueadas.
- Redirecionamentos não são seguidos.
- O tamanho do Agent Card e o tempo de busca são limitados.
- Cabeçalhos criptografados são mascarados nas fronteiras da API. Os cabeçalhos de trace em tempo de execução são gerenciados pelo Toqan Router e não podem ser substituídos por cabeçalhos de conexão armazenados.
- Os cabeçalhos armazenados são enviados apenas para interfaces na origem configurada do agente ou do card. As demais interfaces anunciadas são validadas e excluídas antes da seleção do transporte.
- Chaves de API restritas a projetos só podem gerenciar, invocar ou expor Agents em projetos permitidos.
ENVIRONMENT é local ou development e A2A_ALLOW_HTTP_LOCALHOST é true. Mantenha essa configuração desativada em ambientes implantados.
Configuração auto-hospedada
Defina todas as durações, limites de bytes e limites de cabeçalhos como inteiros positivos. Em ambientes implantados, defina
A2A_PUBLIC_BASE_URL como a origem HTTP pública do AI Gateway e A2A_GRPC_PUBLIC_URL como um destino gRPC nativo acessível externamente, como agents.example.com:443 ou dns:///agents.example.com:443. Não inclua http:// nem https:// no destino gRPC; os clientes configuram a segurança de transporte gRPC separadamente. Para gRPC autenticado entre instâncias da plataforma, exponha o destino pelo mesmo host e porta HTTPS públicos da URL configurada do agente ou do card, para que os cabeçalhos armazenados vinculados à origem continuem válidos para essa interface.
