-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Is your feature request related to a problem? Please describe.
Currently, the specification assumes that each agent is served from a unique 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 defined in the corresponding Internet Draft. Specifically, a host could expose an API Catalog that lists multiple agent entries using linkset objects. Each entry would contain:
- An
anchor
representing the base path for an individual agent (e.g., https://example.org/agents/agent1) - A
describedby
relation pointing to an Agent Card that describes the agent's capabilities, metadata, and entry points.
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/agents/agent1",
"describedby": [
{
"href": "https://example.org/agents/agent1/agent.json",
"type": "application/json",
"title": "Agent Card for Agent 1"
}
]
},
{
"anchor": "https://example.org/agents/agent2",
"describedby": [
{
"href": "https://example.org/agents/agent2/agent.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
- GitHub Discussion
- GitHub Issue on a2a-python
- Internet-Draft api-catalog: a well-known URI and link relation to help discovery of APIs
- RFC 9264 Linkset: Media Types and a Link Relation Type for Link Sets
Code of Conduct
- I agree to follow this project's Code of Conduct