UAT: Standard A2A operations message/send and message/stream not implemented in A2aLocalFacade #4675

Open
opened 2026-04-08 17:59:45 +00:00 by HAL9000 · 0 comments
Owner

Summary

The A2aLocalFacade does not implement the standard A2A protocol operations message/send and message/stream. These are required by the spec as the primary mechanism for agent conversation in both local and server modes.

Expected Behavior (from docs/specification.md §Agent-to-Agent Protocol)

The standard provides operations for messaging (message/send, message/stream), task lifecycle management, streaming updates via SSE, and Agent Card-based capability discovery.

In local mode, the agent runs as a subprocess. Standard A2A operations (message/send, message/stream) drive the conversation.

The spec also shows the wire format:

{
  "jsonrpc": "2.0",
  "id": "...",
  "method": "message/send",
  "params": { "message": { "role": "user", "parts": [...] }, "sessionId": "..." }
}

Actual Behavior

A2aLocalFacade._handlers() in src/cleveragents/a2a/facade.py contains no handlers for message/send or message/stream. Dispatching either operation raises A2aOperationNotFoundError:

# _EXTENSION_OPERATIONS and _LEGACY_OPERATIONS in facade.py
# Neither contains "message/send" or "message/stream"

If a client sends A2aRequest(method="message/send", ...), the facade raises:

A2aOperationNotFoundError: Unknown A2A method: message/send

Code Location

  • src/cleveragents/a2a/facade.py_handlers() method, _EXTENSION_OPERATIONS and _LEGACY_OPERATIONS lists
  • src/cleveragents/a2a/facade.py_SUPPORTED_OPERATIONS list (lines ~40-80)

Impact

  • agents session tell cannot route through A2A as required by the spec
  • Third-party A2A clients cannot send messages to the local agent
  • The A2A protocol boundary between Presentation and Application layers is broken for the primary use case

Steps to Reproduce

from cleveragents.a2a.facade import A2aLocalFacade
from cleveragents.a2a.models import A2aRequest

facade = A2aLocalFacade()
response = facade.dispatch(A2aRequest(method="message/send", params={
    "message": {"role": "user", "parts": [{"type": "text", "text": "Hello"}]},
    "sessionId": "01HXYZ..."
}))
# Raises: A2aOperationNotFoundError: Unknown A2A method: message/send

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

## Summary The `A2aLocalFacade` does not implement the standard A2A protocol operations `message/send` and `message/stream`. These are required by the spec as the primary mechanism for agent conversation in both local and server modes. ## Expected Behavior (from `docs/specification.md` §Agent-to-Agent Protocol) > The standard provides operations for messaging (`message/send`, `message/stream`), task lifecycle management, streaming updates via SSE, and Agent Card-based capability discovery. > In **local mode**, the agent runs as a subprocess. Standard A2A operations (`message/send`, `message/stream`) drive the conversation. The spec also shows the wire format: ```json { "jsonrpc": "2.0", "id": "...", "method": "message/send", "params": { "message": { "role": "user", "parts": [...] }, "sessionId": "..." } } ``` ## Actual Behavior `A2aLocalFacade._handlers()` in `src/cleveragents/a2a/facade.py` contains no handlers for `message/send` or `message/stream`. Dispatching either operation raises `A2aOperationNotFoundError`: ```python # _EXTENSION_OPERATIONS and _LEGACY_OPERATIONS in facade.py # Neither contains "message/send" or "message/stream" ``` If a client sends `A2aRequest(method="message/send", ...)`, the facade raises: ``` A2aOperationNotFoundError: Unknown A2A method: message/send ``` ## Code Location - `src/cleveragents/a2a/facade.py` — `_handlers()` method, `_EXTENSION_OPERATIONS` and `_LEGACY_OPERATIONS` lists - `src/cleveragents/a2a/facade.py` — `_SUPPORTED_OPERATIONS` list (lines ~40-80) ## Impact - `agents session tell` cannot route through A2A as required by the spec - Third-party A2A clients cannot send messages to the local agent - The A2A protocol boundary between Presentation and Application layers is broken for the primary use case ## Steps to Reproduce ```python from cleveragents.a2a.facade import A2aLocalFacade from cleveragents.a2a.models import A2aRequest facade = A2aLocalFacade() response = facade.dispatch(A2aRequest(method="message/send", params={ "message": {"role": "user", "parts": [{"type": "text", "text": "Hello"}]}, "sessionId": "01HXYZ..." })) # Raises: A2aOperationNotFoundError: Unknown A2A method: message/send ``` --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.8.0 milestone 2026-04-08 18:05:19 +00:00
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.

Dependencies

No dependencies set.

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