ローカルツール
Rust プロセスが操作を実行できる場合は、Tool::new(...) を使います。
parameters の値は JSON Schema としてモデルに送信されます。ツールの入力と出力は serde_json::Value です。実行時により強い保証が必要な場合は、信頼できない引数を executor 内で検証してください。
承認が必要なツール
require_approval() を追加すると、実行前に処理を一時停止できます。
run.status == "waiting_for_human" および run.pause.kind == "tool_approval" を返します。
正確な呼び出し ID を指定して再開します。
0.1 API には個別の拒否型はありません。承認していない呼び出しは一時停止したままにするか、再開する前にアプリケーションの拒否ポリシーを適用してください。
外部ツール
別のプロセスが操作を実行する場合は、Tool::external(...) を使います。
external_output になります。各結果を呼び出し ID に対応付けて指定します。
ツールのエラー
ローカル executor が返すAgentError は、構造化されたツールエラーメッセージに変換され、モデルに送信されます。不明なツール名、承認の不足、または出力の不足がある場合、再開時に AgentError が返ります。