Code Mode は、モデルが操作ごとに個別リクエストする代わりにコードを書く、ツール利用のパターンです。モデルはコード実行ツールを 1 つ受け取ります。そのコードがコンパクトな計画になり、ツールを呼び出し、結果を処理し、応答に必要な情報を返します。
Code Mode は、設定したツールを型付きメソッドとして公開します。モデルは、使い慣れたプログラミングの構文で複数ステップの作業を表現します。統合方法によっては、ツール定義を最初から渡すことも、必要なときに発見することもできます。
直接のツール利用では、モデルはツールを 1 つ選び、結果を受け取り、次に何をするかを決めます。操作のたびにモデルへの往復が必要になることがあります。
Code Mode では、その中間ロジックを実行可能なコードへ移します。1 つの計画で次のことができます。
- 依存関係のある複数のツール呼び出しを組み合わせる。
- 結果の集合をループする。
- 返ってきたデータをフィルタし、変換する。
- 先の結果に基づいて分岐する。
- 最終的な戻り値の形を整える。
この方法では、制御フローとデータ処理がまとまります。モデルが答えを出す前に複数の操作を調整する必要があるときに役立ちます。
ツールカタログが大きいと、定義をすべて先に読み込むとモデルのコンテキストを大きく消費します。コネクタベースの Code Mode ランタイムは、codemode.search() と codemode.describe() による段階的な発見に対応しています。
検索では関連するコネクタ、メソッド、保存済みスニペットが見つかります。Describe は、選んだ対象の詳細な型情報を返します。これらの結果は実行中のコードに入るので、モデルは毎回カタログ全体を受け取るのではなく、必要な定義だけを取り込めます。
直接のツール呼び出しでは、各結果がモデルに戻り、次の操作を選びます。最終回答に必要なのが一部だけでも、中間データがコンテキストを消費します。
Code Mode では、その作業を 1 回のサンドボックス実行の中に留めます。生成されたコードはツール間で結果を渡し、中間データをフィルタし、モデルが必要な最終値だけを返せます。複数ツールのタスクが効率的になり、一般化や繰り返しもしやすくなります。
ツールセットが小さく固定されている単純なタスクには、直接のツール呼び出しを使います。組み合わせ、依存する呼び出し、段階的な発見、再利用可能なロジック、制御フローが必要なタスクには Code Mode を使います。
| パターン | 向いている用途 |
|---|---|
| 直接のツール呼び出し | 小さく既知のツールセットを使う単純なタスク |
| Code Mode | 組み合わせや依存する呼び出し、大きなツールカタログ、ループ、分岐、フィルタ、結果の整形、再利用可能なロジック |
Code Mode は、エージェントランタイム、AI フレームワーク、ブラウザー、Model Context Protocol (MCP) 向けの面を提供します。