From a2a-multi-agent
Implements A2A JSON-RPC 2.0 transport layer: request/response formats, method routing, batch requests, HTTP details. For custom A2A transport handling or protocol debugging.
npx claudepluginhub orcaqubits/agentic-commerce-skills-plugins --plugin a2a-multi-agentThis skill is limited to using the following tools:
**Fetch live docs**:
Acquire memory dumps from live systems/VMs and analyze with Volatility 3 for processes, networks, DLLs, injections in incident response or malware hunts.
Provides x86-64/ARM disassembly patterns, calling conventions, control flow recognition for static analysis of executables and compiled binaries.
Identifies anti-debugging checks like IsDebuggerPresent, NtQueryInformationProcess in Windows binaries; suggests bypasses via patches/hooks/scripts for malware analysis, CTFs, authorized RE.
Fetch live docs:
https://a2a-protocol.org/latest/specification/ for the transport layer sectionsite:github.com a2aproject A2A JSON-RPC transport for transport protocol detailshttps://www.jsonrpc.org/specification for the JSON-RPC 2.0 base specificationA2A uses JSON-RPC 2.0 as its transport protocol because:
Every A2A request is a JSON-RPC 2.0 request:
{
"jsonrpc": "2.0",
"method": "message/send",
"id": "unique-request-id",
"params": { ... }
}
"2.0"message/send, tasks/get)Success:
{
"jsonrpc": "2.0",
"id": "unique-request-id",
"result": { ... }
}
Error:
{
"jsonrpc": "2.0",
"id": "unique-request-id",
"error": {
"code": -32600,
"message": "Invalid Request",
"data": { ... }
}
}
application/json for regular requestsapplication/json for message/send, text/event-stream for message/stream200 OK — errors are in the JSON-RPC response body, not HTTP status codes| Method | Direction | Purpose |
|---|---|---|
message/send | Client → Server | Send message, get synchronous response |
message/stream | Client → Server | Send message, get SSE stream |
tasks/get | Client → Server | Retrieve task by ID |
tasks/cancel | Client → Server | Cancel a task |
tasks/resubscribe | Client → Server | Re-subscribe to task's SSE stream |
tasks/pushNotificationConfig/set | Client → Server | Register push notification |
tasks/pushNotificationConfig/get | Client → Server | Get notification config |
tasks/pushNotificationConfig/list | Client → Server | List notification configs |
tasks/pushNotificationConfig/delete | Client → Server | Delete notification config |
agent/authenticatedExtendedCard | Client → Server | Get extended Agent Card |
The server must route incoming requests by the method field:
method fieldA2A doesn't mandate built-in idempotency, but best practice is:
message/send, sending the same message twice should be handled gracefullyjsonrpc field is exactly "2.0"message/stream)Content-Type: application/json for all non-streaming requests-32601Fetch the specification for any additional transport requirements, header conventions, and method parameter schemas before implementing.