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§
Sourcefn description(&self) -> &str
fn description(&self) -> &str
Human-readable description
Sourcefn parameters_schema(&self) -> Value
fn parameters_schema(&self) -> Value
JSON schema for parameters
Provided Methods§
Sourcefn output_schema(&self) -> Option<Value>
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.
Sourcefn param_domains(&self) -> Vec<(&'static str, OptionDomain)>
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.
fn spec(&self) -> ToolSpec
Implementations on Foreign Types§
Source§impl Tool for EchoTool
impl Tool for EchoTool
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,
EchoTool: 'async_trait,
Source§impl Tool for GpioReadTool
impl Tool for GpioReadTool
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,
GpioReadTool: 'async_trait,
Source§impl Tool for GpioWriteTool
impl Tool for GpioWriteTool
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,
GpioWriteTool: 'async_trait,
Source§impl Tool for SubprocessTool
impl Tool for SubprocessTool
Source§fn parameters_schema(&self) -> Value
fn parameters_schema(&self) -> Value
JSON Schema Draft 7 — auto-generated from manifest.parameters.