Skip to main content
代理运行时负责一个已准备好的模型循环:它接收提示词, 驱动模型输出,处理原生工具调用,并将完成的轮次返回给 OpenClaw。 运行时很容易与提供方混淆,因为它们都会出现在模型配置附近。它们属于不同层: harness 是提供代理运行时的实现(代码术语)。例如,内置的 Codex harness 实现了 codex 运行时。公开配置在 provider 或 model 条目上使用 agentRuntime.id;整代理运行时键属于旧式配置并会被忽略。openclaw doctor --fix 会移除旧的整代理运行时固定项,并在需要时将旧式运行时模型引用重写为规范的 provider/model 引用以及按模型作用域的运行时策略。 有两类运行时:
  • 嵌入式 harness 在 OpenClaw 的已准备代理循环中运行:内置的 openclaw 运行时,以及已注册的插件 harness,例如 codexcopilot
  • CLI 后端 在本地 CLI 进程中运行,同时保持模型引用为规范形式。例如,anthropic/claude-opus-5 配合按模型作用域的 agentRuntime.id: "claude-cli",意思是“选择 Anthropic 模型,通过 Claude CLI 执行”。claude-cli 不是嵌入式 harness id,且不得传递给 AgentHarness 选择。
copilot harness 是一个独立的、可选的外部插件 harness,用于 GitHub Copilot CLI;有关 PI、Codex 和 GitHub Copilot 代理运行时之间面向用户的决策,请参见 GitHub Copilot agent runtime

Codex 表面

多个表面共用 Codex 这一名称: 这些表面是有意相互独立的。启用 codex 插件会提供原生 app-server 功能;openclaw doctor --fix 负责修复旧版 Codex 路由和清理过时的会话固定配置。现在,为代理选择 openai/* 模型意味着“通过 Codex 运行此模型”,除非使用的是非代理的 OpenAI API 表面。 常见的 ChatGPT/Codex 订阅设置使用 Codex OAuth 进行认证,但将模型引用保持为 openai/*,并选择 codex 运行时:
这意味着 OpenClaw 先选择一个 OpenAI 模型引用,然后让 Codex app-server 运行时执行这个嵌入式代理轮次。它并不意味着“使用 API 计费”,也不意味着通道、模型提供方目录或 OpenClaw 会话存储会变成 Codex。 当捆绑的 codex 插件启用后,请使用原生 /codex 命令表面(/codex bind/codex threads/codex resume/codex steer/codex stop)进行自然语言 Codex 控制,而不是使用 ACP。只有在用户明确要求 ACP/acpx,或正在测试 ACP 适配器路径时,才对 Codex 使用 ACP。Claude Code、Gemini CLI、OpenCode、Cursor 以及类似的外部 harness 仍使用 ACP。 决策树:
  1. Codex 绑定/控制/线程/恢复/引导/停止 -> 在启用捆绑 codex 插件时,使用原生 /codex 命令表面。
  2. 将 Codex 作为嵌入式运行时,或使用通常由订阅支持的 Codex 代理体验 -> openai/<model>
  3. 明确选择由 OpenClaw 使用 OpenAI 模型 -> 保持模型引用为 openai/<model>,并将提供方/模型运行时策略设置为 agentRuntime.id: "openclaw"。选中的 openai OAuth 配置文件会在内部通过 OpenClaw 的 Codex-auth 传输路由。
  4. 配置中的旧版 Codex 模型引用 -> 使用 openclaw doctor --fix 修复为 openai/<model>;doctor 会通过在旧模型引用隐含的位置添加提供方/模型作用域的 agentRuntime.id: "codex" 来保留 Codex 认证路由。旧的 codex-cli/* 模型引用会修复为相同的 openai/<model> Codex app-server 路由;OpenClaw 不再保留捆绑的 Codex CLI 后端。
  5. 明确请求 ACP、acpx 或 Codex ACP 适配器 -> runtime: "acp" and agentId: "codex"
  6. Claude Code、Gemini CLI、OpenCode、Cursor、Droid 或其他外部 harness -> 使用 ACP/acpx,而不是原生子代理运行时。
关于 OpenAI 系列前缀拆分,请参见 OpenAI模型提供方。关于 Codex 运行时支持 契约,请参见 Codex harness runtime

运行时所有权

不同的运行时拥有循环的不同部分: 设计规则:如果 OpenClaw 拥有该表面,它可以提供正常的插件钩子行为。如果原生运行时拥有该表面,OpenClaw 需要运行时事件或原生钩子。如果原生运行时拥有规范线程状态,OpenClaw 会镜像并投射上下文,而不是重写不受支持的内部机制。

运行时选择

OpenClaw 在提供者和模型解析之后按以下顺序解析嵌入式运行时:
  1. 模型范围的运行时策略 优先。它位于已配置的提供者 模型条目中,或位于 agents.defaults.models["provider/model"].agentRuntime / agents.entries.*.models["provider/model"].agentRuntime。像 agents.defaults.models["vllm/*"].agentRuntime 这样的提供者通配符会在精确模型策略之后生效,因此动态发现的提供者模型可以共享同一个运行时,而不会覆盖精确到单个模型的例外。
  2. 提供者范围的运行时策略models.providers.<provider>.agentRuntime
  3. auto 模式:已注册的插件运行时可以声明自己支持的提供者/模型对。
  4. 如果在 auto 模式下没有任何项声明该轮次,OpenClaw 会回退到 openclaw 作为兼容运行时。若运行必须严格一致,请使用显式的运行时 id。
整个会话和整个代理的运行时固定值会被忽略:OPENCLAW_AGENT_RUNTIME、 会话 agentHarnessId/agentRuntimeOverride 状态、agents.defaults.agentRuntime, 以及 agents.entries.*.agentRuntime。运行 openclaw doctor --fix 以删除过时的 整个代理运行时配置,并在意图可保留时转换旧版运行时模型引用。 显式的提供者/模型插件运行时是“失败即关闭”的:在提供者或模型上设置 agentRuntime.id: "codex" 表示 Codex,或明确的选择/运行时错误——它绝不会静默路由回 OpenClaw。只有 auto 才可能将不匹配的轮次路由到 OpenClaw。 CLI 后端别名与嵌入式 harness ids 不同。首选的 Claude CLI 形式如下:
claude-cli/claude-opus-4-7 这样的旧引用仍受支持以保持兼容性,但新配置应保持 provider/model 的规范形式,并将执行后端放入 provider/model 运行时策略中。 旧的 codex-cli/* 引用有所不同:doctor 会将它们迁移到 openai/*,使其通过 Codex app-server harness 运行,而不是保留一个 Codex CLI 后端。 auto 模式对大多数提供者有意保持保守。OpenAI 代理模型是例外:未设置运行时和 auto 都会解析到 Codex harness。显式的 OpenClaw 运行时配置仍然是 openai/* 代理轮次的可选兼容路径;当与已选择的 openai OAuth 配置文件配对时,OpenClaw 会通过 Codex-auth 传输在内部路由该路径,同时将公开模型引用保持为 openai/*。过时的 OpenAI 运行时会话固定值会被运行时选择忽略,并可通过 openclaw doctor --fix 清理。 如果 openclaw doctor 提示在保留旧版 Codex 模型引用的同时已启用 codex 插件,请将其视为旧路由状态,并运行 openclaw doctor --fix 将其重写为带有 Codex 运行时的 openai/*

GitHub Copilot 代理运行时

外部 @openclaw/copilot 插件注册了一个可选择加入的 copilot 运行时,
该运行时由 GitHub Copilot CLI(@github/copilot-sdk)提供支持。它声明了
规范的订阅 github-copilot 提供商,并且绝不会auto 选中。可通过
agentRuntime.id 按模型或按提供商选择加入:
插件清单声明了 harness 提供商、运行时、CLI 会话密钥和身份验证配置文件前缀,
无需 openclaw doctor 加载插件代码。有关配置、身份验证、记录镜像、压缩、
声明式 doctor 契约,以及更广泛的 PI、Codex 与 Copilot SDK 选型,请参阅
GitHub Copilot 代理运行时

兼容性契约

当运行时不是 OpenClaw 时,其文档应说明它支持哪些 OpenClaw 表面: Codex 运行时支持契约记录在 Codex harness runtime

状态标签

状态输出可以同时显示 ExecutionRuntime 标签。请将它们视为诊断信息,而不是提供方名称:
  • 类似 openai/gpt-5.6-sol 的模型引用是所选的提供方/模型。
  • 类似 codex 的运行时 ID 是执行本轮交互的循环。
  • 类似 Telegram 或 Discord 的频道标签表示对话发生的位置。
如果一次运行显示了意外的运行时,请先检查所选提供方/模型的运行时策略。旧版会话的运行时固定值不再决定路由。

相关链接