Safe, function-calling AI agents for the browser with risk-tiered tools, JSON Schema validation, streaming support, and audit logging
Single tool 'spawnSubagent' has a well-structured schema with proper JSON Schema types, clear parameter descriptions, and documented constraints (minLength, maxLength, minItems, maxItems). Description is substantive (180+ chars) and explains the tool's purpose, prerequisites, and behavior. However, the tool exhibits a fundamental composition issue: it conflates agent orchestration with tool invocation, violating the single-responsibility principle. The tool name lacks a clear action verb (spawn is vague; 'delegate_to_subagent' or 'execute_subtask' would be clearer). Risk classification is present but error handling guidance is absent, no recovery hints for failure modes (e.g., 'If subagent fails, try with fewer tools or a simpler task'). Output schema is not documented in the visible code.
Spawn a subagent to execute a self-contained task with a subset of available tools. The subagent runs to completion and returns a trimmed result without exposing intermediate reasoning or tool calls to the parent.
Tool name 'spawnSubagent' lacks action-verb clarity. 'spawn' is vague; LLMs may confuse it with process spawning or thread creation. Recommend 'delegate_to_subagent' or 'execute_subtask' to signal agent orchestration.
Output schema not documented. Tool description does not specify what fields the response contains (e.g., result, status, error, reasoning). LLMs cannot plan downstream actions without knowing the response structure.
No error recovery guidance. Description lacks hints for failure modes (e.g., 'If subagent fails with timeout, reduce maxToolRounds or simplify task'). Agents have no recovery path on failure.
Composition concern: spawnSubagent conflates agent orchestration with tool invocation. This violates single-responsibility, the tool both manages subagent lifecycle AND constrains tool access. Consider splitting into separate concerns or clarifying whether this is a meta-tool or a domain tool.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Parameter 'systemPrompt' accepts free-form text (1 - 2000 chars) with no validation or examples. LLMs may pass malformed or injection-prone prompts. Consider documenting expected format or providing a constrained set of system prompt templates.