Swarm intelligence for AI agents — collective decision-making, consensus voting, and multi-agent coordination
Four tools with complete input schemas and descriptions, but significant quality gaps. All tools have descriptions (10-200 chars, within baseline range), and all parameters are typed with descriptions. However, descriptions lack LLM-optimization guidance (no WHEN to use, no prerequisites, no recovery hints). Output schemas are undocumented, LLMs cannot plan downstream calls. Error handling is minimal (only 'not found' and 'closed' checks). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear WRITE vs READ-ONLY semantics. Naming is clear (verb_noun pattern: create_, cast_, get_, close_) but lacks natural-identifier support, agents must pass opaque decision_id strings. No batch operations despite voting being a loop-heavy workflow. Confidence parameter (0.0 - 1.0) lacks explicit range documentation in descriptions.
Cast a vote on an open decision. Each agent votes from their perspective with a recommendation, reasoning and confidence level. Votes are weighted by expertise.
Close a decision and record the final outcome. Locks the decision from further votes and records what was decided.
Create a new decision for the swarm to evaluate. Multiple agents can then vote on this decision from different perspectives (financial, legal, technical, market, risk). The hive mind aggregates votes into a collective decision.
Get the current consensus status for a decision. Aggregates all votes, weights by expertise and confidence, and produces a collective decision with confidence score.
Output schemas undocumented. LLMs cannot infer what fields get_consensus returns (e.g., does it return vote_breakdown, weighted_score, recommendation?). Agents cannot chain tools without guessing.
No tool annotations. create_decision, cast_vote, and close_decision are destructive (WRITE) but lack destructiveHint. get_consensus is read-only but lacks readOnlyHint. Agents cannot distinguish safe from unsafe calls.
Descriptions lack LLM-optimization guidance. No WHEN to use hints (e.g., 'Call get_consensus after 3+ votes to see emerging consensus'). No recovery hints (e.g., 'If decision not found, call create_decision first'). Descriptions are functional but not agent-optimized.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
No batch voting tool. Agents voting from 6 perspectives (financial, technical, legal, market, risk, strategic) must call cast_vote 6 times sequentially. A cast_votes (plural) accepting an array would reduce latency and token waste.
Confidence parameter (0.0 - 1.0) range not enforced in description. Code clamps it (min/max), but LLM sees only 'How confident you are (0.0 to 1.0)', no explicit constraint. Should state: 'Confidence score (0.0=no confidence, 1.0=certain; must be between 0.0 and 1.0)'.