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.