Skip to main content
OpenClaw 官方 codex 插件通过 Codex app-server 运行嵌入式 OpenAI 智能体轮次,而不是使用 OpenClaw 内置 harness。Codex 负责 底层智能体会话:原生线程恢复、原生工具续接、 原生压缩和 app-server 执行。OpenClaw 仍负责聊天 渠道、会话文件、模型选择、OpenClaw 动态工具、审批、 媒体传送以及可见的对话记录镜像。 使用规范的 OpenAI 模型引用,例如 openai/gpt-5.6-sol。不要配置 旧版 Codex GPT 引用;请将 OpenAI 智能体身份验证顺序放在 auth.order.openai 下。 旧版 Codex 身份验证配置文件 ID 和旧版 Codex 身份验证顺序条目由 openclaw doctor --fix 修复。 当提供商/模型运行时策略未设置或为 auto 时,仅凭 openai/* 前缀 绝不会选择此 harness。仅当路由为完全匹配的官方 HTTPS Platform Responses 或 ChatGPT Responses, 且没有人为指定的请求覆盖时,OpenAI 才可能隐式选择 Codex。请参阅 OpenAI 隐式智能体运行时。 如果在确定 Platform 与 ChatGPT 路由之前由 Codex 负责身份验证,OpenClaw 仍要求每个候选路由声明与 Codex 兼容。仅由原生机制负责 身份验证绝不会绕过该路由检查。 未启用 OpenClaw 沙箱时,OpenClaw 启动 Codex app-server 线程时会 启用 Codex 原生代码模式(默认仍关闭仅代码模式),因此 原生工作区/代码能力仍可与通过 app-server item/tool/call 桥接的 OpenClaw 动态工具配合使用。启用 OpenClaw 沙箱或受限工具策略时, 原生代码模式将完全禁用,除非你选择启用实验性沙箱 exec-server 路径。 使用默认的 tools.exec.host: "auto" 且未启用 OpenClaw 沙箱时, Codex 还会获得用于在已配对节点上执行命令的 node_execnode_process 工具。 原生 shell 仍位于 Codex app-server 主机和工作区上 (默认 stdio 部署时位于 Gateway 网关本地);node_exec 按 名称或 ID 选择节点,并继续强制执行 OpenClaw 的节点审批策略。如果有限的 运行时允许列表禁用了原生代码模式,使该轮次没有 执行环境,OpenClaw 会改为继续提供经过策略筛选的 execprocess 工具,用于直接、非沙箱隔离的执行。 此 Codex 原生功能不同于 OpenClaw 代码模式;后者是一种选择启用的 QuickJS-WASI 运行时, 供通用 OpenClaw 运行使用,并采用不同的 exec 输入结构。要了解 更广泛的模型/提供商/运行时划分,请先参阅 Agent Runtimesopenai/gpt-5.6-sol 是模型 引用,codex 是运行时,而 Telegram、Discord、Slack 或其他 渠道则是通信界面。

要求

  • 已安装 OpenClaw 官方 @openclaw/codex 插件。如果你的配置使用允许列表, 请在 plugins.allow 中包含 codex
  • 0.143.00.145.0 的稳定 Codex app-server。该插件默认管理兼容的 二进制文件,因此 PATH 上的 codex 命令不会影响正常 启动。
  • 通过 openclaw models auth login --provider openai 进行 Codex 身份验证、使用 智能体 Codex 主目录中已有的 app-server 账户,或使用 显式的 Codex API 密钥身份验证配置文件。
有关身份验证优先级、环境隔离、自定义 app-server 命令、 模型发现和完整配置字段列表,请参阅 Codex harness reference

快速开始

安装官方插件,然后使用 Codex OAuth 登录:
启用 codex 插件并选择 OpenAI 智能体模型:
如果你的配置使用 plugins.allow,也请在其中添加 codex
更改插件配置后重启 Gateway 网关。如果聊天已有 会话,请先运行 /new/reset,使下一轮根据 当前配置解析 harness。

与 Codex Desktop 和 CLI 共享线程

默认的 appServer.homeScope: "agent" 会将每个 OpenClaw 智能体与 操作员的原生 Codex 状态隔离。要让所有者检查和管理 Codex Desktop 与 Codex CLI 中显示的相同原生线程,请选择使用 用户 Codex 主目录:
用户主目录模式支持本地托管的 stdio 进程或共享 Unix 套接字 传输。设置 $CODEX_HOME 时使用该值,否则使用 ~/.codex,包括 该主目录中的原生 Codex 身份验证、配置、插件和线程存储。OpenClaw 不会 向此 app-server 注入 OpenClaw 身份验证配置文件。 所有者轮次会获得 codex_threads 工具:列出、搜索、读取、复刻、重命名、 归档和恢复原生线程。复刻线程后可在 OpenClaw 中继续使用;复刻线程会关联到当前 OpenClaw 会话,并且 对其他原生 Codex 客户端保持可见。归档前必须明确 确认该线程已在其他位置关闭。如果还启用了监督, 对话记录字段和变更操作需要选择启用相应的 supervision.allowRawTranscriptssupervision.allowWriteControls 不要通过相互独立的托管 stdio App Server 并发恢复或写入同一线程。 Codex 会协调同一 App Server 内的活动写入者,但不会协调 不同进程之间的写入者。对于普通用户主目录 stdio 会话, 复刻是安全的共存方式。 仅设置 appServer.homeScope: "user" 不会控制资源目录。插件处于活动状态时, 原生会话发现功能会启用;设置 sessionCatalog.enabled: false 可将其从 OpenClaw 侧边栏中移除,而不 禁用 Codex。资源目录使用单独的监督连接;如果没有 显式的 appServer 连接设置,该连接默认使用托管的 用户主目录 stdio,而普通 harness 仍为智能体作用域。两个路径都会遵循 显式的 appServer 设置。如果普通 harness 也应共享原生状态, 请按上例显式设置 homeScope: "user"

监督 Codex 会话

同一个 codex 插件可以列出 Gateway 网关计算机和已选择启用的 配对节点上未归档的 Codex 会话。已存储或空闲的 Gateway 网关本地会话可以 创建锁定模型的聊天,用于镜像其有限范围内持久化的用户和助手 历史记录。其私有绑定通过监督连接获取原生 快照、规范分支及后续轮次,而普通 Codex 会话仍保持 智能体作用域。首次规范启动会严格使用 Codex 为 快照复刻返回的模型和提供商。后续恢复由 Codex 的 原生配置决定选择;外层 OpenClaw 模型和回退链绝不会 替换它。明确确认没有其他运行程序后,可以归档已存储和空闲的条目。 活动源不能创建分支或被归档;但仍可打开已有的 受监督聊天。配对节点会话仍仅提供元数据。 有关设置、分支规则、配对节点限制、元数据公开和故障排除,请参阅 监督 Codex 会话

配置

对于订阅优先、API 密钥备用的顺序,首选 auth.order.openai。 现有旧版 Codex 身份验证配置文件 ID 和旧版 Codex 身份验证顺序属于 仅供 Doctor 处理的旧版状态;不要写入新的旧版 Codex GPT 引用。
对于有效且与 Codex 兼容的路由,上述两个配置文件仍是 同一次 Codex 运行的候选项。配置文件顺序选择凭据,而非运行时。 更改身份验证顺序不会使自定义、Completions、HTTP 或 存在请求覆盖的路由变为与 Codex 兼容。

压缩

不要在 Codex 支持的 智能体上设置 compaction.modelcompaction.provider。Codex 通过其原生 app-server 线程状态执行压缩,因此 OpenClaw 在运行时会忽略这些本地摘要器覆盖,并且当智能体使用 Codex 时, openclaw doctor --fix 会移除这些覆盖。 Lossless 仍可作为上下文引擎,用于 Codex 轮次周边的组装、摄取和 维护;应通过 plugins.slots.contextEngine: "lossless-claw"plugins.entries.lossless-claw.config.summaryModel 配置,而不是通过 agents.defaults.compaction.provider 配置。当 Codex 是活动运行时时,openclaw doctor --fix 会将 旧的 compaction.provider: "lossless-claw" 结构迁移到 Lossless 上下文引擎槽位,但原生 Codex 仍负责压缩。原生 app-server harness 支持 需要在提示词之前进行组装的上下文引擎;包括 codex-cli 在内的 通用 CLI 后端不提供这种宿主能力。 对于 Codex 支持的智能体,/compact 会在已绑定线程上启动 原生 Codex app-server 压缩,并等待其终止结果。共享的 agents.defaults.compaction.timeoutSeconds 预算适用;超时时, OpenClaw 会要求 Codex 中断原生轮次,并保持每线程隔离锁, 直到确认终止。它绝不会回退到上下文引擎或 公共 OpenAI 摘要器。如果原生 Codex 线程绑定缺失或 已失效,该命令会以失败方式关闭,而不会悄然切换压缩 后端。

直接 API 长上下文

Codex 订阅与直接 OpenAI API 流量属于不同的合约。实时 ChatGPT/Codex 目录通常提供 272000 token 的模型窗口, 而 OpenAI 文档中 GPT-5.5 和 GPT-5.6 的 Platform API 窗口为 1050000 token,最大输出为 128000。 预留全部输出额度后,推导出的输入预算为 922000 token。输入 token 超过 272000 的请求采用 OpenAI 更高的长上下文定价。 从与已安装 Codex 版本兼容的完整 Codex 模型目录开始。对于每个应使用长上下文的 直接 GPT-5.5 或 GPT-5.6 条目,保留描述符的其余部分并设置:
Codex 会对目录值 922000 应用其正常的 95% 有效窗口预留, 因此报告约 875900 个可用 token。在 700000 时执行压缩, 会在该有效保护阈值前留下 175900 个 token,并在提供商安全输入额度前留下 222000 个 token。 这一较大余量是有意为之:Codex 会在添加下一条用户消息和上下文 更新之前检查已记录的上下文,因此该阈值必须既能容纳一个较大的传入轮次, 也能容纳工具、指令、序列化以及压缩轮次本身。 对于独立使用 Codex CLI 或 Desktop 的场景,命令身份验证自定义提供商可以 从系统钥匙串或密钥管理器读取 API key,同时保留正常的 ChatGPT 登录以供连接器使用:
身份验证辅助程序必须仅将密钥输出到 stdout。不要将其写入 TOML。 对于 OpenClaw Codex app-server harness,保留默认的 Agent 范围 Codex 主目录,并让 OpenClaw 注入一个 openai API-key 配置文件。将目录和 上下文限制作为原生 Codex app-server 参数传递:
如有需要,将 openai:api-key 替换为实际的 API-key 配置文件 ID。该 Agent 范围的 app-server 仅接收已准备好的密钥;操作员的原生 ~/.codex ChatGPT 登录、插件、连接器和线程存储均保持不变。 Codex app-server 0.144.6 不会在 app-server 轮次中附加命令身份验证自定义 提供商的 bearer,因此此路由应使用上述注入 API-key 的路径, 而不是 homeScope: "user" 更改目录或 app-server 参数后,重启 Gateway 网关并 开始新的聊天。现有原生线程会保留其记录的提供商 和模型设置。使用 /status/codex status 验证运行时,然后 在开始长会话前发送一个无害的直接 API 轮次。
长上下文被有意设为选择启用。当输入超过 272000 token 后,OpenAI 会按 2× 输入费率和 1.5× 输出费率对整个请求计费。API 对访问权限、实际限制和计费 拥有最终决定权。请参阅 OpenAI 模型限制API 定价
本页其余部分介绍部署形态、故障关闭路由、guardian 审批策略、Native Codex plugins 和计算机使用。有关完整的选项 列表、默认值、枚举、设备发现、环境隔离、超时以及 app-server 传输字段,请参阅 Codex harness reference

验证 Codex 运行时

在预期使用 Codex 的聊天中使用 /status。由 Codex 支持的 OpenAI 智能体轮次会显示:
然后检查 Codex app-server 状态:
/codex binding 会报告已附加的原生线程和当前模型设置。 /codex status 会报告 app-server 连接状态、账户、速率限制、MCP 服务器和 Skills。/codex models 会列出 harness 和账户的实时 Codex app-server 目录。 如果 /status 的结果出乎意料,请参阅 故障排查

路由和模型选择

将提供商引用与运行时策略分开:
  • 使用 openai/gpt-* 进行规范的 OpenAI 模型选择。仅凭前缀 绝不会选择 Codex。
  • 当运行时未设置或为 auto 时,只有未包含人为编写的请求覆盖项的精确官方 HTTPS Platform Responses 或 ChatGPT Responses 路由,才可以隐式选择 Codex。
  • 不要在配置中使用旧版 Codex GPT 引用;运行 openclaw doctor --fix 以修复旧版引用和过时的会话路由固定设置。
  • agentRuntime.id: "codex" 会让 Codex 成为兼容路由的故障关闭要求。 它不会让不兼容的有效路由变得兼容。
  • agentRuntime.id: "openclaw" 会在有意如此配置时,让提供商或模型选择使用嵌入式 OpenClaw 运行时。
  • /codex ... 用于从聊天中控制原生 Codex app-server 会话。
  • ACP/acpx 是独立的外部 harness 路径。仅当用户 要求 ACP/acpx 或外部 harness 适配器时才使用它。
agents.defaults.imageModel 遵循相同的前缀划分。对正常 OpenAI 路由使用 openai/gpt-*, 仅当图像理解应通过有边界的 Codex app-server 轮次运行时,才使用 codex/gpt-*。 Doctor 会将旧版 Codex GPT 引用重写为 openai/gpt-*

部署模式

基础 Codex 部署

对于其有效官方 HTTPS 路由符合隐式选择 Codex 条件的 OpenAI 模型, 使用快速开始配置:

混合提供商部署

将 Claude 保留为默认智能体,并添加一个命名的 Codex 智能体:
main 智能体使用其正常提供商路径。当其有效 OpenAI 路由保持兼容时, codex 智能体使用 Codex app-server;如果这应作为故障关闭要求, 请添加显式的模型范围 agentRuntime.id: "codex"

故障关闭 Codex 部署

当内置插件可用时,符合条件的精确官方 HTTPS OpenAI 路由可以解析为 Codex。 为明确定义的故障关闭规则添加显式运行时策略:
强制使用 Codex 后,如果有效路由未声明为兼容 Codex、插件已禁用、app-server 版本过旧或 app-server 无法启动,OpenClaw 会提前失败。

App-server 策略

默认情况下,该插件通过 stdio 传输在本地启动由 OpenClaw 管理的 Codex 二进制文件。仅当有意运行其他可执行文件时,才设置 appServer.command。Codex 将 WebSocket 传输归类为实验性且不受支持;仅将其用于针对已在其他位置运行的 app-server 进行非生产测试:
本地 stdio app-server 会话默认采用受信任的本地操作员安全姿态:approvalPolicy: "never"approvalsReviewer: "user"sandbox: "danger-full-access"。如果本地 Codex 要求不允许这种隐式 YOLO 安全姿态,OpenClaw 会改为选择允许的 Guardian 权限。当会话启用了 OpenClaw 沙箱时,OpenClaw 会在该轮次禁用 Codex 原生代码模式、用户 MCP 服务器和由应用支持的插件执行,而不是依赖 Codex 主机端沙箱隔离。正常的 exec/process 工具可用时,Shell 访问会改为通过由 OpenClaw 沙箱支持的动态工具(例如 sandbox_execsandbox_process)进行。 在进行沙箱逃逸或授予额外权限之前,使用 OpenClaw 的规范化 Exec 模式执行 Codex 原生自动审查:
对于 Codex app-server 会话,tools.exec.mode: "auto" 会映射到经过 Codex Guardian 审查的审批:当本地要求允许这些值时,通常为 approvalPolicy: "on-request"approvalsReviewer: "auto_review"sandbox: "workspace-write"。在 tools.exec.mode: "auto" 中,OpenClaw 不会保留旧版不安全的 Codex approvalPolicy: "never"sandbox: "danger-full-access" 覆盖;如需有意采用无需审批的 Codex 安全姿态,请使用 tools.exec.mode: "full"。旧版 plugins.entries.codex.config.appServer.mode: "guardian" 预设仍然有效,但 tools.exec.mode: "auto" 是 OpenClaw 的规范化接口。 有关模式级别与主机 Exec 审批及 ACPX 权限的比较,请参阅权限模式。有关每个 app-server 字段、身份验证顺序、环境隔离和超时行为,请参阅 Codex harness reference

命令和诊断

codex 插件会在任何支持 OpenClaw 文本命令的渠道中将 /codex 注册为斜杠命令。 原生执行和控制需要所有者或 operator.admin Gateway 网关客户端:绑定或恢复线程、发送或停止轮次、更改模型、快速模式或权限状态、执行压缩或审查,以及解除绑定。其他已授权发送者只能使用只读的状态、帮助、账户、模型、线程、原生目标、MCP 服务器、技能和绑定检查命令。 常见形式:
  • /codex status 检查 app-server 连接、模型、账户、速率限制、MCP 服务器和技能。
  • /codex models 列出实时 Codex app-server 模型。
  • /codex threads [filter] 列出最近的 Codex app-server 线程。
  • /codex goal 读取或更新已附加线程的原生 Codex 目标。Codex 自动延续目标的功能仍处于禁用状态;OpenClaw 尚不负责自主执行后续轮次。
  • /codex resume <thread-id> 将当前 OpenClaw 会话附加到现有 Codex 线程。
  • /codex bind [thread-id] [--cwd <path>] [--model <model>] [--provider <provider>] 附加当前聊天。
  • /codex detach(或 /codex unbind)解除当前绑定。
  • /codex binding 描述当前绑定。
  • /codex stop 停止活动轮次;/codex steer <text> 对其进行引导。
  • /codex model <model>/codex fast [on|off|status]/codex permissions [default|yolo|status] 更改每个对话的状态。
  • /codex compact 请求 Codex app-server 压缩已附加的线程。
  • /codex review 为已附加的线程启动 Codex 原生审查。
  • /codex diagnostics [note] 在为已附加的线程发送 Codex 反馈前请求确认。
  • /codex account 显示账户和速率限制状态。
  • /codex mcp 列出 Codex app-server MCP 服务器状态。
  • /codex skills 列出 Codex app-server 技能。
  • /codex plugins list/codex plugins enable <name>/codex plugins disable <name> 管理已配置的原生 Codex 插件。
  • /codex computer-use [status|install] 管理 Codex Computer Use。
  • /codex help 列出完整的命令树。
对于大多数支持请求,请先在出现错误的对话中运行 /diagnostics [note]。它会创建一份 Gateway 网关诊断报告,并且对于 Codex harness 会话,还会请求批准发送相关的 Codex 反馈包。有关隐私模型和群聊行为,请参阅诊断导出。仅当你明确希望为当前附加的线程上传 Codex 反馈,而不需要完整的 Gateway 网关诊断包时,才使用 /codex diagnostics [note]

在本地检查 Codex 线程

检查异常 Codex 运行的最快方法通常是直接打开原生 Codex 线程:
从已完成的 /diagnostics 回复、/codex binding/codex threads [filter] 中获取线程 ID。 有关上传机制和运行时级别的诊断边界,请参阅 Codex harness runtime

身份验证顺序

在默认的每 Agent 主目录中,按以下顺序选择身份验证:
  1. Agent 的有序 OpenAI 身份验证配置文件,最好位于 auth.order.openai 下。运行 openclaw doctor --fix 可迁移较旧的旧版 Codex 身份验证配置文件 ID 和旧版 Codex 身份验证顺序。
  2. 该 Agent 的 Codex 主目录中 app-server 的现有账户。
  3. 仅对于本地 stdio app-server 启动,当不存在 app-server 账户且仍需要 OpenAI 身份验证时,依次使用 CODEX_API_KEYOPENAI_API_KEY
当 OpenClaw 检测到 ChatGPT 订阅类型的 Codex 身份验证配置文件时,会从生成的 Codex 子进程中移除 CODEX_API_KEYOPENAI_API_KEY。这样可以让 Gateway 网关级 API 密钥继续用于嵌入或直接 OpenAI 模型,同时避免原生 Codex app-server 轮次意外通过 API 计费。显式 Codex API 密钥配置文件和本地 stdio 环境密钥回退使用 app-server 登录,而不是继承的子进程环境。WebSocket app-server 连接不会获得 Gateway 网关环境 API 密钥回退;请使用显式身份验证配置文件或远程 app-server 自身的账户。 如果订阅配置文件达到 Codex 用量限制,OpenClaw 会在 Codex 报告重置时间时记录该时间,并为同一次 Codex 运行尝试下一个有序身份验证配置文件。重置时间过后,该订阅配置文件会再次变为可用,无需更改已选择的 openai/gpt-* 模型或 Codex 运行时。 配置原生 Codex 插件后,OpenClaw 会先通过已连接的 app-server 安装或刷新这些插件,然后再向 Codex 线程公开插件所属的应用。app/list 仍是应用 ID、可访问性和元数据的事实来源,但 OpenClaw 负责决定每个线程是否启用:如果策略允许某个已列出且可访问的应用,即使 app/list 当前报告该应用已禁用,OpenClaw 也会发送 thread/start.config.apps[appId].enabled = true。此路径不会为未知 ID 凭空创建应用安装;OpenClaw 仅激活带有 plugin/install 的市场插件,然后刷新清单。

环境隔离

对于本地 stdio app-server 启动,OpenClaw 会将 CODEX_HOME 设置为每 Agent 目录,因此 Codex 配置、身份验证/账户文件、插件缓存/数据和原生线程状态默认不会读取或写入操作员个人的 ~/.codex。OpenClaw 会保留正常的进程 HOME;Codex 运行的子进程仍可找到用户主目录中的配置和令牌,Codex 也可能发现共享的 $HOME/.agents/skills$HOME/.agents/plugins/marketplace.json 条目。使用 appServer.homeScope: "user" 时,OpenClaw 会改用原生用户 Codex 主目录及其中的现有账户,而不注入 OpenClaw 身份验证配置文件。 如果部署需要额外的环境隔离,请将这些变量添加到 appServer.clearEnv
appServer.clearEnv 仅影响生成的 Codex app-server 子进程。在本地启动规范化期间,OpenClaw 会从此列表中移除 CODEX_HOMEHOMECODEX_HOME 仍指向所选的 Agent 或用户作用域,HOME 仍会被继承,使子进程可以使用正常的用户主目录状态。

动态工具和 Web 搜索

Codex 动态工具默认采用 searchable 加载方式。OpenClaw 通常不会公开与 Codex 原生工作区操作重复的动态工具:readwriteeditapply_patchexecprocessupdate_planget_goalcreate_goalupdate_goaltool_calltool_describetool_searchtool_search_code。目标操作仍由 Codex 原生处理,因此 OpenClaw 不会将第二套目标存储投射到 Codex 轮次中。其余大多数 OpenClaw 集成工具(例如消息、媒体、定时任务、浏览器、节点、Gateway 网关和 heartbeat_respond)都可通过 openclaw 命名空间下的 Codex 工具搜索使用,从而缩小初始模型上下文。当有限允许列表禁用原生代码模式时,受限轮次的 Shell 回退是 execprocess 的例外;运行时允许列表和 codexDynamicToolsExclude 仍然适用。 标记为 catalogMode: "direct-only" 的工具(包括 OpenClaw computer 工具)改用 openclaw_direct 命名空间。Codex 将该命名空间视为 DirectModelOnly,因此这些工具在普通线程和仅代码模式线程中仍直接对模型可见,而无需跨越嵌套的代码模式 tools.* 调用。 启用搜索且未选择托管提供商时,Web 搜索默认使用 Codex 托管的 web_search 工具。原生托管搜索与 OpenClaw 托管的 web_search 动态工具互斥,因此托管搜索无法绕过原生域名限制。当托管搜索不可用、被明确禁用或由所选托管提供商替代时,OpenClaw 会使用托管工具。OpenClaw 会保持禁用 Codex 独立的 web.run 扩展,因为生产 app-server 流量会拒绝其用户定义的 web 命名空间。tools.web.search.enabled: false 会禁用这两条路径,仅使用 LLM 且禁用工具的运行也会如此。Codex 将 "cached" 视为偏好设置,并在不受限的 app-server 轮次中将其解析为实时外部访问。设置原生 allowedDomains 时,自动托管回退会以失败关闭方式处理,防止绕过允许列表。持久的有效搜索策略变更会在下一轮之前轮换已绑定的 Codex 线程;临时的每轮限制会使用临时受限线程,并保留现有绑定以供之后恢复。 sessions_yieldsessions_spawn 和仅限消息工具的源回复保持 直接调用,因为它们是轮次控制或委派契约。相关指导仍优先推荐将 Codex 原生的 spawn_agent 作为主要的 Codex 子智能体接口,而显式的 OpenClaw 或 ACP 委派仍可通过 sessions_spawn 直接调用。在 Codex 代码模式下,通用 OpenClaw 动态工具的结果是 JSON 文本而非 JavaScript 对象,因此在读取字段前应解析 看起来像 JSON 的结果。Codex 还会串行执行嵌套的动态调用;请在有界循环中提交多个 sessions_spawn 调用,而不要期望 Promise.all 并发启动它们。已接受的 子智能体在提交后续调用时仍可并行运行。完整模式请参阅 Swarm。 Heartbeat 协作指令会要求 Codex 在结束一次 Heartbeat 轮次前搜索 heartbeat_respond(如果该工具尚未加载)。 仅当连接到无法搜索延迟动态工具的自定义 Codex app-server,或调试完整工具载荷时,才设置 codexDynamicToolsLoading: "direct"

配置字段

支持的顶层 Codex 插件字段: 支持的 appServer 字段: appServer.networkProxy 是显式配置,因为它会更改 Codex 沙箱 契约。启用后,OpenClaw 还会在 Codex 线程配置中设置 features.network_proxy.enableddefault_permissions,以便生成的 权限配置文件可以启动 Codex 托管网络。默认情况下,OpenClaw 会根据配置文件正文生成一个抗冲突的 openclaw-network-<fingerprint> 配置文件 名称;仅当需要稳定的本地名称时才使用 profileName
如果正常的 app-server 运行时为 danger-full-access,启用 networkProxy 后,生成的权限配置文件将使用工作区式文件系统访问: Codex 托管网络强制执行属于沙箱网络,因此完全访问配置文件无法保护出站流量。 域条目使用 allowdeny;Unix 套接字条目使用 Codex 的 allownone 值。

动态工具调用超时

OpenClaw 自有动态工具调用的限制独立于 appServer.requestTimeoutMs:默认情况下,Codex item/tool/call 请求使用 90 秒的 OpenClaw 看门狗。每次调用的正数 timeoutMs 参数可延长或缩短该次特定工具调用的时间预算,上限为 600000 ms。 当工具调用未提供自己的超时时间时,image_generate 工具使用 agents.defaults.mediaModels.image.timeoutMs; 否则使用 120 秒的图像生成默认值。媒体理解 image 工具 使用所选支持图像的 tools.media.models[] 条目的 timeoutSeconds,或其 60 秒媒体默认值; 对于图像理解,该超时适用于请求本身,不会因之前的准备工作而缩短。 发生超时时,OpenClaw 会在支持的情况下中止工具 信号,并向 Codex 返回失败的动态工具响应, 使该轮次能够继续,而不是让会话停留在 processing 状态。 此看门狗是外层动态 item/tool/call 时间预算;提供商特定的 请求超时在该调用内部运行,并保留各自的超时语义。 Codex 接受轮次后,以及 OpenClaw 响应轮次范围内的 app-server 请求后,harness 预期 Codex 在当前轮次取得进展, 并最终通过 turn/completed 完成本机轮次。如果 app-server 静默达到 appServer.turnCompletionIdleTimeoutMs,OpenClaw 会尽力中断 Codex 轮次、记录诊断超时,并 释放 OpenClaw 会话通道,使后续聊天消息不会 排在过期的本机轮次之后。同一轮次的大多数非终止通知 都会解除这个短期看门狗,因为 Codex 已证明该轮次仍处于活动状态。 工具移交使用更长的工具后空闲时间预算:在 OpenClaw 返回 item/tool/call 响应后,在 commandExecution 等本机工具项完成后,在原始 custom_tool_call_output 完成后,以及在工具后的原始助手进度、原始推理 完成或推理进度后。该防护在配置后使用 appServer.postToolRawAssistantCompletionIdleTimeoutMs,否则默认为五分钟;在 Codex 发出 下一个当前轮次事件前的静默合成窗口中,同一预算也会延长 进度看门狗。速率限制更新等全局 app-server 通知 不会重置轮次空闲进度。推理完成、 commentary agentMessage 完成,以及工具前的原始推理或 助手进度之后可能会自动产生最终回复,因此它们使用 进度后回复防护,而不是立即释放会话通道。 只有最终/非 commentary 的已完成 agentMessage 项和工具前的原始 助手完成会启用助手输出释放:如果 Codex 随后 静默且没有 turn/completed,OpenClaw 会尽力中断本机 轮次并释放会话通道。如果另一个轮次监视在释放竞争中胜出, 只要不再有本机请求、项目或动态工具完成处于活动状态, 且助手输出释放仍属于最新完成的项目, 并且之后没有其他项目完成,OpenClaw 仍会接受已完成的最终助手项目。 这样可以在已完成工具工作后保留最终答案,而无需重放轮次。 部分助手增量、过期的早期回复以及后续的空完成均不符合条件。 可安全重放的 stdio app-server 故障,包括在没有助手、工具、 活动项目或副作用证据的情况下发生的轮次完成空闲超时, 会在全新的 app-server 尝试中重试一次。不安全的超时仍会停用 卡住的 app-server 客户端并释放 OpenClaw 会话通道;它们还会 清除过期的本机线程绑定,而不是自动重放。 完成监视超时会显示 Codex 特定的超时文本:可安全重放的情况会说明 响应可能不完整,而不安全的情况会提示用户在重试前验证当前状态。 公开的超时诊断包含结构化字段,例如最后一个 app-server 通知方法、原始助手响应项目的 ID/类型/角色、活动 请求/项目计数以及已启用的监视状态;当最后一个通知是 原始助手响应项目时,还会包含长度受限的助手文本预览。 其中不包含原始提示词或工具内容。

本地测试环境覆盖

  • OPENCLAW_CODEX_APP_SERVER_BINappServer.command 未设置时绕过托管二进制文件。
  • OPENCLAW_CODEX_APP_SERVER_ARGS
  • OPENCLAW_CODEX_APP_SERVER_MODE=yolo|guardian
  • OPENCLAW_CODEX_APP_SERVER_APPROVAL_POLICY
  • OPENCLAW_CODEX_APP_SERVER_SANDBOX
OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1 已被移除。请改用 plugins.entries.codex.config.appServer.mode: "guardian",或使用 OPENCLAW_CODEX_APP_SERVER_MODE=guardian 进行一次性本地测试。对于可重复部署, 首选配置,因为它会将插件行为与 Codex harness 的其余设置 保存在同一个经过审查的文件中。

Native Codex plugins

Native Codex plugins 支持会在与 OpenClaw harness 轮次相同的 Codex 线程中, 使用 Codex app-server 自有的应用和插件能力。OpenClaw 不会将 Codex 插件转换为合成的 codex_plugin_* OpenClaw 动态工具。 codexPlugins 仅影响选择原生 Codex harness 的会话。 它不会影响内置 harness 运行、正常的 OpenAI provider 运行、ACP 对话绑定或其他 harness。 最小迁移配置:
当 OpenClaw 建立 Codex harness 会话或替换过期的 Codex 线程绑定时, 会计算线程应用配置;不会在每个轮次中重新计算。 更改 codexPlugins 后,请使用 /new/reset, 或重启 Gateway 网关,以便未来的 Codex harness 会话使用更新后的应用集启动。 有关迁移资格、应用清单、破坏性操作策略、 信息征询和原生插件诊断,请参阅 Native Codex plugins OpenAI 侧的应用和插件访问权限由已登录的 Codex 账户控制;对于 Business 和 Enterprise/Edu 工作区,还受工作区应用 控制。有关 OpenAI 的账户和工作区控制概览,请参阅 在你的 ChatGPT 套餐中使用 Codex

计算机使用

计算机使用有其单独的设置指南: Codex Computer Use 简而言之:OpenClaw 不会内置桌面控制应用,也不会自行执行 桌面操作。它会准备 Codex app-server,验证 computer-use MCP 服务器是否可用,然后让 Codex 在 Codex 模式轮次中 负责原生 MCP 工具调用。

运行时边界

Codex harness 仅更改底层嵌入式智能体执行器。
  • 支持 OpenClaw 动态工具。Codex 请求 OpenClaw 执行 这些工具,因此 OpenClaw 仍位于执行路径中。
  • Codex 原生 shell、patch、MCP 和原生应用工具由 Codex 所有。 OpenClaw 可以通过受支持的中继观察或阻止选定的原生事件, 但不会重写原生工具参数。
  • Codex 负责原生压缩。OpenClaw 为 渠道历史记录、搜索、/new/reset 以及未来的模型或 harness 切换保留转录镜像,但不会用 OpenClaw 或 上下文引擎摘要器替代 Codex 压缩。
  • 媒体生成、媒体理解、TTS、审批和消息工具 输出继续通过匹配的 OpenClaw 提供商/模型设置处理。
  • tool_result_persist 适用于 OpenClaw 自有的转录工具结果, 不适用于 Codex 原生工具结果记录。
有关钩子层、受支持的 V1 接口、原生权限处理、队列 Steering、Codex 反馈上传机制和压缩详情,请参阅 Codex harness runtime

故障排查

**Codex 未显示为普通的 /model 提供商:**对于新 配置,这是预期行为。请选择 openai/gpt-* 模型,启用 plugins.entries.codex.enabled,并检查 plugins.allow 是否排除了 codex **OpenClaw 使用内置 harness 而不是 Codex:**确认有效 路由是完全匹配的官方 HTTPS Platform Responses 或 ChatGPT Responses 路由, 没有自行编写的请求覆盖,并且 Codex 插件已安装并启用。 仅有 openai/gpt-* 前缀并不足够。若要在测试时进行严格验证, 请设置提供商或模型 agentRuntime.id: "codex";当路由或 harness 不兼容时, 强制使用 Codex 会失败,而不是回退。 **OpenAI Codex 运行时回退到 API key 路径:**收集一段经过脱敏的 Gateway 网关摘录,其中应显示模型、运行时、所选提供商和 故障。请受影响的协作者在其 OpenClaw 主机上运行以下只读命令:
有用的摘录通常包含 openai/gpt-5.6-solopenai/gpt-5.6-lunaRuntime: OpenAI CodexagentRuntime.idharnessRuntimecandidateProvider: "openai",以及 401Incorrect API keyNo API key 结果。修正后的运行应显示 OpenAI OAuth 路径, 而不是普通的 OpenAI API key 故障。 **旧版 Codex 模型引用配置仍然存在:**运行 openclaw doctor --fix。 Doctor 会将旧版模型引用重写为 openai/*,移除过时的会话和 整个智能体的运行时固定设置,并保留现有的身份验证配置文件覆盖项。 **app-server 被拒绝:**通过内置的 0.145.0 使用来自 0.143.0 的稳定版 Codex app-server。预发布版本、带构建后缀的版本以及更新但 尚未验证的版本会被拒绝,因为 OpenClaw 会根据内置的 app-server 版本 验证生成的 schema。 **/codex status 无法连接:**检查 codex 插件 是否已启用;配置允许列表时,plugins.allow 是否包含该插件; 以及任何自定义 appServer.commandurlauthToken 或 请求头是否有效。 **Codex app-server 使用过多内存:**首先区分这两个进程。 OpenClaw 将本地 Codex app-server 作为独立的 Rust 子进程运行。 NODE_OPTIONS=--max-old-space-size=... 只会更改 Gateway 网关的 Node.js V8 堆;它不会限制或扩大 Codex 的内存。托管式 Gateway 网关安装已采用 自适应 V8 堆,提高该值可能会减少 Codex 可用的主机内存。对于 Gateway 网关的内存压力,请参阅 Gateway 网关内存故障排除; 对于 Codex 子进程,请检查主机或容器内存。 内置 Codex 没有堆或 RSS 限制,也没有可配置的空闲卸载 延迟。最后一个客户端取消订阅后,非活动线程仍可能保持加载 长达 30 分钟。在资源受限的主机上,先减少原生 Codex 子智能体的并发数, 再增大 Gateway 网关堆:
该设置会限制内置 Codex 默认多智能体后端的原生子线程数量。 如果明确启用了 Codex 多智能体 v2,请改用 features.multi_agent_v2.max_concurrent_threads_per_session=3;v2 的 限制包含根线程,且不能与 agents.max_threads 组合使用。 要为 Codex 提供更多余量,请增加主机、容器或 cgroup 的内存 分配。操作系统硬限制可能会直接终止 Codex,而不是对其施加背压。 **模型发现速度慢:**降低 plugins.entries.codex.config.discovery.timeoutMs 或禁用发现。 请参阅 Codex harness reference **WebSocket 传输立即失败:**检查 appServer.urlauthToken、请求头,并确认远程 app-server 使用相同版本的 Codex app-server 协议。Codex WebSocket 传输仍处于实验阶段且不受支持; 请优先使用托管式 stdio 或本地 Unix 控制套接字。 **原生 shell 或补丁工具被 Native hook relay unavailable 阻止:**Codex 线程仍在尝试使用 OpenClaw 已不再注册的原生钩子中继 ID。这是原生 Codex 钩子 传输问题,而不是 ACP 后端、提供商、GitHub 或 shell 命令 故障。在受影响的聊天中使用 /new/reset 启动新会话, 然后重试一个无害命令。如果该命令成功一次,但下一次原生工具 调用再次失败,请仅将 /new 视为临时解决方法:重启 Codex app-server 或 OpenClaw Gateway 网关后,将提示词复制到新会话中,以便丢弃旧线程并 重新创建原生钩子注册。 **Codex 工具调用创建了过多短生命周期的钩子进程:**设置 plugins.entries.codex.config.appServer.loopDetectionPreToolUseRelay: false 并重启 Gateway 网关。这只会禁用用于 OpenClaw 循环检测及其无策略标记的 Codex PreToolUse 子进程。必需的 before_tool_call 和受信任工具策略中继仍保持启用。 **非 Codex 模型使用内置 harness:**除非提供商或模型运行时策略将其 路由到其他 harness,否则这是预期行为。在 auto 模式下, 普通的非 OpenAI 提供商引用仍使用其正常的提供商路径。 **Computer Use 已安装,但工具未运行:**从新会话中检查 /codex computer-use status。如果工具报告 Native hook relay unavailable,请采用上面的原生钩子中继恢复方法。 请参阅 Codex Computer Use

相关内容