Agent Cards and Discovery

Before one agent can delegate to another it has to find it and understand what it can do, and in A2A that self-description is a single structured document called the Agent Card.

For agents to collaborate across organizational and framework boundaries, they first need a way to answer three questions about each other: who are you, what can you do, and how do I reach you? The Agent2Agent protocol (A2A) answers all three with one artifact — the Agent Card. This second post in the series covers what an Agent Card contains, how discovery works, and why treating the card as the contract keeps opaque agents genuinely interoperable.

The Agent Card as a contract

An Agent Card is a structured document, published by an A2A server, that describes the agent’s identity, capabilities, skills, service endpoint, and authentication requirements. It is the machine-readable “business card” a client agent reads to decide whether and how to work with a remote agent. Because A2A treats remote agents as opaque, the card is the entire public contract — a client agent knows nothing about the remote agent’s internals, only what the card advertises.

That framing matters. Everything a client agent does — deciding the remote agent is relevant, formatting a request it will understand, authenticating correctly — flows from the card. A precise, honest card makes an agent usable; a vague one makes it ignored.

What the card contains

An Agent Card carries several groups of fields. The important ones:

Conceptually, a card looks like this:

{
  "id": "translation-agent",
  "name": "Translation Agent",
  "description": "Translates documents between supported languages.",
  "provider": { "name": "Example Corp", "url": "https://example.com" },
  "capabilities": { "streaming": true, "pushNotifications": true },
  "skills": [
    {
      "id": "translate-document",
      "name": "Translate a document",
      "description": "Translate a text document into a target language."
    }
  ],
  "interfaces": [ { "protocol": "jsonrpc", "url": "https://agents.example.com/a2a" } ],
  "securitySchemes": { "oauth2": { "type": "oauth2" } },
  "security": [ { "oauth2": [] } ]
}

The exact schema is normatively defined by the specification; the point to internalize is that one document tells a client agent everything it needs — what the agent does, where it lives, and how to authenticate.

Skills: how routing decisions get made

Skills deserve special attention because they are where an orchestrating agent makes its choice. When a client agent needs a subtask done, it reads candidate agents’ cards, matches the subtask against their declared skills, and delegates to the best fit. This is the agent-to-agent analogue of tool selection: just as a good tool description helps a model pick the right tool, a good skill description helps a client agent pick the right agent. Vague skills (“does stuff with text”) produce bad routing; specific ones (“translate a document between supported languages,” “summarize a legal contract”) produce good routing. Write skills for the agent that will read them.

Discovery

Discovery is the act of a client agent obtaining a remote agent’s card. In practice, an A2A server publishes its Agent Card at a known, retrievable location so clients can fetch it over HTTPS, and organizations may also maintain registries or catalogs of agents for their systems to search. Once a client has the card, it has enough to authenticate and begin sending work.

A2A also supports the idea of an extended Agent Card. A public card can advertise that an authenticated, richer card is available (capabilities.extendedAgentCard); a client that authenticates can then retrieve additional skills or details it is authorized to see. This lets an agent show a limited public face to anyone and a fuller set of capabilities to trusted, authenticated callers — useful when some skills are sensitive or partner-specific.

Why this design holds up

The Agent Card design is what makes opaque, cross-vendor collaboration work. Because the card is a stable, declared contract, a remote agent can change its model, prompts, tools, or implementation freely as long as the card’s promises still hold. Clients depend on the advertised interface, not the internals — the same discipline that makes any good API durable, applied to autonomous agents. Get the card right, and everything downstream in A2A has a firm foundation.

Key takeaways

Further reading

Sources & References

Agent Card schema