运行时和 Codex 认证
命名映射¶
| 你看到的名称 | 层 | 含义 |
|---|---|---|
openai |
提供商前缀 | 规范的 OpenAI 模型路由;路由事实决定隐式运行时。 |
codex 插件 |
插件 | 捆绑插件,提供原生 Codex app-server 运行时和 /codex 聊天控制。 |
提供商/模型 agentRuntime.id: codex |
代理运行时 | 为匹配的嵌入式轮次强制使用原生 Codex app-server 框架。 |
/codex ... |
聊天命令集 | 从会话中绑定/控制 Codex app-server 线程。 |
runtime: "acp", agentId: "codex" |
ACP 会话路由 | 显式回退路径,通过 ACP/acpx 运行 Codex。 |
隐式代理运行时¶
当提供商/模型 agentRuntime 策略未设置或为 auto 时,OpenAI 的提供商所有路由策略会根据有效端点和适配器选择隐式运行时:
| 有效路由事实 | 隐式运行时 |
|---|---|
精确的官方 Platform HTTPS 端点且使用 openai-responses,或精确的官方 ChatGPT HTTPS 端点且使用 openai-chatgpt-responses;没有编写的提供商请求覆盖 |
可能选择 Codex |
编写的 openai-completions 适配器 |
OpenClaw |
| 自定义端点 | OpenClaw |
| 显式使用 HTTP 的精确官方端点 | 拒绝 |
| 带有编写的提供商/模型请求覆盖的路由 | OpenClaw |
有效的模型作用域 params.fastMode / params.fast_mode、cutoff 和 thinking 值是类型化的代理运行时控制项,而不是编写的提供商请求参数。
肯定的推理支持和原生推理力度元数据也会保留 Codex 选择。有关支持的能力值以及仍然受保护的请求覆盖,请参阅 运行时选择。
显式 agentRuntime.id: "openclaw" 会将符合 Codex 条件的路由保持在 OpenClaw 上。显式 agentRuntime.id: "codex" 需要已注册的 Codex 框架;
不支持的路由/身份验证会失败关闭,但编写的请求覆盖可以在执行前使用 Codex 声明的精确请求 OpenClaw 回退。当配方依赖原生执行时,检查已完成结果的实际框架。
运行时兼容性不会确定凭据类型或计费:Platform API 密钥身份验证和 ChatGPT/Codex 订阅身份验证仍然不同。
仅官方 Completions 适配器不会将受支持的模型固定到按量计费:旧配置曾将该适配器与 Codex 订阅身份验证一起使用。
当两种凭据类型都符合条件时,自动选择优先选择订阅路由。该偏好不会改变隐式运行时,也不会要求仅为 API 的配置安装 Codex。没有 auth 覆盖的字面提供商
apiKey 在符合条件的配置文件之后仍然是回退。
必需的配置文件绑定、提供商身份验证设置、已配置的密钥引用和显式身份验证顺序仍然优先。编写的 OpenClaw 运行时选择在两种类型都符合条件时优先选择 API 路由;运行时兼容性会独立检查。未固定的心跳和子代理模型继承其默认模型的路由意图。保存模型引用迁移后,Doctor 会报告已解决的计费路由变更,包括消费者以及旧/新模型、路由和配置文件。
openclaw doctor --fix 将旧版 codex/* 和 openai-codex/* 模型引用、旧版 Codex 身份验证配置文件 ID 以及旧版 Codex 身份验证顺序条目迁移到规范的 openai 路由。迁移后的模型引用会获得模型作用域的
agentRuntime.id: "codex";新的身份验证顺序配置请使用 auth.order.openai。
Note
全新的 OpenAI 设置仅在未配置主模型时应用 GPT-5.6 主模型。添加或刷新 OpenAI 身份验证会保留现有的显式选择,包括 openai/gpt-5.5,除非你显式使用
models auth login --set-default 或 models set。仅当你希望为代理模型使用 API 密钥身份验证时,才使用 API 密钥身份验证配置文件。
Agents API MVP¶
独立的 Agents API 插件(@openclaw/agentsapi)与 Codex 插件一起注册显式 agentsapi 框架。OpenAI 提供商插件继续拥有模型路由和 API 密钥身份验证。
在 agents.defaults.model.primary 中选择一个模型,并将其 agents.defaults.models["openai/<model>"].agentRuntime.id 设置为 "agentsapi"。
使用 OpenAI API 密钥身份验证。该框架将配置的模型发送到 Agents API,没有模型允许列表;不支持的模型会返回 API 错误。
执行使用 OpenAI 托管的 Linux 虚拟机。推理遵循配置的 thinking 级别和模型元数据:保留受支持的力度,否则选择下一个更高的受支持力度,如果没有更高的则选择可用最高力度。
所选力度适用于新会话以及现有会话中的后续轮次。adaptive 和省略的原生力度使用模型默认值;更新现有会话会将其力度重置为该默认值。单代理 MVP
不支持 ultra 委托。自动运行时选择保持不变。
启用推理显示时,新会话请求原生摘要。
摘要生成在创建时固定;为现有会话启用它需要重置。原生委托保持禁用。
{
agents: {
defaults: {
model: { primary: "openai/gpt-6-astra" },
models: {
"openai/gpt-6-astra": { agentRuntime: { id: "agentsapi" } },
},
},
},
}
如果配置了 plugins.allow,请在 openai 旁边包含 agentsapi。
独立插件会在插件状态中保留原生会话标识符。它使用共享 harness 运行时来处理租约、生成准入、删除回滚、取消、截止时间以及生命周期事件。Agents API 协议事件、原生完成回执和转录投影仍由插件拥有。切换到该包时,请将早期提供商内原型创建的会话重置一次。
受限 API 密钥需要 Agents 和 Responses 的读写权限,以及 Models 的读取权限,以便服务在创建会话时获取所选模型。
Agents API 拥有持久化智能体会话和工作区。OpenClaw 将会话绑定存储在插件 SQLite 状态中,并将助手评论、推理摘要、原生工具调用及结果以及最终文本镜像到其常规转录中。后续消息会复用智能体会话;在运行中的回合期间输入会引导它,而中断会取消其远程回合。/new 和 /reset 会在下一条消息时开始一个新会话。重置和本地会话删除会使绑定退役;Agents API 会保留远程历史和工作区,可通过其 API 进行管理。
创建会话时,OpenClaw 使用与 Codex 相同的工作区准备,以提供有界的 AGENTS.md、SOUL.md、IDENTITY.md、共享的 USER.md,以及所选人员的 users/<profile-id>/USER.md 覆盖层。符合条件的 BOOTSTRAP.md、MEMORY.md 和 bootstrap-hook 文件会作为支持上下文包含在内。现有的 bootstrap 预算、会话隐私规则和轻量模式仍然适用。当启用的记忆工具指向已配置的工作区时,OpenClaw 会提供记忆引用和当前活动记忆插件的召回指引,而不是嵌入根 MEMORY.md 的内容。
这些是来自 Gateway 的指令快照,而不是复制到托管 VM 中的文件。后续回合会保留它们。使用 /new 或 /reset 可在现有会话中获取编辑、更改的个人用户选择或此行为。准备失败发生在远程会话创建和绑定之前,因此下一次尝试可以重试。
harness 会在适用时复用 OpenClaw 的工具感知委派、Skill Workshop、UI、凭据、Git 共同作者以及额外系统指引。每个回合还会通过现有输入载体接收当前日期/时区、活动计算机、可见回复、权限通知和受监视会话上下文。轻量 cron 输入保持不变。
MVP 客户端没有每回合开发者指令载体或指令刷新操作。工作区/人格刷新、Gateway 技能文件访问和技能目录交付、针对此 harness 的插件命令提示注册、提示构建钩子和上下文引擎组装,以及原生 fork 准备均未实现。原生 Codex 项目发现、协作和延迟工具搜索指令不适用于托管 harness。托管文件与 Gateway 工作区保持分离;附件上传和输出传输可独立支持。
如果事件流关闭,harness 会重新订阅,并在接受完成之前协调已保存的回合、已保存的项目和输入回执。它不会重新提交用户的消息。完成需要一个终止根回合和一个空闲原生会话。恢复的项目使用稳定标识以避免重复历史。如果恢复的项目仍在运行,会显示其已保存快照,并抑制含糊的重叠增量,直到权威完成;新项目继续正常流式传输。
当重试保留原生对话时,后续规范事实也可以修复早期终止回合中缺失的工具记录。这些记录会追加到现有历史中,而不会重放进度,也不会在当前尝试中计入早期工作。检索到的命令调用事实可以在执行仍在运行时保存;持久结果需要该项目自身的终止状态。MCP 参数和网页搜索操作会在其项目完成后保存。
在持久评论和推理记录等待检索到的原生历史时,评论保持实时。缺失或未完成的项可能阻止精确排序;终止协调会保留可用的已完成记录,而不是将其丢弃在未解决项之后。主机输入保持其现有转录位置,历史修复会追加而不会重写较早的消息。
原生 token 用量是尽力而为的,并跨所有已准入回合累积,包括被引导后续消息取代的工作。缓存输入和推理 token 仍是独立的使用事实。计费 token 不会确定活动上下文占用;该值仍不可用。已完成、失败和已取消的回合事件可以在已保存回合没有用量时提供用量;harness 会保留该贡献并只报告一次。
原生命令、MCP 调用和网页搜索使用与 Codex harness 相同的活动和输出回调。助手评论保留其文本,因此进度标记可以在命令仍在运行时到达通道。现有通道设置控制输出和推理可见性。
已保存的原生工具项提供规范历史以及可用的命令输出、退出代码、持续时间、参数、MCP 详情和网页搜索操作。即使助手声称成功,缺失的命令退出事实仍保持未知。原生 API 会公开网页搜索活动,但不包含结果正文或片段。此 harness 不提供结构化计划、diff、压缩事件、原生子智能体以及执行前审批或钩子事件。
新的 Agents API 会话会在实时模式下启用内置网页搜索。在启用网页搜索之前创建的会话需要使用 /new 或 /reset 才能获取它。
harness 支持文本、内置网页搜索、原生托管工作区命令,以及主机授权的 OpenClaw 和插件函数。Gateway 函数保留常规工具策略、钩子、当前运行权限和交付回执;shell 和文件操作仍保留在托管 VM 中。当现有插件和配置启用诸如记忆搜索之类的工具时,这些工具可用。OpenClaw 会在向原生会话确认结果之前,在其常规转录中记录主机函数调用、参数、结果和错误状态。
已接受的文件附件会被复制到托管 VM 中的 /workspace/inputs。
后续附件会上传到同一个已连接环境。位于 /workspace/outputs 下已完成的
原生产物会被复制到 OpenClaw 的托管出站媒体中,并附加到最终回复。限制为每个文件
5 MiB、总计 10 MiB,以及每个方向每轮 50 个文件。模型文本不能选择
Gateway 文件路径进行传输。
此 MVP 中的文件传输支持使用原生 Linux 状态存储或 Docker 管理的状态卷的托管 Linux VM, 以及 Linux Gateway。macOS 主机绑定挂载的 Gateway 状态和 Windows Gateway 不在支持范围内。 如果返回的附件缺失,请检查 Gateway 日志和存储配置; 在 macOS 上,请使用 Docker 管理的状态卷。当输出传输失败时,已完成的助手文本仍会保留, 但它可能仍声称已附加文件。 在将传输视为完成之前,请确认附件确实存在。
应用、连接器、图像生成、自定义上下文引擎和自托管 执行器不在本原型范围内。已接受的轮次会被标记为 不可安全重放,因为托管命令或 Gateway 函数可能已经运行。 OpenClaw 可以在临时提供商故障后继续现有会话。
原生 Codex app-server 认证¶
原生 Codex app-server 框架在符合条件的精确官方 HTTPS 路由隐式选择它时,
或在提供商/模型
agentRuntime.id: "codex" 显式选择它时,使用 openai/* 模型引用。
其认证仍然是基于账户的。OpenClaw 按以下顺序选择认证:
- 针对该 agent 的有序 OpenAI 认证配置,最好位于
auth.order.openai下。运行openclaw doctor --fix以迁移旧版遗留 Codex 认证配置 ID 和认证顺序。 - 原生 Codex 账户,仅在显式
appServer.homeScope: "user"选择加入且没有主机凭据或账户选择拥有该路由时使用。 普通 OpenClaw 会话默认使用隔离的 agent 主目录,即使 Codex 已登录也是如此。准备好的 OpenClaw 凭据保留在该主目录中; OpenClaw 永远不会将它们登录到原生用户主目录。 - 仅针对本地 stdio app-server 启动,并且仅在 app-server
报告没有账户时:
CODEX_API_KEY,然后是OPENAI_API_KEY。
使用用户主目录选择加入时,状态和目录读取会询问 Codex 其原生 登录情况,而不会将凭据导入 OpenClaw 配置。新的认证刷新会观察原生登录 和登出。原生 API 密钥和订阅账户会选择其匹配 路由。模型运行时选择使用与思考 元数据相同的路由和账户;不可用的运行时不能被选择。当你希望使用 OpenClaw 拥有的配置时,显式认证导入仍然可用。
如果你之前依赖自动使用原生 Codex 登录,请使用
openclaw models auth login --provider openai 登录并选择生成的 OpenClaw
配置。在模型设置中选择检测到的 Codex 会重用符合条件的 OpenClaw 凭据
或在测试连接之前打开受支持的 OpenAI 登录流程。已取消
或失败的登录不会提升该路由。如果登录后的验证失败,
选择已保存的登录以重试,而无需再次登录。设置不再仅仅因为存在原生登录就启用
用户主目录共享。现有显式 homeScope: "user" 设置仍然是选择加入;删除该
设置以使用隔离会话。原生会话采用和监督保持不变。现有个人 Codex 历史不会被移动或删除,普通
OpenClaw 会话仍持久保存在每个 agent 的 Codex 主目录中。
默认每个 agent 的 codex-home/auth.json 不是运行时认证存储。如果
你在那里复制或挂载了 Codex CLI 凭据,请在开始原生 Codex 轮次之前将它们导入到该 agent 的
OpenClaw 认证存储中。将 <agent-id>
替换为拥有此 Codex 主目录的已配置 agent:
openclaw migrate plan codex --from <codex-home> --agent <agent-id> --include-secrets --item auth:openai
openclaw migrate apply codex --from <codex-home> --agent <agent-id> --include-secrets --item auth:openai --yes
本地 ChatGPT/Codex 订阅登录不会仅仅因为
gateway 进程也有用于直接 OpenAI 模型或
嵌入的 OPENAI_API_KEY 而被替换。环境变量 API 密钥回退仅适用于本地 stdio 无账户
路径;它永远不会通过 WebSocket app-server 连接发送。当选择
订阅式 Codex 配置时,OpenClaw 还会将
CODEX_API_KEY 和 OPENAI_API_KEY 排除在派生的 stdio app-server 子进程之外,
并通过 app-server 登录 RPC 发送所选凭据。
当该订阅配置被 Codex 使用限制阻止时,OpenClaw
会将该配置标记为阻止,直到 Codex 通告的重置时间,并让认证
顺序轮换到下一个 openai:* 配置,而不改变所选
模型或退出 Codex 框架。一旦重置时间过去,该
订阅配置再次符合条件。
Chat /status 报告来自所选运行时当前
准备账户的认证模式。原生登录与 OpenClaw 配置保持区分;它不
满足不可用的显式配置固定。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw