Skip to content

A2A Protocol

Every published agent is an Agent2Agent endpoint: public discovery card and interoperable JSON-RPC.

Updated on Aug 10, 2026

Every published agent automatically exposes the A2A (Agent2Agent) v0.3 protocol — the open interoperability standard between agent systems (Google, Microsoft, AWS…). Another agent discovers yours through the card and converses with it via JSON-RPC, knowing nothing about HINOW.

Agent card (discovery)

The card is public — name, description, capabilities, and authentication scheme:

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"]}]
}

Methods

MethodWhat it does
message/sendSends a message and waits for the task to complete (synchronous).
message/streamSame thing, with task events in streaming.
tasks/getQuery a task by id (state, artifacts).
tasks/cancelCancel a running task.

Example

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?"}]
    }]
  }
}

Human approvals

If the workflow has an approval node, the task pauses in the input-required state — the caller responds with a new message/send on the same task to continue.