Agnes AI High-Defense Desktop Engine - Native Rust GUI with zero WebView2, featuring multi-agent validation, sandbox execution, MCP server integration, and file change tracking
Agnes AI exposes 4 tools with basic descriptions and input schemas, but lacks critical production-grade patterns. Tool names follow verb_noun convention (write_file, read_file, run_command, run_mcp), which is positive. However, descriptions are minimal (10-50 chars), parameter descriptions are sparse or missing, output schemas are undocumented, and error handling guidance is absent. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite high-risk operations. The run_command and run_mcp tools are IRREVERSIBLE but lack confirmation/dry-run patterns. No pagination, no structured output documentation, no recovery guidance. This is typical of early-stage agent tooling, functional but not production-ready.
Inspect the content of a file
Run terminal commands (like cargo, git, npm, etc.) in the workspace sandbox
Invoke tools on configured Model Context Protocol (MCP) servers
Create or overwrite a file with specified content
Destructive operations (write_file, run_command, run_mcp) lack confirmation/dry-run patterns. No tool annotations (destructiveHint) to signal irreversibility to LLMs.
Output schemas are not documented. LLMs cannot infer what write_file, read_file, run_command, and run_mcp return, forcing guesswork on downstream tool chaining.
Parameter descriptions are minimal or absent. 'command' in run_command lacks detail on format, timeout, shell, working directory, and error handling. 'args' in run_mcp is vague ('JSON object with tool arguments').
No error handling guidance. Tools do not explain what errors mean, whether they are retryable, or what the LLM should do next. A failed run_command returns nothing actionable.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
run_mcp tool design violates single-responsibility principle. It acts as a generic proxy to ANY MCP server, making it impossible for LLMs to reason about what it does or when to use it. Should expose individual MCP tools directly.