Skip to content

[Feat]: Support multi-agent open discovery under a single base URL via RFC 9264-compatible API Catalog #641

Description

@ognis1205

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

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

Labels

No labels
No labels
No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions