gptqueue defines 6 tools with clear action verbs and reasonable descriptions (avg 150 chars). All tools have input schemas with type definitions and parameter descriptions. However, output schemas are not documented, LLMs cannot predict response structure. Parameter descriptions are adequate but lack format constraints (e.g., timeout range, message type enum values). Error handling is minimal; tools do not guide recovery. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels (WRITE, DESTRUCTIVE). Composition is sound, tools chain well (register → send/receive → list/status). Security concern: no visible validation of agent names or message content against injection.
Get queue depth and metadata for an agent (or all agents). Works before registration.
Discover other agents. Returns each agent's name, description (what they do), role, and online/offline status. Use this to find the right agent to send_message to. Works before registration.
Receive the next message from this agent's inbox (blocking). Returns the message or timeout. Requires register_agent first.
Register this agent with a name, role, and description. The agent MUST ask the user to choose a name if one was not provided via GPTQ_AGENT_NAME. Can also be called again to rename midway -- pending messages are migrated.
Send a message to another agent's inbox queue. Retries with backoff if queue is full. Requires register_agent first.
Unregister this agent and clean up its queue data
Output schemas not documented. LLMs cannot predict response structure for any tool. list_agents, get_queue_status, receive_message return complex objects but no schema is visible in code.
Tool annotations missing. register_agent and unregister_agent are WRITE/DESTRUCTIVE but lack readOnlyHint/destructiveHint annotations. Agents cannot infer safety/idempotency.
Parameter constraints incomplete. timeout in receive_message lacks min/max bounds. message type enum values are documented but not enforced in schema. metadata parameter is untyped object.
Error handling lacks recovery guidance. No visible error responses that tell LLM what to do next (e.g., 'Agent not registered. Call register_agent first.'). Agents cannot self-correct on failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
No input validation visible. Agent names, message content, and target agent names are not validated for injection or malformed input. Redis operations could be vulnerable to command injection via unescaped parameters.