A2A: opaque agent-to-agent task delegation
research agent (caller)
MCP tools for source
retrieval + reasoning
discovers writer via
/.well-known/agent-card.json
sends SendMessage with
Message.parts = [
{text: "summarize"},
{raw, filename: paper.pdf},
{data: {targetLength}}
]
SendMessage
state transitions + artifact
writer agent (callee, opaque inner state)
publishes Agent Card
{name, supportedInterfaces, skills, capabilities}
signed via JWS signatures (optional)
TASK_STATE_SUBMITTED
TASK_STATE_WORKING
TASK_STATE_INPUT_REQUIRED
TASK_STATE_WORKING (resumed)
TASK_STATE_COMPLETED
returns Artifact:
{artifactId, name: "summary",
parts: [{text: "...", mediaType: "text/markdown"}]}
opacity
caller sees state + artifact;
internal tool calls, sub-agents,
chain-of-thought all hidden.