Rust-based AI agent framework with built-in tools for bash execution, file I/O, memory management, skill creation, and MCP (Model Context Protocol) client support. Supports multiple LLM providers (OpenAI, Anthropic, Bedrock, Gemini, Vertex) and messaging gateways (Telegram, Discord, Slack).
Merlion Agent has 15 tools with basic descriptions and minimal parameter documentation. Most tools lack detailed input schemas, parameters are present but lack type constraints, enums, or validation guidance. Descriptions are terse (10-50 chars for most tools), below the 50-200 char baseline for LLM-optimized docs. No output schemas documented. Error handling is absent from tool definitions. Security-critical tools (bash, bash_docker, bash_ssh) expose command execution without dry-run or confirmation patterns. Memory and skill tools are underspecified. Overall, the server follows a minimal definition pattern typical of early-stage agent frameworks.
Execute shell commands in a sandbox environment
Execute shell commands in a Docker container
Execute shell commands over SSH
Edit a file using a line-based interface (search-replace or line insertion/deletion)
Find files matching a glob pattern
Search for patterns in files
List directory contents
Read the persistent markdown memory store
Irreversible tools (bash, bash_docker, bash_ssh) lack dry-run, confirmation, or audit patterns. No error recovery guidance. Agents can execute destructive commands without safeguards.
Parameter schemas are minimal. Most tools show only parameter names and descriptions; no type constraints, enums, min/max bounds, or format specifications. LLMs cannot validate input before calling.
Tool descriptions are too brief (10-50 chars). Baseline is 50-200 chars for LLM-optimized docs. Descriptions lack WHEN to use, prerequisites, or side-effect warnings. Example: 'Execute shell commands in a sandbox environment' does not explain risk, retry behavior, or output format.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | <=2025-11-25 | v2 |
Write or append to the persistent markdown memory store
Read the contents of a file
Create a new skill the user can invoke with `/<name>`. Writes `<merlion_home>/skills/<name>.md` with the given front-matter and body. Use this when you discover a repeatable workflow worth giving a name to.
Update an existing skill's body (and optionally its description). The skill must already exist. Use this to refine a skill based on lessons learned while using it.
Create and manage subtasks for the agent to execute
Fetch content from a URL
Write content to a file, creating it if it does not exist
No output schemas documented. LLMs cannot plan downstream tool calls or extract structured data. Example: does 'read' return raw text or {content, encoding, size}? Does 'grep' return matches as array or string?
task tool uses generic 'action' parameter (create, update, get, list) without enum constraint or per-action schema. LLMs cannot know which parameters apply to which action. Violates single-responsibility principle.