feat(a2a): add A2A (Agent2Agent) protocol server - #46241
Conversation
teknium1
left a comment
There was a problem hiding this comment.
Thank you for the thorough A2A adapter, lifecycle work, and focused tests. The feature is still needed: tracked searches of current main/origin/main found no A2A adapter, Agent Card, or hermes-a2a surface.
Problems
a2a_adapter/events.py:44anda2a_adapter/executor.py:42addHERMES_A2A_TOOL_IOandHERMES_A2A_MAX_CONCURRENCYfor behavioral configuration.AGENTS.md:102-107requires non-secret thresholds and feature settings to useconfig.yaml.- The PR adds direct CLI/toolset integration (
hermes_cli/main.py:11335,toolsets.py:396) around a root-level adapter. Current platform guidance instead documents a plugin directory registered throughctx.register_platform()with zero core edits (gateway/platforms/ADDING_A_PLATFORM.md:5-15;hermes_cli/plugins.py:931-975).
Suggested changes
- Move the two A2A settings into a documented
config.yamlsection. - Re-scope the platform integration to the existing plugin registration path where possible, then reconcile it carefully with current main rather than mechanically applying the stale core changes.
This is an automated hermes-sweeper review.
|
Reviewer feedback is addressed in the final commit Summary:
For review clarity, the branch was rebuilt directly atop current Two independent blocker reviews returned clean. Validation: 51/51 A2A tests, 173/173 shared plugin/config/bootstrap/packaging tests, Ruff, |
cca09c3 to
5b32760
Compare
|
Thanks for building this, @yugui923 — a full standalone A2A server with card discovery, JSON-RPC and SSE was exactly the right shape. A2A support has now landed on main via #77109 (the consolidated plugin from #41711 plus the community v1.0 follow-up stack, verified against the official a2a-sdk), so this parallel implementation is superseded. Closing with credit; if you spot gaps in the landed plugin relative to yours, focused follow-up PRs against plugins/platforms/a2a/ are very welcome. |
Summary
Adds an A2A (Agent2Agent) protocol server as a bundled Hermes platform plugin. Other agents can discover Hermes through an Agent Card and delegate tasks over JSON-RPC and SSE.
Run the standalone server with:
hermes-a2a # or python -m plugins.platforms.a2aThe same adapter is available to the gateway through the generic plugin loader and
ctx.register_platform().Configuration
All non-secret A2A behavior is configured through the top-level
a2a:section inconfig.yaml, including:Tool availability uses the generic
platform_toolsets.a2asurface and honors globally disabled toolsets. The adapter does not use A2A-specific behavioral environment variables.Reliability and security
Packaging and documentation
[a2a]optional dependency andhermes-a2aconsole scriptReviewer feedback addressed
tool_ioandmax_concurrencyfrom environment variables intoconfig.yamlmainValidation
tyhermes-a2a --checkequivalent module self-checkThe PR is intentionally presented as one commit for straightforward review and cherry-picking.