pub trait Tool: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn tier(&self) -> Tier;
fn call<'a>(
&'a self,
args: ToolArgs,
ctx: &'a ToolCtx,
) -> BoxFut<'a, ToolResult>;
// Provided methods
fn requires_call_intent(&self) -> bool { ... }
fn invocation_plane(&self) -> InvocationPlane { ... }
fn approval_level(&self, _args: &ToolArgs, _ctx: &ToolCtx) -> ApprovalLevel { ... }
fn cancel_behavior(&self) -> CancelBehavior { ... }
fn description(&self) -> Option<&str> { ... }
fn input_schema(&self) -> Value { ... }
fn invocation_provenance(
&self,
_args: &ToolArgs,
_ctx: &ToolCtx,
) -> Result<ResourceProvenance, RuntimeError> { ... }
fn model_followups(&self, _result: &Value, _ctx: &ToolCtx) -> Vec<Message> { ... }
fn preview_call<'a>(
&'a self,
_args: &'a ToolArgs,
_ctx: &'a ToolCtx,
) -> BoxFut<'a, Option<String>> { ... }
}Required Methods§
fn name(&self) -> &str
fn tier(&self) -> Tier
fn call<'a>( &'a self, args: ToolArgs, ctx: &'a ToolCtx, ) -> BoxFut<'a, ToolResult>
Provided Methods§
fn requires_call_intent(&self) -> bool
fn invocation_plane(&self) -> InvocationPlane
fn approval_level(&self, _args: &ToolArgs, _ctx: &ToolCtx) -> ApprovalLevel
fn cancel_behavior(&self) -> CancelBehavior
fn description(&self) -> Option<&str>
fn input_schema(&self) -> Value
fn invocation_provenance( &self, _args: &ToolArgs, _ctx: &ToolCtx, ) -> Result<ResourceProvenance, RuntimeError>
fn model_followups(&self, _result: &Value, _ctx: &ToolCtx) -> Vec<Message>
fn preview_call<'a>( &'a self, _args: &'a ToolArgs, _ctx: &'a ToolCtx, ) -> BoxFut<'a, Option<String>>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".