diff --git a/system/tools_reference.md b/system/tools_reference.md new file mode 100644 index 0000000..6316c6b --- /dev/null +++ b/system/tools_reference.md @@ -0,0 +1,222 @@ +--- +description: Built-in tools reference - available without skill invocation +limit: 2000 +--- +# Built-In Tools Reference + +## Core Tools (Always Available) + +These tools are built into Letta Code and available without invoking any skill. + +### 1. Bash +**Purpose:** Execute shell commands +**Use for:** Git operations, file system commands, npm/pip installs, docker, curl, etc. +**Key params:** +- `command` (required) - The command to execute +- `description` - What the command does +- `timeout` - Optional, in ms (default 120000) +- `run_in_background` - Run without blocking + +**Examples:** +```typescript +Bash({ command: "git status", description: "Check git status" }) +Bash({ command: "npm install", description: "Install dependencies", timeout: 300000 }) +``` + +--- + +### 2. Glob +**Purpose:** File pattern matching +**Use for:** Finding files by pattern, exploring directory structures +**Key params:** +- `pattern` (required) - Glob pattern like "**/*.ts" +- `path` - Directory to search (defaults to current) + +**Examples:** +```typescript +Glob({ pattern: "**/*.ts", path: "/home/ani/Projects" }) +Glob({ pattern: "**/README.md" }) +``` + +--- + +### 3. Grep +**Purpose:** Content search with ripgrep +**Use for:** Finding text in files, searching codebases +**Key params:** +- `pattern` (required) - Regex pattern to search +- `path` - Directory or file to search +- `glob` - Filter by file pattern +- `output_mode` - "content" (show matches) or "files_with_matches" (default) +- `-C` - Context lines to show + +**Examples:** +```typescript +Grep({ pattern: "class.*Agent", path: "/home/ani/Projects", glob: "*.ts" }) +Grep({ pattern: "TODO|FIXME", output_mode: "content" }) +``` + +--- + +### 4. Read +**Purpose:** Read file contents +**Use for:** Reading source files, configs, documentation +**Key params:** +- `file_path` (required) - Absolute path to file +- `offset` - Start reading from line number +- `limit` - Max lines to read + +**Examples:** +```typescript +Read({ file_path: "/home/ani/Projects/lettabot/package.json" }) +Read({ file_path: "/home/ani/file.ts", offset: 100, limit: 50 }) +``` + +--- + +### 5. Edit +**Purpose:** Edit files with exact string replacement +**Use for:** Modifying code, updating configs +**Key params:** +- `file_path` (required) +- `old_string` (required) - Text to replace (must be unique) +- `new_string` (required) - Replacement text +- `replace_all` - Replace all occurrences + +**Examples:** +```typescript +Edit({ + file_path: "/home/ani/file.ts", + old_string: "const x = 1;", + new_string: "const x = 2;" +}) +``` + +--- + +### 6. Write +**Purpose:** Write new files +**Use for:** Creating new files (only when needed) +**Key params:** +- `file_path` (required) - Must be absolute path +- `content` (required) - File contents + +**Examples:** +```typescript +Write({ + file_path: "/home/ani/new-file.md", + content: "# Hello\n\nContent here" +}) +``` + +--- + +## Task Tool (Subagents) + +### 7. Task +**Purpose:** Spawn specialized subagents +**Use for:** Delegating work, parallel exploration, complex tasks +**Key params:** +- `description` - Short task name +- `prompt` - Detailed instructions +- `subagent_type` - "explore", "coder", "verifier", etc. +- `model` - Which model to use (kimi-k2.5, nemotron-3-super, etc.) +- `run_in_background` - Continue without waiting + +**Examples:** +```typescript +Task({ + description: "Explore Matrix formatting", + prompt: "Find all files related to...", + subagent_type: "explore", + model: "kimi-k2.5" +}) +``` + +--- + +## Memory Tools + +### 8. memory +**Purpose:** CRUD operations on memory files +**Use for:** Creating, reading, updating memory blocks +**Commands:** `create`, `str_replace`, `delete`, `rename`, `update_description` +**Key params:** +- `command` (required) +- `path` - Memory file path (relative to memory dir) +- `description` - For create/update_description +- `file_text` - Content for create +- `old_string` / `new_string` - For str_replace +- `reason` - Commit message + +**Examples:** +```typescript +memory({ + command: "create", + path: "system/new-doc.md", + description: "Documentation", + file_text: "Content", + reason: "Add documentation" +}) +``` + +--- + +## LettaBot-Specific Tools + +### 9. manage_todo +**Purpose:** CRUD operations on todos +**Commands:** `add`, `list`, `complete`, `reopen`, `remove`, `snooze` + +**Examples:** +```typescript +manage_todo({ action: "add", text: "Do thing" }) +manage_todo({ action: "complete", id: "todo-abc123" }) +``` + +--- + +### 10. conversation_search +**Purpose:** Search message history +**Use for:** Finding past conversations + +**Examples:** +```typescript +conversation_search({ query: "Matrix bridge" }) +``` + +--- + +### 11. archival_memory_search +**Purpose:** Search long-term memory +**Use for:** Recalling stored facts + +--- + +## When to Use What + +| Task | Tool | +|------|------| +| Run shell command | `Bash` | +| Find files | `Glob` | +| Search code | `Grep` | +| Read file | `Read` | +| Modify file | `Edit` | +| Create file | `Write` | +| Delegate work | `Task` | +| Update memory | `memory` | +| Manage todos | `manage_todo` | + +--- + +## Important Notes + +1. **Always use absolute paths** - `/home/ani/...` not relative paths +2. **Read before editing** - Must read file before using Edit +3. **Prefer editing existing files** - Over creating new ones +4. **Specify model for subagents** - Use kimi-k2.5, nemotron-3-super, etc. +5. **Bash commands need description** - Always include what they do + +--- + +Last updated: 2026-03-21