Tool Searchは、OpenClaw PIエージェントの実験的機能です。PIエージェントが大規模なツールカタログを検出して呼び出すための、コンパクトな方法を1つ提供します。実行時に利用可能なツールが多数ある一方で、モデルが必要とする可能性が高いのはそのうちの少数だけである場合に有用です。 このページでは、OpenClaw PI Tool Searchについて説明します。これはCodexネイティブのツール検索や動的ツールサーフェスではありません。Codexネイティブのコードモード、ツール検索、遅延動的ツール、ネストされたツール呼び出しは、安定したCodexハーネスサーフェスであり、Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
tools.toolSearchには依存しません。
PIで有効にすると、モデルはデフォルトで1つのtool_search_codeツールを受け取ります。このツールは、分離されたNodeサブプロセス内で短いJavaScript本文を実行し、openclaw.toolsブリッジを使用します。
ターンの実行方法
計画時に、PI組み込みランナーは実行の有効カタログを構築します。- エージェント、プロファイル、サンドボックス、セッションのアクティブなツールポリシーを解決します。
- 対象となるOpenClawツールとPluginツールを列挙します。
- セッションMCPランタイムを通じて対象となるMCPツールを列挙します。
- 現在の実行に提供された対象クライアントツールを追加します。
- 検索用にコンパクトな記述子のインデックスを作成します。
- PIコードブリッジまたは構造化フォールバックツールのいずれかをモデルに公開します。
openclaw.tools.call(...)はブリッジを越えてGatewayに戻り、そこでは通常のポリシー、承認、フック、ロギング、結果処理が引き続き適用されます。
モード
tools.toolSearchには、モデル向けに2つのモードがあります。
code: デフォルトのコンパクトなJavaScriptブリッジであるtool_search_codeを公開します。tools: コードを受け取るべきではないプロバイダー向けに、tool_search、tool_describe、tool_callを通常の構造化ツールとして公開します。
codeモードはカタログのCompaction前にtoolsへフォールバックします。
どちらのモードも実験的です。小規模なPIツールカタログには直接ツール公開を優先し、Codexハーネス実行にはCodexネイティブの安定したサーフェスを優先してください。
個別のソース選択設定はありません。Tool Searchが有効な場合、カタログには通常のポリシーフィルタリング後に対象となるOpenClaw、MCP、クライアントツールが含まれます。
これが存在する理由
大規模なカタログは有用ですがコストが高くなります。すべてのツールスキーマをモデルに送信すると、リクエストが大きくなり、計画が遅くなり、意図しないツール選択が増えます。 Tool Searchは形を変えます。- 直接ツール: モデルは最初のトークンの前に、選択されたすべてのスキーマを見ます
- Tool Searchコードモード: モデルは1つのコンパクトなコードツールと短いAPI契約を見ます
- Tool Searchツールモード: モデルは3つのコンパクトな構造化フォールバックツールを見ます
- ターン中: モデルは実際に必要なツールスキーマだけを読み込みます
API
openclaw.tools.search(query, options?)
現在の実行の有効カタログを検索します。結果はコンパクトで、プロンプトコンテキストに戻しても安全です。
openclaw.tools.describe(id)
正確な入力スキーマを含む、1つの検索結果の完全なメタデータを読み込みます。
openclaw.tools.call(id, args)
選択したツールをOpenClaw経由で呼び出します。
tool_searchtool_describetool_call
ランタイム境界
コードブリッジは、短命のNodeサブプロセス内で実行されます。サブプロセスは、Node権限モードが有効、空の環境、ファイルシステムまたはネットワーク権限なし、子プロセスまたはワーカー権限なしで開始されます。OpenClawは親プロセスの壁時計タイムアウトを強制し、非同期継続後も含めて、タイムアウト時にサブプロセスを終了します。 ランタイムが公開するのは次のみです。console.log、console.warn、console.erroropenclaw.tools.searchopenclaw.tools.describeopenclaw.tools.call
- ツールの許可および拒否ポリシー
- エージェント単位およびサンドボックス単位のツール制限
- 所有者限定ゲーティング
- 承認フック
- Pluginの
before_tool_callフック - セッションID、ログ、テレメトリ
設定
PI実行でデフォルトのコードブリッジを使用してTool Searchを有効にします。プロンプトとテレメトリ
Tool Searchは、直接ツール公開と比較するために十分なテレメトリを記録します。- ハーネスに送信されたシリアライズ済みツールとプロンプトの合計バイト数
- カタログサイズとソース別内訳
- 検索、記述、呼び出しの回数
- OpenClaw経由で実行された最終ツール呼び出し
- 選択されたツールIDとソース
- モデルが最初に見たツールスキーマ数
- 実行した検索および記述操作の回数
- 呼び出された最終ツール
- 結果がOpenClaw、MCP、クライアントツールのどれから来たか
E2E検証
Gateway E2Eランナーは、PIハーネスで両方のパスを証明します。- 直接モードは偽Pluginツールを呼び出せる。
- Tool Searchは同じ偽Pluginツールを呼び出せる。
- 直接モードは偽Pluginツールスキーマをプロバイダーに直接公開する。
- Tool Searchはコンパクトなブリッジだけを公開する。
- 大規模な偽カタログでは、Tool Searchのリクエストペイロードのほうが小さい。
- セッションログには、期待されるツール呼び出し回数とブリッジされた呼び出しのテレメトリが表示される。
失敗時の動作
Tool Searchはクローズドに失敗する必要があります。- ツールが有効ポリシー内にない場合、検索はそれを返すべきではありません
- 選択したツールが利用できなくなった場合、
tool_callは失敗するべきです - ポリシーまたは承認が実行をブロックする場合、呼び出し結果はそれをバイパスするのではなく、そのブロックを報告するべきです
- コードブリッジが分離ランタイムを作成できない場合は、そのデプロイでは
mode: "tools"を使用するか、Tool Searchを無効にしてください