工具搜尋是 OpenClaw PI agent 的實驗性功能。它提供 PI agents 一種 精簡的方式來探索並呼叫大型工具目錄。當執行時有許多可用工具,但模型 可能只需要其中少數幾個時,這會很有用。 本頁記錄 OpenClaw PI 工具搜尋。這不是 Codex 原生的工具 搜尋或 dynamic-tools 介面。Codex 原生程式碼模式、工具搜尋、延遲 動態工具以及巢狀工具呼叫都是穩定的 Codex harness 介面,並且 不依賴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 啟用後,模型預設會收到一個 tool_search_code 工具。
該工具會在隔離的 Node 子程序中執行一小段 JavaScript 主體,並提供
openclaw.tools bridge:
一個 turn 如何執行
在規劃時,PI embedded runner 會為該次執行建立有效目錄:- 解析 agent、profile、sandbox 和 session 的啟用中工具政策。
- 列出符合資格的 OpenClaw 和 plugin 工具。
- 透過 session MCP runtime 列出符合資格的 MCP 工具。
- 加入目前執行所提供的符合資格 client 工具。
- 為搜尋索引精簡描述子。
- 向模型公開 PI 程式碼 bridge 或結構化 fallback 工具。
openclaw.tools.call(...) 會跨過 bridge 回到 Gateway,在那裡
仍會套用一般的政策、approval、hook、logging 和結果處理。
模式
tools.toolSearch 有兩種面向模型的模式:
code:公開tool_search_code,預設的精簡 JavaScript bridge。tools:將tool_search、tool_describe和tool_call作為一般 結構化工具公開給不應接收程式碼的 providers。
code 模式會在目錄 Compaction 前 fallback 到 tools。
兩種模式都是實驗性的。對於小型 PI 工具目錄,請優先使用直接工具公開;
對於 Codex harness 執行,請優先使用 Codex 原生穩定介面。
沒有獨立的來源選取設定。啟用工具搜尋時,目錄會在一般政策
篩選後包含符合資格的 OpenClaw、MCP 和 client 工具。
為什麼需要這個
大型目錄很有用,但成本高。將每個工具 schema 都傳送給模型 會讓請求變大、拖慢規劃,並增加意外選取工具的機率。 工具搜尋會改變形狀:- 直接工具:模型在第一個 token 前會看到每個選取的 schema
- 工具搜尋程式碼模式:模型會看到一個精簡程式碼工具和一段簡短 API 合約
- 工具搜尋工具模式:模型會看到三個精簡的結構化 fallback 工具
- turn 期間:模型只載入它實際需要的工具 schema
API
openclaw.tools.search(query, options?)
搜尋目前執行的有效目錄。結果是精簡且安全的,
可放回 prompt context。
openclaw.tools.describe(id)
載入一個搜尋結果的完整 metadata,包括精確的輸入 schema。
openclaw.tools.call(id, args)
透過 OpenClaw 呼叫選取的工具。
tool_searchtool_describetool_call
Runtime 邊界
程式碼 bridge 會在短生命週期的 Node 子程序中執行。子程序啟動時 會啟用 Node permission mode、使用空環境、沒有 filesystem 或 network grants,也沒有 child-process 或 worker grants。OpenClaw 會強制執行 parent-process wall-clock timeout,並在 timeout 時終止子程序,包括 async continuations 之後。 runtime 只公開:console.log、console.warn和console.erroropenclaw.tools.searchopenclaw.tools.describeopenclaw.tools.call
- 工具 allow 和 deny policies
- 每個 agent 和每個 sandbox 的工具限制
- owner-only gating
- approval hooks
- plugin
before_tool_callhooks - session identity、logs 和 telemetry
設定
使用預設程式碼 bridge 為 PI 執行啟用工具搜尋:Prompt 和 telemetry
工具搜尋會記錄足夠的 telemetry,以便與直接工具公開比較:- 傳送到 harness 的總 serialized tool 和 prompt bytes
- 目錄大小和來源 breakdown
- search、describe 和 call 次數
- 透過 OpenClaw 執行的最終工具呼叫
- 選取的工具 ids 和來源
- 模型一開始看到了多少工具 schema
- 它執行了多少次 search 和 describe 操作
- 呼叫了哪個最終工具
- 結果是否來自 OpenClaw、MCP 或 client 工具
E2E 驗證
gateway E2E runner 會使用 PI harness 證明兩條路徑:- 直接模式可以呼叫假的 plugin 工具。
- 工具搜尋可以呼叫相同的假 plugin 工具。
- 直接模式會將假的 plugin 工具 schema 直接公開給 provider。
- 工具搜尋只公開精簡 bridge。
- 對於大型假目錄,工具搜尋 request payload 較小。
- Session logs 會顯示預期的 tool-call counts 和 bridged call telemetry。
失敗行為
工具搜尋應該 fail closed:- 如果工具不在有效政策中,search 不應傳回它
- 如果選取的工具變得無法使用,
tool_call應該失敗 - 如果 policy 或 approval 阻擋執行,呼叫結果應回報該 block,而不是繞過它
- 如果程式碼 bridge 無法建立隔離 runtime,請使用
mode: "tools"或 對該 deployment 停用工具搜尋