Skip to main content

Tool

Trait Tool 

pub trait Tool:
    Send
    + Sync
    + Attributable {
    // Required methods
    fn name(&self) -> &str;
    fn description(&self) -> &str;
    fn parameters_schema(&self) -> Value;
    fn execute<'life0, 'async_trait>(
        &'life0 self,
        args: Value,
    ) -> Pin<Box<dyn Future<Output = Result<ToolResult, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: 'async_trait;

    // Provided methods
    fn output_schema(&self) -> Option<Value> { ... }
    fn param_domains(&self) -> Vec<(&'static str, OptionDomain)> { ... }
    fn spec(&self) -> ToolSpec { ... }
}

Required Methods§

Source

fn name(&self) -> &str

Tool name (used in LLM function calling)

Source

fn description(&self) -> &str

Human-readable description

Source

fn parameters_schema(&self) -> Value

JSON schema for parameters

Source

fn execute<'life0, 'async_trait>( &'life0 self, args: Value, ) -> Pin<Box<dyn Future<Output = Result<ToolResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Execute the tool with given arguments

Provided Methods§

Source

fn output_schema(&self) -> Option<Value>

JSON schema describing the structured output this tool attaches to ToolOutput::data, when it declares one. None means the tool emits display text only; authoring surfaces fall back to sample-derived shapes from captured runs.

Source

fn param_domains(&self) -> Vec<(&'static str, OptionDomain)>

Option domains for parameters whose value sets live in runtime config rather than the static schema (channel refs, peer targets, …). Surfaces resolve these through the runtime to render real selectable choices. Default: no domain-typed parameters.

Source

fn spec(&self) -> ToolSpec

Implementors§

Source§

impl Tool for CronAddTool

Source§

impl Tool for CronListTool

Source§

impl Tool for CronRemoveTool

Source§

impl Tool for CronRunTool

Source§

impl Tool for CronRunsTool

Source§

impl Tool for CronUpdateTool

Source§

impl Tool for DelegateTool

Source§

impl Tool for FileReadTool

Source§

impl Tool for ModelSwitchTool

Source§

impl Tool for ReadSkillTool

Source§

impl Tool for ScheduleTool

Source§

impl Tool for SecurityOpsTool

Source§

impl Tool for SendMessageToPeerTool

Source§

impl Tool for ShellTool

Source§

impl Tool for SkillHttpTool

Source§

impl Tool for SkillManageTool

Source§

impl Tool for SkillViewTool

Source§

impl Tool for SkillsListTool

Source§

impl Tool for SkillBuiltinTool

Source§

impl Tool for SkillShellTool

Source§

impl Tool for SopAdvanceTool

Source§

impl Tool for SopApproveTool

Source§

impl Tool for SopExecuteTool

Source§

impl Tool for SopListTool

Source§

impl Tool for SopStatusTool

Source§

impl Tool for SopWorkshopTool

Source§

impl Tool for SpawnSubagentTool

Source§

impl Tool for ArcToolRef

Source§

impl Tool for AskUserTool

Source§

impl Tool for BackupTool

Source§

impl Tool for BrowserDelegateTool

Source§

impl Tool for BrowserOpenTool

Source§

impl Tool for BrowserTool

Source§

impl Tool for CalculatorTool

Source§

impl Tool for CanvasTool

Source§

impl Tool for ChannelRoomTool

Source§

impl Tool for ClaudeCodeRunnerTool

Source§

impl Tool for ClaudeCodeTool

Source§

impl Tool for CloudOpsTool

Source§

impl Tool for CloudPatternsTool

Source§

impl Tool for CodexCliTool

Source§

impl Tool for ComposioTool

Source§

impl Tool for ContentSearchTool

Source§

impl Tool for DataManagementTool

Source§

impl Tool for DiscordSearchTool

Source§

impl Tool for EmailReadTool

Source§

impl Tool for EmailSearchTool

Source§

impl Tool for EscalateToHumanTool

Source§

impl Tool for FileDownloadTool

Source§

impl Tool for FileEditTool

Source§

impl Tool for FileUploadBundleTool

Source§

impl Tool for FileUploadTool

Source§

impl Tool for FileWriteTool

Source§

impl Tool for GeminiCliTool

Source§

impl Tool for GitForgeTool

Source§

impl Tool for GitOperationsTool

Source§

impl Tool for GlobSearchTool

Source§

impl Tool for GoogleWorkspaceTool

Source§

impl Tool for HardwareBoardInfoTool

Source§

impl Tool for HardwareMemoryMapTool

Source§

impl Tool for HardwareMemoryReadTool

Source§

impl Tool for HttpRequestTool

Source§

impl Tool for ImageGenTool

Source§

impl Tool for ImageInfoTool

Source§

impl Tool for JiraTool

Source§

impl Tool for KnowledgeTool

Source§

impl Tool for LinkedInTool

Source§

impl Tool for LlmTaskTool

Source§

impl Tool for McpPromptsTool

Source§

impl Tool for McpResourcesTool

Source§

impl Tool for McpToolWrapper

Source§

impl Tool for MemoryExportTool

Source§

impl Tool for MemoryForgetTool

Source§

impl Tool for MemoryPurgeTool

Source§

impl Tool for MemoryRecallTool

Source§

impl Tool for MemoryStoreTool

Source§

impl Tool for Microsoft365Tool

Source§

impl Tool for ModelRoutingConfigTool

Source§

impl Tool for NotionTool

Source§

impl Tool for OpenCodeCliTool

Source§

impl Tool for PipelineTool

Source§

impl Tool for PollTool

Source§

impl Tool for ProjectIntelTool

Source§

impl Tool for ProxyConfigTool

Source§

impl Tool for PushoverTool

Source§

impl Tool for ReactionTool

Source§

impl Tool for ReportTemplateTool

Source§

impl Tool for ScreenshotTool

Source§

impl Tool for SendViaTool

Source§

impl Tool for SessionDeleteTool

Source§

impl Tool for SessionResetTool

Source§

impl Tool for SessionsCurrentTool

Source§

impl Tool for SessionsHistoryTool

Source§

impl Tool for SessionsListTool

Source§

impl Tool for SessionsSendTool

Source§

impl Tool for TextBrowserTool

Source§

impl Tool for ToolSearchTool

Source§

impl Tool for WeatherTool

Source§

impl Tool for WebFetchTool

Source§

impl Tool for WebSearchTool

Source§

impl Tool for TodoWriteTool

Source§

impl Tool for VerifiableIntentTool

Source§

impl<T> Tool for PathGuardedTool<T>
where T: Tool,

Source§

impl<T> Tool for RateLimitedTool<T>
where T: Tool,