pub struct ToolDefinition {Show 14 fields
pub name: String,
pub description: String,
pub input_schema: Value,
pub output_schema: Value,
pub input_schema_projections: Vec<SchemaProjectionOverride>,
pub output_schema_projections: Vec<SchemaProjectionOverride>,
pub output_contract: ToolOutputContract,
pub examples: Vec<String>,
pub availability: ToolAvailabilityConfig,
pub activation: ToolActivation,
pub availability_override: Option<ToolAvailability>,
pub discovery: ToolDiscoveryMetadata,
pub execution_mode: ToolExecutionMode,
pub retry_policy: ToolRetryPolicy,
}Expand description
Static authoring helper for tools.
Fields§
§name: String§description: String§input_schema: Value§output_schema: Value§input_schema_projections: Vec<SchemaProjectionOverride>§output_schema_projections: Vec<SchemaProjectionOverride>§output_contract: ToolOutputContract§examples: Vec<String>§availability: ToolAvailabilityConfig§activation: ToolActivation§availability_override: Option<ToolAvailability>§discovery: ToolDiscoveryMetadata§execution_mode: ToolExecutionModeHow this tool should be scheduled relative to peers when the model
emits a batch of tool calls. Defaults to ToolExecutionMode::Parallel.
retry_policy: ToolRetryPolicyWhether this tool may be retried automatically after a failure that explicitly opts into safe retry.
Implementations§
Source§impl ToolDefinition
impl ToolDefinition
pub fn raw( name: impl Into<String>, description: impl Into<String>, input_schema: Value, output_schema: Value, ) -> ToolDefinition
pub fn typed<Args, Output>(
name: impl Into<String>,
description: impl Into<String>,
) -> ToolDefinitionwhere
Args: JsonSchema,
Output: JsonSchema,
pub fn with_examples(self, examples: Vec<String>) -> ToolDefinition
pub fn with_availability( self, availability: ToolAvailabilityConfig, ) -> ToolDefinition
pub fn with_activation(self, activation: ToolActivation) -> ToolDefinition
pub fn with_discovery(self, discovery: ToolDiscoveryMetadata) -> ToolDefinition
pub fn with_execution_mode( self, execution_mode: ToolExecutionMode, ) -> ToolDefinition
pub fn with_retry_policy(self, retry_policy: ToolRetryPolicy) -> ToolDefinition
pub fn with_output_contract( self, output_contract: ToolOutputContract, ) -> ToolDefinition
pub fn with_input_schema_projection( self, profile: impl Into<String>, schema: Value, ) -> ToolDefinition
pub fn with_output_schema_projection( self, profile: impl Into<String>, schema: Value, ) -> ToolDefinition
pub fn with_output_from_input_schema( self, input_field: impl Into<String>, default_schema: Option<Value>, ) -> ToolDefinition
pub fn default_input_schema() -> Value
pub fn input_signature(&self) -> String
pub fn output_summary(&self) -> String
pub fn signature(&self) -> String
pub fn compact_contract(&self) -> CompactToolContract
pub fn compact_contract_with_example_limit( &self, example_limit: usize, ) -> CompactToolContract
pub fn effective_availability(&self, mode: &ExecutionMode) -> ToolAvailability
pub fn model_tool(&self) -> ModelTool
pub fn manifest(&self) -> ToolManifest
pub fn contract(&self) -> ToolContract
pub fn from_manifest_and_contract( manifest: ToolManifest, contract: ToolContract, ) -> ToolDefinition
pub fn format_tool_docs(tools: &[ToolDefinition]) -> String
pub fn format_tool_docs_iter<'a>( tools: impl IntoIterator<Item = &'a ToolDefinition>, ) -> String
pub fn parameter_metadata(&self) -> Vec<Value>
Trait Implementations§
Source§impl Clone for ToolDefinition
impl Clone for ToolDefinition
Source§fn clone(&self) -> ToolDefinition
fn clone(&self) -> ToolDefinition
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ToolDefinition
impl Debug for ToolDefinition
Source§impl<'de> Deserialize<'de> for ToolDefinition
impl<'de> Deserialize<'de> for ToolDefinition
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ToolDefinition, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ToolDefinition, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for ToolDefinition
impl Serialize for ToolDefinition
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for ToolDefinition
impl RefUnwindSafe for ToolDefinition
impl Send for ToolDefinition
impl Sync for ToolDefinition
impl Unpin for ToolDefinition
impl UnsafeUnpin for ToolDefinition
impl UnwindSafe for ToolDefinition
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more