动态工具
哪些 OpenClaw 动态工具会到达 Codex 回合,以及它们如何加载。本文是 Codex harness 参考 的一部分;各章节迁移位置 列出了所有章节。
动态工具¶
Codex 动态工具默认使用 searchable 加载方式,在 openclaw 命名空间下暴露,并设置 deferLoading: true。OpenClaw 通常不会暴露与 Codex 原生工作区操作或 Codex 自身工具搜索界面重复的动态工具:
readwriteeditapply_patchexecprocesstool_calltool_describetool_search
progress_card 不会与这些原生工作区工具一起被过滤。它仍可通过 OpenClaw 动态工具桥接作为持久的会话状态界面使用。
当有限的运行时允许列表禁用原生 Code Mode 时,OpenClaw 会发送空的执行环境选择。在这种直接的、无沙箱的情况下,OpenClaw 会保留经过策略过滤的 exec 和 process 工具作为 shell 回退方案。运行时允许列表和 codexDynamicToolsExclude 仍然适用。
大多数剩余的 OpenClaw 集成工具,例如消息、媒体、cron、浏览器、节点、网关、heartbeat_respond 和 web_search,都可通过该命名空间下的 Codex 工具搜索使用。这样可以保持初始模型上下文更小。无论 codexDynamicToolsLoading 如何设置,都有一小组工具保持可直接调用,因为 Codex 工具搜索可能不可用,或只能解析出仅连接器的工具集:agents_list、sessions_spawn 和 sessions_yield。开发者说明仍会引导普通 Codex 子代理在 Codex 原生子代理工作中使用原生 spawn_agent,而 sessions_spawn 仍可用于显式的 OpenClaw 或 ACP 委派。仅消息工具的源回复也保持直接调用,因为这是一种回合控制契约。
Codex Code Mode 将通用的 OpenClaw 动态工具结果投影为文本。在读取字段之前,请先解析 JSON 结果。嵌套的动态调用由 Codex 运行时串行化,因此 Promise.all 不会并发提交它们;在启动收集器子任务时,请使用有界的顺序启动循环。
标记为 catalogMode: "direct-only" 的工具,包括 OpenClaw computer 工具和常规代理的 openclaw 委派,会归入 openclaw_direct。OpenClaw 会将该命名空间添加到 Codex 的 features.code_mode.direct_only_tool_namespaces 列表中,而不会替换操作员提供的条目。因此,Codex 会在普通线程和仅 code-mode 线程中将这些工具暴露为 DirectModelOnly,而不是通过嵌套 Code Mode tools.* 调用路由它们。这样可以保留包含图像的结果,而嵌套 Code Mode 否则会将这些结果扁平化为文本。它还能将委派的人工审批保留在直接模型调用中:已让出的脚本单元格不应让模型在该审批仍在等待时结束其回合。
仅在连接到无法搜索延迟动态工具的自定义 Codex app-server,或调试完整工具负载时,才设置 codexDynamicToolsLoading: "direct"。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw