A multi-agent AI system with tool execution, self-improvement, and MCP server integration. Supports tool calling via multiple LLM providers (OpenAI, Anthropic, Ollama, Gemini, DeepSeek) with browser automation, filesystem operations, command execution, and HTTP networking.
Capability OS provides 18 tools with basic schemas and descriptions, but falls short of production quality. All tools have descriptions (10-50 chars, below the 50-200 char baseline for LLM optimization) and input schemas with type definitions. However, descriptions are generic and lack actionable context. Parameters lack enums for constrained inputs (e.g., browser headless boolean, command execution). No output schemas documented. Error handling is absent, tools do not guide recovery or categorize failures. Security concerns: execution_run_command exposes shell access without validation guidance; filesystem tools lack path traversal protection documentation. Composition is reasonable (18 focused tools), but descriptions do not explain WHEN to use each tool or dependencies between them.
Click an element in a browser session by CSS selector.
Close a browser session.
List all open tabs in a browser session.
Navigate to a URL in a browser session.
Open a new browser session.
Read text content from a browser session, optionally from a specific element.
Take a screenshot of a browser session.
Descriptions are too short (10-50 chars) and lack actionable context. Baseline for LLM-optimized descriptions is 50-200 chars. Examples: 'Read the contents of a file from the workspace' (49 chars) does not explain when to use this vs other file tools or what happens on error.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields without knowing what each tool returns. E.g., filesystem_read_file should document return type (string content), filesystem_list_directory should document list structure (array of file objects with name, type, size).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Type text into an element in a browser session.
Wait for an element to appear in a browser session.
Execute a shell command in the workspace.
Copy a file from source to destination in the workspace.
Delete a file from the workspace.
Edit a file by replacing a substring or full content.
List the contents of a directory in the workspace.
Move or rename a file in the workspace.
Read the contents of a file from the workspace.
Write content to a file in the workspace.
Make an HTTP GET request to a URL.
execution_run_command lacks input validation guidance and error recovery hints. No mention of command injection risks, timeout behavior, or how to handle non-zero exit codes. Description should state: 'Executes shell commands. Validate input to prevent injection. Returns stdout, stderr, and exit code. Non-zero exit is an error, check stderr for details.'
Filesystem tools (read, write, edit, copy, move, delete) lack path traversal protection documentation. Descriptions should state: 'Paths are relative to workspace root and validated against traversal attacks. Absolute paths and '..' sequences are rejected.'
Browser tools use optional session_id parameter with implicit 'active session' fallback. This is ambiguous, LLMs may not know which session is active. Descriptions should clarify: 'If session_id is omitted, uses the most recently opened session. To list all sessions, call browser_list_tabs with no session_id.'