Is your feature request related to a problem? Please describe.
Currently, the specification assumes that each agent is served from a single base URL, effectively mapping one agent per host. However, in practice, it is common for a single host to act as a routing layer for multiple agents, each accessible via different paths under the same base URL. This setup creates the need for a standardized (open) discovery mechanism that allows clients to enumerate and resolve multiple agents served from a common origin.
Describe the solution you'd like
I propose supporting the discovery of multiple agents under a shared base URL by leveraging the API Catalog format. Specifically, a host could expose an API Catalog that lists multiple agent entries using Linkset objects. Each entry could contain:
- An
anchor (optional): The base path for an individual agent (e.g., https://example.org/a2a/v1/agent1), if applicable.
- Link relations to the agent's description: Typical examples include
describedby, service-desc, or service-meta. Implementations may also use a URI pointing to the relevant section of the Agent Card specification (e.g., https://a2a-protocol.org/latest/specification/#5-agent-discovery-the-agent-card) as the link relation.
This approach would allow clients to dynamically discover and integrate with multiple agents hosted under a single origin, in a standardized and interoperable way.
For example, if example.org is hosting agent1 and agent2, the expected https://example.org/.well-known/api-catalog would look like the following:
{
"linkset": [
{
"anchor": "https://example.org/a2a/v1/agent1",
"describedby": [
{
"href": "https://example.org/a2a/v1/agent1/agent-card.json",
"type": "application/json",
"title": "Agent Card for Agent 1"
}
]
},
{
"anchor": "https://example.org/a2a/v1/agent2",
"https://a2a-protocol.org/latest/specification/#5-agent-discovery-the-agent-card": [
{
"href": "https://example.org/agents/a2a/v1/agent2/agent-card.json",
"type": "application/json",
"title": "Agent Card for Agent 2"
}
]
}
]
}
Describe alternatives you've considered
An alternative approach discussed in the GitHub Discussion involves using a custom schema to define and expose agent API endpoint information.
Additional context
Code of Conduct
Is your feature request related to a problem? Please describe.
Currently, the specification assumes that each agent is served from a single base URL, effectively mapping one agent per host. However, in practice, it is common for a single host to act as a routing layer for multiple agents, each accessible via different paths under the same base URL. This setup creates the need for a standardized (open) discovery mechanism that allows clients to enumerate and resolve multiple agents served from a common origin.
Describe the solution you'd like
I propose supporting the discovery of multiple agents under a shared base URL by leveraging the API Catalog format. Specifically, a host could expose an API Catalog that lists multiple agent entries using Linkset objects. Each entry could contain:
anchor(optional): The base path for an individual agent (e.g., https://example.org/a2a/v1/agent1), if applicable.describedby,service-desc, orservice-meta. Implementations may also use a URI pointing to the relevant section of the Agent Card specification (e.g.,https://a2a-protocol.org/latest/specification/#5-agent-discovery-the-agent-card) as the link relation.This approach would allow clients to dynamically discover and integrate with multiple agents hosted under a single origin, in a standardized and interoperable way.
For example, if
example.orgis hostingagent1andagent2, the expectedhttps://example.org/.well-known/api-catalogwould look like the following:{ "linkset": [ { "anchor": "https://example.org/a2a/v1/agent1", "describedby": [ { "href": "https://example.org/a2a/v1/agent1/agent-card.json", "type": "application/json", "title": "Agent Card for Agent 1" } ] }, { "anchor": "https://example.org/a2a/v1/agent2", "https://a2a-protocol.org/latest/specification/#5-agent-discovery-the-agent-card": [ { "href": "https://example.org/agents/a2a/v1/agent2/agent-card.json", "type": "application/json", "title": "Agent Card for Agent 2" } ] } ] }Describe alternatives you've considered
An alternative approach discussed in the GitHub Discussion involves using a custom schema to define and expose agent API endpoint information.
Additional context
Code of Conduct