Agent-agnostic intercommunication system — sessions, messaging, channels, shared state, and real-time events
agent-comm defines 6 tools with reasonable naming (verb_noun pattern) and moderate schema coverage. However, descriptions are generic and lack LLM-optimization guidance. Parameter descriptions exist but are minimal (10-30 chars typical). Output schemas are not documented. Error handling is absent, no recovery guidance or actionable error messages. Tool composition is sound (each does one thing), but parameter relationships and constraints are underdocumented. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Baseline: 549 production tools average 194 chars in descriptions; these average ~80 chars and lack context for LLM selection.
Agent management operations: list, discover, whoami, heartbeat, status, unregister
Channel management: create, list, join, leave, archive channels
Event feed operations: list events, subscribe to real-time updates
Register an agent with the communication system, optionally joining channels and declaring capabilities/skills
Send messages to agents or channels, with support for broadcast, reply, and forward modes
Shared state management with CAS (compare-and-swap) operations for distributed coordination
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., agent IDs, channel IDs, message IDs). Baseline: 100% of A+ tools document return types.
Descriptions lack LLM-optimization guidance. Average 80 chars vs. baseline 194 chars. Missing WHAT/WHEN/WHY context. E.g., comm_state: 'Shared state management with CAS operations' doesn't explain when to use it vs. comm_send or comm_channels.
No error handling or recovery guidance. Tools return success/failure with no actionable next steps. E.g., if comm_register fails, LLM has no guidance on retry, validation, or alternative actions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Parameter constraints underdocumented. E.g., comm_agents 'stuck_threshold_minutes' accepts 1-1440 but description lacks range. comm_send 'importance' enum is declared but no guidance on when to use each level.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes. E.g., comm_send and comm_register are marked WRITE but lack destructiveHint; comm_feed is READ_ONLY but lacks annotation.