Ghosty
Protocolos

A2A — agente a agente

Cada agente publica un Agent Card A2A v1.0 para que otros agentes lo descubran; el endpoint de mensajes se abre a terceros próximamente.

Actualizado 2026-09-16

(Agent2Agent, Linux Foundation) es el estándar abierto para que un agente hable con otro. Cada agente de Ghosty Studio publica su Agent Card y atiende mensajes A2A.

Descubrimiento: el card

bash
curl https://www.ghosty.studio/a2a/AGENT_ID/card

Es público (sin credenciales, CORS abierto, cache de 5 minutos), como manda el estándar: el descubrimiento no puede exigir llaves.

json
{  "name": "Ghosty",  "description": "…",  "version": "1.0.0",  "protocolVersion": "1.0",  "url": "https://www.ghosty.studio/a2a/AGENT_ID",  "capabilities": { "streaming": true, "pushNotifications": false },  "defaultInputModes": ["text/plain", "application/json"],  "defaultOutputModes": ["text/plain"],  "skills": [],  "provider": { "organization": "Ghosty Studio" },  "securitySchemes": { "ghostyPartnerHmac": { "type": "apiKey", "in": "header", "name": "x-ghosty-sig" } }}

Con una petición firmada, el card se extiende: lista las skills reales del agente (chat, web-search, whatsapp si tiene canal activo).

Mensajes

POST /a2a/:id es JSON-RPC 2.0 con los métodos SendMessage, SendStreamingMessage (SSE), GetTask y GetExtendedAgentCard. El header A2A-Version: 1.0 elige la versión; sin él se contesta en 0.3 para clientes viejos. El contextId de A2A se corresponde con una conversación de Studio.

Alcance hoy. El endpoint de mensajes se firma con el esquema ghostyPartnerHmac, que usan los productos de la casa (Teams ↔ Studio). Todavía no se emiten llaves a terceros; cuando se abra, la autenticación será OAuth2 con un scope propio y esta página lo anunciará en . Mientras tanto, para invocar un agente desde tu software usa la .

Lo que no hace

  • pushNotifications: false: no hay webhooks salientes; el streaming es por SSE.
  • Los cards no van firmados con JWS; la autenticidad la da el dominio.