工具搜索是一个实验性的 OpenClaw PI 代理功能。它为 PI 代理提供一种 紧凑的方式来发现并调用大型工具目录。当一次运行中有很多可用工具,但模型 可能只需要其中少数几个时,它非常有用。 本页介绍的是 OpenClaw PI 工具搜索。它不是 Codex 原生的工具 搜索或动态工具表面。Codex 原生代码模式、工具搜索、延迟 动态工具以及嵌套工具调用,都是稳定的 Codex harness 表面, 并不依赖Documentation Index
Fetch the complete documentation index at: https://openclaw.zhcndoc.com/llms.txt
Use this file to discover all available pages before exploring further.
tools.toolSearch。
当为 PI 启用时,模型默认接收一个 tool_search_code 工具。
该工具会在隔离的 Node 子进程中运行一小段 JavaScript 主体,并通过
openclaw.tools 桥接:
一次 turn 如何运行
在规划阶段,PI 内嵌运行器会为本次运行构建有效目录:- 解析代理、配置文件、沙箱和会话的活动工具策略。
- 列出符合条件的 OpenClaw 和插件工具。
- 通过会话 MCP 运行时列出符合条件的 MCP 工具。
- 添加当前运行提供的符合条件的客户端工具。
- 为搜索索引紧凑描述符。
- 向模型暴露 PI 代码桥接或结构化回退工具之一。
openclaw.tools.call(...) 会跨越桥接返回 Gateway,在那里
正常的策略、审批、钩子、日志和结果处理仍然生效。
模式
tools.toolSearch 有两种面向模型的模式:
code:暴露tool_search_code,默认的紧凑 JavaScript 桥接。tools:将tool_search、tool_describe和tool_call作为普通 结构化工具暴露,适用于不应接收代码的提供方。
code 模式会在目录压缩前回退到 tools。
两种模式都是实验性的。对于较小的 PI 工具目录,优先直接暴露工具;
对于 Codex harness 运行,优先使用 Codex 原生的稳定表面。
没有单独的来源选择配置。启用工具搜索后,在正常策略
过滤之后,目录会包含符合条件的 OpenClaw、MCP 和客户端工具。
为什么需要它
大型目录很有用,但代价也高。把每个工具 schema 都发送给模型 会让请求更大、规划更慢,并增加误选工具的可能性。 工具搜索改变了这种形态:- 直接工具:模型在第一个 token 之前看到每个选中的 schema
- 工具搜索代码模式:模型看到一个紧凑的代码工具和一份简短的 API 合同
- 工具搜索工具模式:模型看到三个紧凑的结构化回退 工具
- 在 turn 过程中:模型只加载它实际需要的工具 schema
API
openclaw.tools.search(query, options?)
在当前运行的有效目录中搜索。结果是紧凑的,并且安全
地放回提示上下文。
openclaw.tools.describe(id)
加载一个搜索结果的完整元数据,包括精确的输入 schema。
openclaw.tools.call(id, args)
通过 OpenClaw 调用选中的工具。
tool_searchtool_describetool_call
运行时边界
代码桥接运行在一个短生命周期的 Node 子进程中。该子进程以 启用 Node permission mode 启动,环境为空,没有文件系统或 网络权限,也没有子进程或 worker 权限。OpenClaw 强制执行 父进程的墙钟超时,并在超时时终止子进程,包括 异步续行之后。 运行时只暴露以下内容:console.log、console.warn和console.erroropenclaw.tools.searchopenclaw.tools.describeopenclaw.tools.call
- 工具允许和拒绝策略
- 按代理和按沙箱的工具限制
- 仅所有者门控
- 审批钩子
- 插件
before_tool_call钩子 - 会话身份、日志和遥测
配置
使用默认代码桥接为 PI 运行启用工具搜索:提示词和遥测
工具搜索会记录足够的遥测数据,以便与直接工具暴露进行比较:- 发送给 harness 的已序列化工具和提示词总字节数
- 目录大小和来源分布
- 搜索、描述和调用次数
- 通过 OpenClaw 执行的最终工具调用
- 选中的工具 id 和来源
- 模型一开始看到了多少个工具 schema
- 它执行了多少次搜索和描述操作
- 最终调用了哪个工具
- 结果来自 OpenClaw、MCP 还是客户端工具
端到端验证
Gateway E2E 运行器使用 PI harness 证明两条路径:- 直接模式可以调用假插件工具。
- 工具搜索可以调用相同的假插件工具。
- 直接模式会将假插件工具 schema 直接暴露给 provider。
- 工具搜索只暴露紧凑桥接。
- 对于大型假目录,工具搜索请求负载更小。
- 会话日志显示了预期的工具调用计数和桥接调用遥测。
失败行为
工具搜索应当在关闭状态下失败:- 如果工具不在有效策略中,搜索不应返回它
- 如果选中的工具变为不可用,
tool_call应当失败 - 如果策略或审批阻止执行,调用结果应报告该 阻止,而不是绕过它
- 如果代码桥接无法创建隔离运行时,请使用
mode: "tools"或 为该部署禁用工具搜索