本地工具
如果 Rust 进程可以执行操作,请使用Tool::new(...):
parameters 的值会以 JSON Schema 的形式发送给模型。工具的输入和输出类型为 serde_json::Value。如果需要更严格的运行时保证,请在执行器中验证不可信参数。
需要审批的工具
添加require_approval(),即可在执行操作前暂停:
run.status == "waiting_for_human" 和 run.pause.kind == "tool_approval"。
使用准确的调用 ID 恢复运行:
0.1 API 未提供单独的拒绝类型。对于未获批准的调用,可以保持暂停状态,也可以在恢复之前应用应用自身的拒绝策略。
外部工具
如果由其他进程执行操作,请使用Tool::external(...):
external_output。请按调用 ID 提供每个结果:
工具错误
本地执行器返回的AgentError 会转换为结构化工具错误消息并发送给模型。工具名称未知,或缺少审批或输出时,继续运行会返回 AgentError。