Skip to main content
エージェントがアプリケーションのデータを読み取る、内部サービスを呼び出す、または処理を実行する場合にツールを使います。Agent SDKはツールとの境界を検証し、アプリケーション内でツールコードを実行します。

ローカルツールを定義する

defineTool()では、説明、任意のJSONパラメーター、実行時バリデーター、タイムアウト、execute()関数を指定できます。
タイムアウトになると、ランタイムはcontext.signalを中断し、実行を失敗として記録してタイムアウトエラーを再スローします。 スキーマには関数、またはparse()かsafeParse()を公開するオブジェクトを使えます。モデルの引数やツールの結果が無効な場合、ツール境界を越える前にエラーになります。

アプリケーション内で処理を実行する

SDKプロセスではなくアプリケーション側で処理を行う場合は、execute: falseを設定します。toolOutputsに結果を指定して一時停止した実行を再開します。 対話型ツールでは、onToolCalledからnullを返します。実行再開後、onResponseReceivedで渡された応答を検証または変換できます。

進捗を通知する

非同期ジェネレーターは最終結果を返す前に、途中経過を順に返せます。
進捗はtool.preliminary_resultイベントとステップのpreliminaryResultsから取得できます。

独立したツールを並行実行する

1回のモデルターンで複数の独立したツールを安全に呼び出せる場合は、同時実行数を設定します。
ローカルでの実行が重なっても、ランタイムはツール結果メッセージの順序を維持します。

関連ガイド

最終更新日 2026年10月2日