Expand description
Extensible Tool System
Provides a trait-based abstraction for tools.
§Architecture
ToolRegistry
└── builtin tools (bash, read, write, edit, grep, glob, ls, patch, web_fetch, web_search)Re-exports§
pub use task::parallel_task_params_schema;pub use task::task_params_schema;pub use task::ParallelTaskParams;pub use task::ParallelTaskTool;pub use task::TaskExecutor;pub use task::TaskParams;pub use task::TaskResult;pub use task::TaskTool;
Modules§
- skill
- Skill Tool - Invoke skills as callable tools with temporary permission grants
- task
- Task tools for delegated child runs.
Structs§
- Artifact
Store - Artifact
Store Limits - Program
Tool - Tool
Artifact - Tool
Context - Tool execution context
- Tool
Executor - Tool executor with workspace sandboxing
- Tool
Output - Tool execution output
- Tool
Registry - Tool registry for managing all available tools
- Tool
Result - Tool execution result returned by direct tool execution.
Enums§
- Tool
Error Kind - Structured discriminant for tool failures.
- Tool
Stream Event - Events emitted by tools during execution
Constants§
- MAX_
LINE_ LENGTH - Maximum line length before truncation
- MAX_
OUTPUT_ SIZE - Maximum output size in bytes before truncation
- MAX_
READ_ LINES - Maximum lines to read from a file
Traits§
- Tool
- Tool trait - the core abstraction for all tools
Functions§
- register_
generate_ object - Register the
generate_objecttool for structured JSON output. - register_
program - Register the programmatic tool calling wrapper.
- register_
program_ with_ catalog - Register the programmatic tool calling wrapper with a custom catalog.
- register_
task - Register the task delegation tools (task, parallel_task).
- register_
task_ with_ mcp - Register the task delegation tools with optional MCP manager and parent context.
- select_
tools_ for_ messages - Select the tools that should be exposed to the model for this turn.
- select_
tools_ for_ prompt
Type Aliases§
- Tool
Event Sender - Sender for streaming tool output deltas during execution.