Ir para o conteúdo

Protocolo A2A

Cada agente publicado é um endpoint Agent2Agent: card de descoberta público e JSON-RPC interoperável.

Atualizado em 10 de ago. de 2026

Todo agente publicado expõe automaticamente o protocolo A2A (Agent2Agent) v0.3 — o padrão aberto de interoperabilidade entre sistemas de agentes (Google, Microsoft, AWS…). Outro agente descobre o seu pelo card e conversa com ele por JSON-RPC, sem saber nada da HINOW.

Agent card (descoberta)

O card é público — nome, descrição, capacidades e esquema de autenticação:

curl https://agents.hinow.ai/a2a/SEU_AGENT_ID/.well-known/agent-card.json
resposta (resumida)json
{
  "name": "Tribunal do Júri",
  "description": "Simula um tribunal com 3 jurados que debatem e votam...",
  "protocolVersion": "0.3.0",
  "capabilities": {"streaming": true},
  "url": "https://agents.hinow.ai/a2a/f5cf3061-...",
  "securitySchemes": {"bearerAuth": {"type": "http", "scheme": "bearer"}},
  "skills": [{"id": "chat", "name": "Tribunal do Júri", "tags": ["chat"]}]
}

Métodos

MétodoO que faz
message/sendEnvia uma mensagem e espera a task completa (síncrono).
message/streamMesma coisa, com os eventos da task em streaming.
tasks/getConsulta uma task pelo id (estado, artifacts).
tasks/cancelCancela uma task em andamento.

Exemplo

curl -s -X POST https://agents.hinow.ai/a2a/SEU_AGENT_ID \
  -H "Authorization: Bearer hi_SUA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "message/send",
       "params": {"message": {"role": "user", "kind": "message", "messageId": "m1",
                  "parts": [{"kind": "text", "text": "olá!"}]}}}'
respostajson
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "kind": "task",
    "id": "7f98af61-...",
    "contextId": "a85ae738-...",
    "status": {"state": "completed", "timestamp": "2026-08-09T23:19:51Z"},
    "artifacts": [{
      "artifactId": "72c3ec3c-...",
      "name": "response",
      "parts": [{"kind": "text", "text": "Olá! Como posso ajudar você hoje?"}]
    }]
  }
}

Aprovações humanas

Se o workflow tem um nó de aprovação, a task pausa no estado input-required — o chamador responde com uma nova message/send na mesma task para continuar.