From a2a-multi-agent
Implements A2A clients that discover agents via Agent Cards, send JSON-RPC tasks, handle streaming/sync responses, task states, and multi-turn conversations for delegating to A2A agents.
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 client-side protocol requirementssite:github.com a2aproject a2a-python client or a2aproject a2a-js client for SDK client classessite:github.com a2aproject a2a-samples client for reference client implementationsAn A2A client is the requesting side that:
/.well-known/agent-card.json)input-required states)1. Discover agent → Fetch Agent Card
2. Check capabilities → Verify the agent can handle the task
3. Authenticate → Satisfy the agent's auth requirements
4. Send message → POST JSON-RPC to agent URL
5. Handle response → Process task result or continue conversation
6. Monitor → Poll, stream, or receive push notifications
Before sending requests, the client must discover the target agent:
{base_url}/.well-known/agent-card.jsonTwo modes:
message/send) — Send a message, wait for the complete responsemessage/stream) — Send a message, receive SSE events as the agent processes{
"jsonrpc": "2.0",
"method": "message/send",
"id": "request-id",
"params": {
"message": {
"role": "user",
"parts": [
{ "kind": "text", "text": "Your task description" }
]
},
"configuration": {
"acceptedOutputModes": ["text/plain", "application/json"]
}
}
}
For continuing a task, include taskId in params.
The client must handle different task states:
tasks/get or use streaming)Sequential delegation: Client sends tasks to agents one at a time, using results from one as input to the next.
Parallel delegation: Client sends tasks to multiple agents concurrently, aggregates results.
Conditional routing: Client reads Agent Cards to decide which agent handles each subtask based on skills.
Fallback: Client tries one agent, falls back to another if the first fails or rejects.
completedFetch the SDK documentation for exact client class names, constructor parameters, request builders, and response types before implementing.