Open-source multi-provider desktop AI agent platform with MCP plugin support, custom tool creation, and cloud sync capabilities
Six tools with basic schemas and descriptions, but significant gaps in parameter documentation and error handling. All tools have descriptions (10-50 chars, below the 50-200 char baseline for LLM optimization). Input schemas present but sparse: most parameters lack detailed constraints, format specifications, or validation guidance. No output schemas documented. No error recovery guidance. No tool annotations (readOnlyHint/destructiveHint). Naming is verb-first and clear (read_file, write_file, shell), but descriptions are minimal and do not explain when to use each tool or what happens on failure. Parameter descriptions are present but generic ('Path to the file to read' vs 'Absolute or relative path; max 4096 chars; must exist'). No pagination, no batch variants, no idempotency guarantees documented.
Edit a file by replacing old text with new text
List files and directories in a path
Read the contents of a file
Search for text patterns in files using regex
Execute a shell command and return the output. Use for running tests, building, installing packages, etc.
Write content to a file. Creates directories if needed.
Descriptions are 10-50 characters, well below the 50-200 char baseline for LLM optimization. 'Read the contents of a file' and 'Write content to a file' lack context on when to use each tool, prerequisites, or side effects.
No output schemas documented. LLMs cannot plan downstream calls or extract structured data. E.g., does list_dir return {files: [], dirs: []} or {entries: [{name, type}]}? Does search return {matches: [{file, line, text}]} or flat array?
No error handling guidance. shell, write_file, and edit_file are destructive/irreversible but lack recovery hints. No distinction between retryable errors (timeout) vs user-fixable (file not found) vs fatal (permission denied).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Parameter descriptions lack format/constraint details. 'path' params do not specify: absolute vs relative, max length, character restrictions, or whether symlinks are followed. 'pattern' in search lacks regex syntax guidance or examples.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot infer which tools are safe to retry, which modify state, or which are read-only without explicit hints.