Day 15 April 25, 2026

A2A Protocols

Agent2Agent — the open protocol that lets a Salesforce agent hand a task to a Google agent which queries a ServiceNow agent. How Agent Cards work, why OAuth 2.0 lives at the edge, what 150+ partners means in practice, and what shape inter-agent trust takes when no single vendor owns the network.

A2A
Agent Cards
OAuth 2.0
JSON-RPC
Linux Foundation
Multi-Agent
Interoperability
Curriculum
88.2% complete (Day 15 / 17)
Core Concept

What A2A Actually Is, and Why “Agents Are Not Tools” Is the Whole Argument

Imagine the international postal system. Every country has its own mail service, its own stamps, its own forms, its own internal couriers; nobody has reorganized any of that. But every country also agrees on a thin shared layer — addressing format, customs declaration, weight class, liability rules — that lets a parcel mailed in Vienna get to Osaka without the Austrian postal worker needing to speak Japanese. A2A is that thin shared layer for AI agents. Each agent keeps its own brain, its own memory, its own tools, its own model — and the protocol just standardizes the envelope, the address, and the customs form.

Technically, A2A (Agent2Agent) is an open communication protocol introduced by Google in April 2025 with 50+ launch partners, donated to the Linux Foundation in June 2025, and now governed by the Agent2Agent Project under the Linux Foundation umbrella. By April 2026, the Linux Foundation reported 150+ organizations supporting the standard, with active production deployments at AWS, Microsoft, Google, Salesforce, SAP, ServiceNow, IBM, and Cisco. The 1.0 specification shipped in late 2025; the current public spec line is in the 1.x series, and the GitHub project (a2aproject/A2A) crossed 22,000 stars by April 2026, with five official SDKs (Python, JavaScript, Java, Go, .NET) maintained under the same org.

The reason A2A exists is captured in one sentence from the spec: agents communicate as agents, not as tools. MCP, the protocol from Day 03, is for an agent to call a tool (a database, a file system, a web service). A2A is for an agent to call another autonomous agent — which has its own goals, its own state, its own context window, and may take ten minutes to respond, may request additional input mid-task, may stream partial results, may delegate to a third agent of its own. That asymmetry is the whole design.

1The Three Primitives: Agent Card, Task, Message

A2A has only three top-level concepts. Memorize them and you can read the spec in an afternoon.

AGENT CARD — JSON DOCUMENT AT /.well-known/agent.json
Identity · capabilities · endpoint URL · auth requirements · supported skills
The “business card.” Public, signed, fetched once at discovery time.
TASK — STATEFUL UNIT OF WORK
submitted → working → input-required → completed / failed / canceled
One Task per delegated job. Lifecycle is the contract.
Message
turn within a Task
Part
text / file / data
Artifact
output produced by agent

The Agent Card is a JSON file served at /.well-known/agent.json on the agent's domain — a deliberate echo of how OpenID Connect, OAuth, and ACME use /.well-known/ for discovery. It declares the agent's name, description, version, public endpoint URL, the modalities it supports (text, files, structured data, streaming), the skills it offers, and the authentication scheme its endpoint requires. The card is the only document a remote agent needs to start talking to it. Everything else is negotiated at runtime.

A Task is a stateful job with a lifecycle. The client agent posts an initial Message; the server agent moves the Task through a defined state machine. submitted means received but not started; working means actively running; input-required is the magic state — the server agent has paused and is asking the client for additional information (a clarification, a confirmation, a missing parameter), and the Task will not progress until the client sends a follow-up Message. completed, failed, and canceled are terminal. This state machine is what makes A2A different from a function call: functions return; tasks negotiate.

Messages are the turns inside a Task — each one carries one or more Parts, where a Part can be text, a file (with MIME type), or structured data (JSON). The dialect is multimodal by design: a part is whatever the modality declares it is, and the receiving agent decides how to render it. Final outputs are emitted as Artifacts, which are first-class outputs distinct from Messages so a client can collect deliverables (a generated PDF, a draft email, a code patch) without rummaging through chat history.

The Agent Card / Task / Message split is what lets two agents that have never met before cooperate. Discovery and capability negotiation happen entirely through the card; coordination happens through the task lifecycle; content moves through messages and artifacts. Three primitives, no magic.

2The Wire — JSON-RPC 2.0 Plus Server-Sent Events

A2A's transport choices are deliberately conservative. HTTP(S) for transport. JSON-RPC 2.0 for request shape (so it slots into existing API gateways). Server-Sent Events (SSE) for streaming, with optional webhook push notifications for long-running tasks where the client cannot keep an HTTP connection open. Nothing here is exotic; the point is that you can put A2A behind an API gateway, log it like a REST API, and let your security team treat it like any other HTTP service.

// Discover the agent GET /.well-known/agent.json // Returns the Agent Card // Send a task (JSON-RPC 2.0) POST /a2a { "jsonrpc": "2.0", "method": "tasks/send", "params": { "id": "task-7f2...", "message": { "role": "user", "parts": [{ "text": "Draft a Q2 plan for the Acme account" }] } }, "id": 1 } // Stream updates back via SSE GET /a2a/tasks/task-7f2.../stream // Returns a stream of TaskStatusUpdateEvent + TaskArtifactUpdateEvent

Key methods in the JSON-RPC surface: tasks/send (submit), tasks/get (poll), tasks/cancel, tasks/sendSubscribe (submit + open SSE stream), tasks/pushNotification/set (register a webhook for completion). The whole interface is roughly fifteen methods. That minimalism is intentional: the spec authors wanted the protocol to be implementable by a developer in a weekend, not a quarter.

The two streaming modes matter for product. SSE works for interactive UIs where the user is watching results land in a chat. Push notifications work for batch and overnight workflows where a delegating agent fires off twenty tasks, closes the connection, and gets webhooks back over the next four hours as each completes. Both modes are first-class — neither is a retrofit.

A2A reuses HTTP semantics intentionally. Authentication is whatever the Agent Card declares — usually OAuth 2.0 bearer tokens, sometimes API keys, occasionally mTLS. Idempotency is keyed on Task ID. Retries follow standard HTTP conventions. The protocol picks no new fights; it picks the smallest possible one — agreeing on what an agent is.

3How Inter-Agent Trust Actually Works

This is the subtle part. A2A does not specify how to authenticate; it specifies where to authenticate. Auth lives at the HTTP edge, declared in the Agent Card's authentication field, and the protocol stays out of the way. The most common pattern in production deployments is OAuth 2.0 with a bearer token or, for delegation across organizations, RFC 8693 OAuth 2.0 Token Exchange — the same standard used for SAML-to-OAuth bridging in enterprise SSO.

In practice, three trust layers stack on top of each other:

TLS
channel integrity
+
OAuth 2.0
caller identity
+
Signed Card
callee identity
=
A2A trust
end-to-end

TLS verifies the server's domain. OAuth 2.0 verifies the calling agent (or the user on whose behalf the calling agent is acting; on-behalf-of flows are explicitly supported). Signed Agent Cards — added in the 1.x line and now considered best practice for any production deployment — let the calling agent verify that the card it fetched at /.well-known/agent.json was actually issued by the domain owner and has not been tampered with. The signing key is published via standard JWKS, so verification is a one-line library call.

The end-to-end story: my agent needs to delegate a task to your agent. My agent fetches your Agent Card, validates its signature, sees that you require an OAuth 2.0 bearer token with a specific scope, exchanges its current token for one scoped to your audience via RFC 8693, and posts the task. Your agent verifies the bearer token, checks scope, executes the task, and streams artifacts back. No new identity system, no agent-specific PKI, no hand-rolled cryptography. Boring on purpose.

A2A explicitly does not standardize which auth scheme to use, only how to declare it. That is a deliberate tradeoff: vendors keep their existing identity stacks, but interoperability requires both ends to support the schemes the card declares. In practice this means every production A2A integration ships with an OAuth 2.0 fallback, because that is what every enterprise can implement without procurement getting involved.

4The Loop in Practice

Put the pieces together. You ask the Salesforce Agentforce agent to plan a renewal campaign for the Acme account. Agentforce knows the account is also using ServiceNow for IT and SAP for finance. Here is what happens:

User
Salesforce UI
Agentforce
parent agent
discover
SNow + SAP cards
OAuth 2.0
token exchange
Task → SNow
open tickets?
Task → SAP
renewal AR
SSE merge
artifacts
Plan
back to user

Agentforce fetches the ServiceNow and SAP Agent Cards, validates signatures, exchanges its user-bound token for two audience-scoped tokens via OAuth 2.0 token exchange, fires tasks/sendSubscribe at both, and streams artifacts back as each agent finishes its slice. The user sees a single coherent plan; under the hood, three separate organizations' agents collaborated, each with its own model, its own data, its own audit log. No vendor had to expose internals. That is the entire pitch — and it works precisely because the protocol surface is so deliberately small.


Papers to Know

Five Papers That Define the 2026 A2A Conversation

The A2A literature is mostly preprints — the protocol is too young for many archival venues. The papers below are the most cited or most operationally useful through April 2026. All verified on arXiv.

arXiv preprint 2025 most cited survey
A survey of agent interoperability protocols: Model Context Protocol (MCP), Agent Communication Protocol (ACP), Agent-to-Agent Protocol (A2A), and Agent Network Protocol (ANP)
A. Ehtesham, A. Singh, G. K. Gupta, S. Kumar · submitted May 4, 2025 · arXiv:2505.02279
The map of the territory. Compares the four leading agent interoperability protocols across interaction modes, discovery mechanisms, communication patterns, and security models. Proposes a phased adoption roadmap: MCP for tool access, ACP for structured multimodal messaging, A2A for collaborative task execution, ANP for decentralized agent marketplaces.
Why it matters: The conceptual lens every other A2A paper now references. If someone uses the phrase “protocol stack for agents,” this is where the framing comes from. The MCP-then-A2A-then-ANP layering is now the standard mental model.
arxiv.org/abs/2505.02279
arXiv preprint 2025 security
Building A Secure Agentic AI Application Leveraging Google's A2A Protocol
I. Habler, K. Huang, V. S. Narajala, P. Kulkarni · submitted April 23, 2025 · arXiv:2504.16902
The first systematic threat model for A2A. Applies the MAESTRO framework to enumerate risks across three surfaces: Agent Card management (forgery, tampering, capability overstatement), task execution integrity (replay, scope creep, prompt injection across the boundary), and authentication methodology (token theft, audience confusion, on-behalf-of misuse). Provides a reference architecture for hardening each surface.
Why it matters: Cited in nearly every A2A vendor security disclosure. The Agent Card forgery vector this paper named is the reason signed cards became a 1.x requirement in practice.
arxiv.org/abs/2504.16902
arXiv preprint 2025 defense
Improving Google A2A Protocol: Protecting Sensitive Data and Mitigating Unintended Harms in Multi-Agent Systems
submitted May 19, 2025 · arXiv:2505.12490
The defender's counterpart to 2504.16902. Identifies four practical weaknesses — insufficient token lifetime control, lack of strong customer authentication, overbroad access scopes, missing consent flows — and proposes concrete mitigations including ephemeral capability tokens, per-task user-confirmation gates, and scope-narrowing at token-exchange time. Several mitigations were folded into the 1.x line.
Why it matters: The paper that turned the security conversation from “is A2A safe?” to “here is what to require of any A2A integration before you ship.” Vendors cite its mitigation list when answering security questionnaires.
arxiv.org/abs/2505.12490
arXiv preprint 2025 interop
A Study on the MCP x A2A Framework for Enhancing Interoperability of LLM-based Autonomous Agents
submitted June 2025 · arXiv:2506.01804
Treats MCP and A2A as complementary, not competitive, and walks through implementation patterns where an A2A-exposed agent internally consumes MCP servers. Useful concretely: shows how to pass user-on-behalf-of OAuth tokens from the A2A boundary down through MCP tool calls, which is the integration question every enterprise procurement reviewer asks.
Why it matters: The end of the “MCP vs A2A” debate, which never made sense (one is for tools, one is for agents). This paper made the layering canonical.
arxiv.org/abs/2506.01804
arXiv preprint 2026 extension
Beyond Context Sharing: A Unified Agent Communication Protocol (ACP) for Secure, Federated, and Autonomous Agent-to-Agent (A2A) Orchestration
N. K. Krishnan · submitted February 2026 · arXiv:2602.15055
Argues A2A is the right substrate but needs a higher orchestration layer for federated multi-org workflows. Proposes a federated orchestration model on top of A2A combining decentralized identity verification, semantic intent mapping, and automated SLAs. Calls itself “TCP/IP for the Agentic Web” — pretentious framing, useful diagrams.
Why it matters: Captures the open question A2A leaves on the table: how do dozens of agents at five organizations agree on shared workflow state. The answer is not in 1.x. This paper sketches what 2.x might look like.
arxiv.org/abs/2602.15055

GitHub Pulse

Six Repos That Tell the A2A Story

Stars approximate, all verified on April 25, 2026.

a2aproject/A2A Spec ~22K
The protocol specification itself. Schema definitions, lifecycle diagrams, conformance tests, and the canonical examples for Agent Card, Task, Message, Part, and Artifact.
Architectural interest: read specification/a2a.json for the JSON Schema and docs/topics/agent-discovery.md for the well-known endpoint convention. The whole thing is ~3,000 lines including examples.
a2aproject/a2a-samples Examples ~1.4K
First-party reference implementations and end-to-end demos: a LangGraph agent talking to a CrewAI agent, a Vertex agent talking to an Azure agent, sample push-notification flows.
Architectural interest: the cleanest way to understand tasks/sendSubscribe + SSE. The LangGraph <-> CrewAI sample shows how two different harnesses share zero internals yet finish a workflow.
a2aproject/a2a-python SDK ~1K
Official Python SDK. Implements the 1.0 specification with compatibility mode for 0.3. Ships a server scaffold, client builder, signed-card helpers, and OAuth integration utilities.
Architectural interest: a2a/server/agent_executor.py shows the canonical Task state machine in ~200 lines. Worth reading even if you write the rest of your stack in another language.
a2aproject/a2a-inspector Tooling ~390
Web-based validation and debugging tool for A2A servers. Inspects Agent Cards, replays Tasks, decodes SSE streams, and validates spec conformance.
Architectural interest: the “Postman for A2A.” In any A2A integration project this is the first dependency you install. Shows what proper conformance testing looks like for a JSON-RPC + SSE protocol.
a2aproject/a2a-java SDK actively maintained
Official Java SDK. Server and client both supported, designed for trivial integration with Quarkus, Spring Boot, and other Java runtimes via standard CDI.
Architectural interest: shows how A2A maps cleanly onto JAX-RS + reactive streams. Important because most enterprise integrations land in JVM territory.
ai-boost/awesome-a2a Curated ~480
Curated list of A2A agents, tools, servers, and clients. Organized by domain (finance, devops, productivity, research) and by harness (LangGraph, CrewAI, AutoGen, ADK).
Architectural interest: the closest thing to an A2A directory until decentralized agent registries (ANP) ship. Useful for surveying who has actually deployed an A2A endpoint vs. who has just talked about it.

Community Pulse

What Frontier Voices Are Saying This Month

The protocol passed its one-year mark in April 2026, and the conversation has shifted from “is this real” to “how do we govern it.” Four positions worth tracking:

HC
Harrison Chase
@hwchase17 · CEO, LangChain
“With over 100 million monthly downloads of LangChain's frameworks, we've seen that frontier models must go beyond raw intelligence to enable reliable tool use, long-horizon reasoning and agent coordination.”
From the LangChain × NVIDIA enterprise platform announcement on March 16, 2026, which featured native A2A protocol support as one of the integration's pillars. Chase has argued through Q1 2026 that the protocol layer matters less than the harness around it — but explicitly that A2A is now the assumed wire format for inter-agent calls. Source: blog.langchain.com/nvidia-enterprise.
SW
Simon Willison
simonwillison.net · blog + newsletter
“Access to private data, exposure to untrusted content, and the ability to communicate externally — any agent with all three is a breach waiting to happen.”
Willison has argued through April 2026 that A2A makes the “lethal trifecta” trivial to compose: any agent that calls an A2A endpoint is, by definition, communicating externally. Combined with private data access and exposure to untrusted content, an A2A-enabled agent ticks all three boxes by default. His framing is not anti-A2A — it is a call for explicit consent flows at every cross-organization Task. Source: simonwillison.net/2025/Jun/16.
JL
Jerry Liu
@jerryjliu0 · CEO, LlamaIndex
No specific verbatim quote on A2A confirmed for April 2026.
Liu has argued through 2026 that the agent-and-document layer is the moat, not the wire. LlamaIndex Agents shipped native A2A support as part of the broader interoperability push — alongside Google's Agent Development Kit, LangGraph, CrewAI, Semantic Kernel, and AutoGen — and Liu's public position has been that A2A is plumbing that lets the document-context layer matter more, not less. The bet: own the data ingestion and let A2A handle the routing.
JP
Jim Zemlin
linuxfoundation.org · Executive Director
“A2A's growth from a single protocol to a multi-language, multi-cloud, multi-vendor standard in one year is unusual. The Foundation's job is to keep it boringly neutral.”
Paraphrased from the Linux Foundation's April 9, 2026 anniversary announcement. The position is that the Foundation's role is governance, not innovation: keep the spec process open, the trademark neutral, and the conformance tests rigorous, while letting Google, Microsoft, AWS, Salesforce, and the rest compete on implementations. Source: linuxfoundation.org press release.

Ecosystem

From 50 Partners to 150 Organizations in One Year

Google launched A2A in April 2025 with 50+ named partners. By April 2026, the Linux Foundation reported 150+ organizations supporting the standard, with production deployments at most of the top tier. The headline names:

50+
launch partners
April 2025
150+
organizations
April 2026
5
official SDKs
Py · JS · Java · Go · .NET

Cloud and platform tier (production):

Google Cloud
Microsoft Azure
AWS
Salesforce
SAP
ServiceNow
IBM
Cisco

Original 50+ launch tier (2025) included:

Atlassian
Box
Cohere
Intuit
LangChain
MongoDB
PayPal
Workday
UKG
Accenture
Deloitte
McKinsey

Native A2A support inside agent harnesses (April 2026):

Google ADK
LangGraph
CrewAI
LlamaIndex
Semantic Kernel
AutoGen
NVIDIA NeMo
Elastic Agent Builder
The vertical mix matters more than the count. A2A's adoption skews enterprise: supply chain, financial services, insurance, and IT operations dominate the Linux Foundation's stated production-deployment list. That is a different center of gravity from MCP, which is consumer-developer-driven (Claude Code, Cursor, OpenClaw). The two protocols are complementary, but they live in different rooms.

Platform Deep-Dive

How the Big Four Treat A2A

By April 2026, every major frontier-model platform has taken a public position on A2A. The positions are not the same.

Platform A2A posture Recent moves (last 30 days)
Claude Anthropic owns MCP and treats A2A as a complement — agent-to-agent calls layered on top of MCP-exposed tools. Claude Agent SDK can act as both an A2A client and server through community adapters; first-party A2A endpoints in Claude products are not yet shipped as of April 2026. Continued focus on Skills + MCP as the primary extension model; A2A treated as “use it when you have to talk to non-Claude agents.”
Google A2A is a Google-originated protocol now governed by the Linux Foundation. Vertex AI Agent Builder and the Agent Development Kit (ADK) speak A2A natively as both client and server; Agentspace exposes Google Workspace agents over A2A by default. Google Cloud Next 2026 (April) doubled down on the A2A stack — Workspace Studio agents, Vertex AI Agent Engine, and the Gemini Enterprise tier all default to signed Agent Cards.
OpenAI — GPT-5.4 / Codex OpenAI's stance has been MCP-first for tools, with A2A interop via community SDKs rather than first-party. The OpenAI Agents SDK can wrap any A2A endpoint, but OpenAI's own production agents (Codex, ChatGPT agents) do not yet expose A2A endpoints by default. Codex CLI 2026.04 added an experimental flag for A2A client behavior; no first-party A2A server yet. Posture is wait-and-see.
OpenClaw 2.1 Treats A2A as the right answer for cross-organization delegation but layers it on top of its hub-and-spoke architecture. Sub-agents inside OpenClaw remain via internal session spawn; cross-instance and cross-vendor delegation goes over A2A with signed cards required. OpenClaw 2.1 (April 7) shipped first-class A2A client support in the Agent Runtime; the Gateway can now publish a per-user Agent Card so other A2A agents can address an OpenClaw user as a callable agent.

Notice the shape: the two consumer-developer platforms (Claude, GPT-5.4) treat A2A as opt-in interop, while the two enterprise-leaning platforms (Google, OpenClaw) treat it as default infrastructure. The split is not about technology; it is about where the buyer expects agent-to-agent calls to happen. Enterprise buyers want their Salesforce agent to call their ServiceNow agent without a procurement review for every integration. Consumer-developer buyers mostly want their Claude Code to call a single tool.

The most useful question to ask a vendor about A2A right now is: “Can your agent be addressed as an A2A endpoint by my agent, or only the other way around?” If the answer is “only the other way around,” the platform is treating A2A as an export channel, not a peer interface — which limits how much real interoperability you will actually get.

Reference

The A2A Task Lifecycle in Detail

Memorize this state machine. It is the entire contract between two A2A agents.

submitted
Initial state. The client has posted tasks/send; the server has accepted but not started. Server returns a Task ID and the initial status. Idempotency keys live here — re-posting the same Task ID is a no-op.
working
Server is actively executing. Server may emit interim Messages (progress updates, partial reasoning) and Artifacts (intermediate outputs) over SSE. Client may cancel here via tasks/cancel.
input-required
Server has paused for clarification. The distinguishing state. Server emits a Message with role=agent and a question; client must respond with role=user before the Task can resume. Implements the “agent asks for help” pattern without exiting the Task.
completed
Terminal — success. Final Artifacts have been emitted. Task is immutable from here. Subsequent tasks/get calls return the full transcript and artifact list.
failed
Terminal — error. Server could not complete the task. Final Message carries an error reason. Client may submit a new Task with a different ID; same-ID retries are no-ops.
canceled
Terminal — client gave up. Server confirms the cancel. Any in-flight tool calls or sub-agent delegations are best-effort halted. Server may still emit a final Artifact summarizing partial work.

The two states most product teams underweight are input-required and canceled. The first is what makes A2A feel like a dialogue rather than an RPC; the second is what makes long-running tasks safe to retry. Build them in from day one.


Vocabulary

Twelve Terms to Say Correctly

Agent Card
A JSON document at /.well-known/agent.json declaring an agent's identity, endpoint URL, capabilities, supported skills, modalities, and authentication scheme. The discovery primitive of A2A.
Don't say “agent manifest.” The spec is specific: the artifact is called a Card.
“Their Agent Card declares they only accept signed OAuth tokens with the tasks.execute scope.”
Task
A stateful unit of work in A2A with a defined lifecycle: submitted → working → (input-required) → completed/failed/canceled. Identified by a Task ID, with idempotent semantics on resubmission.
Don't equate to a function call — functions return; tasks negotiate, pause, and stream.
“The Task ID is what makes A2A retries safe.”
Message
A turn within a Task. Carries one or more Parts (text, file, structured data) and has a role (user or agent). Messages are append-only inside a Task transcript.
Don't conflate with chat-completion messages from LLM APIs — A2A Messages are between two agents, not user-and-model.
“The follow-up Message resolves the input-required state.”
Artifact
A deliverable output emitted by the server agent during or at the end of a Task. First-class, separate from Messages, so clients can collect outputs without parsing chat history.
Don't say “result” — the spec uses Artifact, and that distinction matters because a Task can emit multiple Artifacts over time.
“The agent emitted three Artifacts: a draft, a summary PDF, and a JSON action plan.”
Part
A unit of content inside a Message or Artifact. A Part is typed: TextPart, FilePart (with MIME type), DataPart (structured JSON). Multimodal by design.
Don't lower-case it generically. “Part” is the spec's noun for the typed payload unit.
“The Message carries a TextPart and a FilePart referencing the uploaded contract.”
input-required
The Task state in which the server agent has paused and is waiting for the client to send a follow-up Message. The mechanism that lets a delegating agent ask the user (via the calling agent) for clarification mid-task.
Don't treat as an error state. It's a normal cooperative pause, not a failure.
“If the agent can't infer the date, it should drop into input-required, not guess.”
tasks/sendSubscribe
The JSON-RPC method that submits a Task and immediately opens a Server-Sent Events stream for status and artifact updates. The interactive variant of tasks/send.
Don't use for batch workflows where the client may disconnect — use tasks/send + push-notification webhook instead.
“Chat UIs should use sendSubscribe; cron jobs should use push notifications.”
Push Notification
A2A's webhook mechanism: clients register a callback URL via tasks/pushNotification/set, and the server posts to that URL on terminal state transitions. Lets long-running tasks survive client disconnects.
Don't confuse with mobile push — the spec borrows the name but means HTTP webhooks.
“Overnight workflows always use push notifications, not SSE.”
Signed Agent Card
An Agent Card whose JSON is JWS-signed by the publishing domain's key, with the public key published via JWKS. Lets a calling agent verify the card was actually issued by the domain it claims and has not been tampered with.
Don't say “verified card” — signing is the mechanism, verification is what the client does.
“1.x best practice is to require signed cards in production.”
OAuth 2.0 Token Exchange
RFC 8693. The standard mechanism for swapping one OAuth token (typically user-bound) for another scoped to a different audience. Used in A2A on-behalf-of flows when agent A delegates to agent B with the user's authority.
Don't conflate with refresh tokens. Refresh extends a session; token exchange changes the audience or scope.
“Cross-org delegation flows use RFC 8693 to scope tokens at each hop.”
Skill (in Agent Card)
A declared capability in an Agent Card — a named function the agent can perform with input/output schemas. Distinct from OpenClaw's SKILL.md or Claude Skills, which are runtime-loaded prompts.
Don't conflate. A2A Skills are externally-callable capabilities; Claude/OpenClaw Skills are internal prompts.
“Their Agent Card lists three Skills: schedule_meeting, summarize_thread, draft_reply.”
.well-known endpoint
The IETF convention (RFC 8615) of serving discovery metadata under /.well-known/<name>. A2A reuses this for the Agent Card at /.well-known/agent.json, mirroring OpenID Connect, ACME, and OAuth.
Don't invent custom paths in production deployments. The convention is the convention because tooling depends on it.
“Drop the Agent Card at /.well-known/agent.json and your server is discoverable by every A2A client.”

Expert Questions

Five Questions That Signal You Operate at the Frontier

Q1
“The 2504.16902 threat model treats Agent Card forgery as the highest-impact surface. Signed cards address tampering — but how does the protocol handle capability overstatement, where a domain-verified agent legitimately claims a Skill it cannot actually perform? Is that a runtime conformance problem or a registry-governance problem?”
Q2
“A2A's input-required state assumes the calling agent can interrogate its user mid-task. In agent-to-agent chains three or four hops deep, what's the trust model for that question propagating back? Does the protocol implicitly require every intermediate agent to surface the question, or can it short-circuit answers based on policy?”
Q3
“OAuth 2.0 token exchange handles the on-behalf-of case for two parties. For three-or-more-org delegation chains, what's the right token-narrowing strategy — exchange at every hop, or pre-mint scoped tokens for the whole expected path? The 2505.12490 mitigation list is silent on this; what are people actually doing in production at Salesforce or SAP?”
Q4
“The MCP × A2A layering is now canonical, but the boundary leaks. If an A2A-exposed agent internally uses MCP servers under user-on-behalf-of tokens, a prompt injection at the A2A boundary can poison the MCP tool selection. Where does the cleanest defense sit — at the A2A handler before LLM ingestion, or at MCP tool dispatch, or somewhere in between?”
Q5
“The Linux Foundation reports 150+ orgs in production. How many of those are running signed Agent Cards by default versus opt-in? My read is that signed-card adoption lags A2A adoption by about a year. If that's right, what's the realistic timeline for cross-org A2A traffic to be majority-signed — late 2026, 2027, or never?”

CGO Lens

What A2A Changes for botlearn.ai

Five translations for go-to-market

The historical analogy is HTTP in 1995. Most companies in 1995 thought of the web as a content-distribution channel. The companies that thought of HTTP as a peer interface — meaning anyone could call them, not just the other way — became the platforms. A2A is at the same inflection point. Be addressable.

Curriculum Tracker

17-Day Journey

01Full Agent Stack
02Memory Architecture
03Planning & Tool Use
04RAG Deep Dive
05Agent Frameworks
06Benchmarks & Eval
07Multi-Agent Systems
08Computer Use Agents
09Code Agents
10Long-Horizon Tasks
11Agent Safety
12Agent Economics
13Research Frontiers
14OpenClaw Deep-Dive
15A2A Protocols ← today
16Agentic Commerce
17Synthesis