A C library for building AI agents with tool use, supporting OpenAI-compatible chat completion APIs with built-in tools for file operations, shell execution, and monitoring.
CLM provides 8 tools with basic schemas and descriptions, but falls significantly short of production quality. Tool descriptions are minimal (10-50 chars, well below the 194-char baseline). Parameter descriptions exist but are terse. No output schemas documented. Critical security issues: shell_exec and bg_exec expose arbitrary command execution without sandboxing, rate limiting, or dry-run confirmation. No error recovery guidance. Naming is adequate (verb-noun pattern) but lacks clarity on destructive operations. The mock_server.c tools (edit_file, agent_send) appear to be test stubs, not production implementations.
Send a message to another agent
Start a shell command in the background and return immediately, with results delivered later via notification
Edit file by replacing text patterns
List directory contents (built-in tool)
Start a long-running command and turn each line of output into a fresh notification while it keeps running
Read file contents (built-in tool)
Execute a shell command and wait for completion
shell_exec and bg_exec expose arbitrary command execution without sandboxing, confirmation, or dry-run support. No rate limiting, timeout enforcement, or output truncation documented. Agents can trivially cause data loss or system compromise.
Tool descriptions are 10-50 characters (well below 194-char baseline). Descriptions like 'Execute a shell command and wait for completion' lack context on when to use, prerequisites, or consequences. LLMs cannot reliably select the right tool.
No output schemas documented for any tool. Callers cannot know what fields to expect (e.g., does read_file return {content, size, encoding}?). Agents must guess structure, risking parsing failures.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | <=2025-11-25 | v2 |
Write or append to a file (built-in tool)
edit_file and agent_send are defined in test/tui/mock_server.c, not production code. Unclear if these are real tools or test stubs. If real, they lack proper error handling and validation.
No error recovery guidance. Tools return errors but do not tell agents what to do next (retry, ask user, abort). No categorization of retryable vs fatal errors.