Tool

Trait Tool 

Source
pub trait Tool:
    Send
    + Sync
    + 'static {
    type Output: ToolOutput + Serialize;

    // Required methods
    fn name(&self) -> &'static str;
    fn description(&self) -> String;
    fn input_schema(&self) -> &'static InputSchema;
    fn execute<'life0, 'life1, 'async_trait>(
        &'life0 self,
        parameters: Value,
        context: &'life1 ExecutionContext,
    ) -> Pin<Box<dyn Future<Output = ToolResult<Self::Output>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;

    // Provided method
    fn requires_approval(&self) -> bool { ... }
}

Required Associated Types§

Source

type Output: ToolOutput + Serialize

The concrete output type for this tool

Required Methods§

Source

fn name(&self) -> &'static str

A unique, stable identifier for the tool (e.g., “bash”, “edit_file”).

Source

fn description(&self) -> String

A description of what the tool does.

Source

fn input_schema(&self) -> &'static InputSchema

The JSON schema defining the tool’s expected input parameters.

Source

fn execute<'life0, 'life1, 'async_trait>( &'life0 self, parameters: Value, context: &'life1 ExecutionContext, ) -> Pin<Box<dyn Future<Output = ToolResult<Self::Output>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Executes the tool with the given parameters and execution context.

§Arguments
  • parameters - The parameters for the tool call, matching the input_schema.
  • context - Execution context containing cancellation token, working directory, etc.
§Returns

A ToolResult containing the typed output on success, or a ToolError on failure.

Provided Methods§

Source

fn requires_approval(&self) -> bool

Indicates if this tool requires user approval before execution.

Tools that modify the filesystem or external state should return true. Default implementation returns true (requiring approval). Tools should override this to return false if they only read data.

Implementors§