Expand description
§katu_core::tool
§职责
定义工具系统的数据类型与执行契约。
§设计原则
- Provider 无关 — 参数使用 JSON Schema(
serde_json::Value),适配所有 LLM provider - Serde 友好 — 数据类型可序列化/反序列化
- 最小 trait —
Tooltrait 只含必要方法,扩展能力留给上层
§对外接口
ToolDefinition— 发送给 LLM 的工具 schema(name + description + parameters JSON Schema)ToolOutput— 工具执行结果(content + metadata + is_error)ToolChoice— 工具选择策略(auto / none / required / specific)Tool— 工具执行 trait(definition + validate + execute + concurrency_mode)ToolCallContext— 执行上下文(call_id + cancellation + extra)CancellationToken— 取消令牌(re-exporttokio_util::sync::CancellationToken)ConcurrencyMode— 并发调度标记
§调用者
katu-llm—LlmRequest持有Vec<ToolDefinition>+ToolChoicekatu-agent(future) — Agent loop 通过Tooltrait 调用工具katu-core::event—StreamEvent::ToolResult可从ToolOutput构造
Structs§
- Cancellation
Token - 取消令牌 — re-export
tokio_util::sync::CancellationToken。 - Tool
Call Context - 工具执行上下文 — Agent loop 构造后传入
Tool::execute。 - Tool
Definition - 工具定义 — 发送给 LLM 的 schema。
- Tool
Output - 工具执行结果 — 返回给 agent loop 的输出。
Enums§
- Concurrency
Mode - 工具并发模式 — Agent loop 调度同批次 tool_call 时的行为。
- Tool
Choice - 工具选择策略 — 控制 LLM 是否以及如何使用工具。
Traits§
- Tool
- 工具执行 trait — 所有可被 Agent 调用的工具必须实现此 trait。