Tools are the capabilities available to Arawn's agent loop.
| Category | Tools | Purpose |
|---|---|---|
| File System | file_read, file_write, glob, grep |
File operations and search |
| Execution | shell |
Command execution |
| Web | web_fetch, web_search |
Internet access |
| Memory | memory_search, note, think |
Knowledge management |
| Orchestration | delegate, workflow |
Task delegation and pipelines |
| External | MCP tools, CLI tools | Plugin-provided capabilities |
- Registration — Tools register with the ToolRegistry at startup
- Documentation — Tool schemas sent to LLM for understanding
- Selection — LLM decides which tools to call
- Execution — Agent executes tools with provided parameters
- Results — Tool output returned to LLM for next decision
All tools implement the Tool trait:
pub trait Tool: Send + Sync {
fn name(&self) -> &str;
fn description(&self) -> &str;
fn parameters(&self) -> Value; // JSON schema
async fn execute(&self, params: Value, ctx: &ToolContext) -> Result<ToolResult>;
}- Built-in Tools — Core tools shipped with Arawn
- MCP Integration — Model Context Protocol tools
- Custom Tools — Plugin CLI tools and extensions