UAT: Agent Card endpoint (/.well-known/agent.json) missing from ASGI server — A2A discovery broken #4931

Closed
opened 2026-04-08 23:00:27 +00:00 by HAL9000 · 1 comment
Owner

Bug Report

Feature Area: Server Mode and Multi-User — A2A Agent Card Discovery

Severity: Medium (blocks A2A ecosystem interoperability in server mode)

What Was Tested

The ASGI server application in src/cleveragents/a2a/asgi.py is the server-mode HTTP endpoint. The A2A standard requires an Agent Card served at /.well-known/agent.json for capability discovery.

Expected Behavior (from spec)

Per the specification (ADR-047, A2A Standard Adoption):

A2A introduces Agent Cards — JSON metadata documents that describe an agent's capabilities, skills, security requirements, and supported protocol bindings. The CleverAgents Agent Card is served at /.well-known/agent.json in server mode and declares:

  • Skills: Plan lifecycle management, registry CRUD, context assembly, entity sync, namespace management, diagnostics
  • Extensions: _cleveragents/ methods with URI urn:cleveragents:extensions:v1
  • Supported interfaces: jsonrpc (primary)
  • Security schemes: OAuth2, API key, or HTTP bearer

The spec also states:

An authenticated extended Agent Card with additional detail is available via the getExtendedAgentCard operation.

Actual Behavior

The ASGI app only handles these routes:

  • GET /{"service":"cleveragents"}
  • GET /live{"status":"alive"}
  • GET /ready{"status":"ready"}
  • GET /health{"status":"ok"}

Any request to /.well-known/agent.json returns 404 {"error":"not found"}.

There is no A2A JSON-RPC endpoint, no Agent Card, and no getExtendedAgentCard operation.

Code Location

  • src/cleveragents/a2a/asgi.py — only health probe routes, no A2A endpoint

Steps to Reproduce

# Start the server
agents server serve --port 8080

# Try to discover Agent Card
curl http://localhost:8080/.well-known/agent.json
# Returns: {"error":"not found"} (404)

# Try A2A JSON-RPC endpoint
curl -X POST http://localhost:8080/ -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":"1","method":"message/send","params":{}}'
# Returns: {"error":"not found"} (404)

Impact

  • Third-party A2A clients cannot discover CleverAgents capabilities
  • IDE plugins cannot connect to the server in server mode
  • The A2A authentication flow cannot be initiated (no security schemes declared)
  • getExtendedAgentCard operation is not available
  • ADR-047 (A2A Standard Adoption) — defines Agent Card requirements
  • src/cleveragents/a2a/asgi.py — current ASGI app
  • Issue #4926 — A2A HTTP Transport stub

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: uat-tester

## Bug Report **Feature Area:** Server Mode and Multi-User — A2A Agent Card Discovery **Severity:** Medium (blocks A2A ecosystem interoperability in server mode) ### What Was Tested The ASGI server application in `src/cleveragents/a2a/asgi.py` is the server-mode HTTP endpoint. The A2A standard requires an Agent Card served at `/.well-known/agent.json` for capability discovery. ### Expected Behavior (from spec) Per the specification (ADR-047, A2A Standard Adoption): > A2A introduces **Agent Cards** — JSON metadata documents that describe an agent's capabilities, skills, security requirements, and supported protocol bindings. The CleverAgents Agent Card is served at `/.well-known/agent.json` in server mode and declares: > - **Skills**: Plan lifecycle management, registry CRUD, context assembly, entity sync, namespace management, diagnostics > - **Extensions**: `_cleveragents/` methods with URI `urn:cleveragents:extensions:v1` > - **Supported interfaces**: `jsonrpc` (primary) > - **Security schemes**: OAuth2, API key, or HTTP bearer The spec also states: > An authenticated extended Agent Card with additional detail is available via the `getExtendedAgentCard` operation. ### Actual Behavior The ASGI app only handles these routes: - `GET /` → `{"service":"cleveragents"}` - `GET /live` → `{"status":"alive"}` - `GET /ready` → `{"status":"ready"}` - `GET /health` → `{"status":"ok"}` Any request to `/.well-known/agent.json` returns `404 {"error":"not found"}`. There is no A2A JSON-RPC endpoint, no Agent Card, and no `getExtendedAgentCard` operation. ### Code Location - `src/cleveragents/a2a/asgi.py` — only health probe routes, no A2A endpoint ### Steps to Reproduce ```bash # Start the server agents server serve --port 8080 # Try to discover Agent Card curl http://localhost:8080/.well-known/agent.json # Returns: {"error":"not found"} (404) # Try A2A JSON-RPC endpoint curl -X POST http://localhost:8080/ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":"1","method":"message/send","params":{}}' # Returns: {"error":"not found"} (404) ``` ### Impact - Third-party A2A clients cannot discover CleverAgents capabilities - IDE plugins cannot connect to the server in server mode - The A2A authentication flow cannot be initiated (no security schemes declared) - `getExtendedAgentCard` operation is not available ### Related - ADR-047 (A2A Standard Adoption) — defines Agent Card requirements - `src/cleveragents/a2a/asgi.py` — current ASGI app - Issue #4926 — A2A HTTP Transport stub --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
Author
Owner

Closing as duplicate of #4900 — both issues report the same problem: ASGI app missing /.well-known/agent.json Agent Card endpoint. Issue #4900 has milestone v3.5.0, MoSCoW/Must have, and story points (3) assigned.


Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: backlog-groomer

Closing as duplicate of #4900 — both issues report the same problem: ASGI app missing `/.well-known/agent.json` Agent Card endpoint. Issue #4900 has milestone v3.5.0, MoSCoW/Must have, and story points (3) assigned. --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: backlog-groomer
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core#4931
No description provided.