ToolDefinition

Type Alias ToolDefinition 

Source
pub type ToolDefinition = Arc<dyn Fn() -> (ToolMeta, Arc<dyn Tool>) + Send + Sync>;
Expand description

ツール定義ファクトリ

呼び出すと (ToolMeta, Arc<dyn Tool>) を返します。 Worker への登録時に一度だけ呼び出され、メタ情報とインスタンスが セッションスコープでキャッシュされます。

§Examples

let def: ToolDefinition = Arc::new(|| {
    (
        ToolMeta::new("my_tool")
            .description("My tool description")
            .input_schema(json!({"type": "object"})),
        Arc::new(MyToolImpl { state: 0 }) as Arc<dyn Tool>,
    )
});
worker.register_tool(def)?;

Aliased Type§

pub struct ToolDefinition { /* private fields */ }