代理框架是提供代理執行階段的實作(程式碼
術語)。例如,隨附的 Codex 代理框架實作了
codex 執行階段。
公開設定會在供應商或模型項目上使用 agentRuntime.id;整個代理的
執行階段鍵屬於舊版設定,會被忽略。openclaw doctor --fix 會移除舊有的
整個代理執行階段固定設定,並視需要將舊版執行階段模型參照改寫為標準的
供應商/模型參照及模型範圍的執行階段原則。
兩類執行階段:
- 嵌入式代理框架會在 OpenClaw 已準備好的代理迴圈內執行:包括
內建的
openclaw執行階段,以及已註冊的外掛代理框架,例如codex和copilot。 - 命令列介面後端會執行本機命令列介面程序,同時維持標準模型參照。
例如,
anthropic/claude-opus-5搭配模型範圍的agentRuntime.id: "claude-cli",表示「選取 Anthropic 模型,透過 Claude 命令列介面執行。」claude-cli不是嵌入式代理框架 ID,不得 傳入 AgentHarness 選取程序。
copilot 代理框架是供 GitHub Copilot 命令列介面使用的獨立選用外部外掛代理框架;
關於 PI、Codex 與 GitHub Copilot 代理執行階段之間面向使用者的選擇,
請參閱 GitHub Copilot 代理執行階段。
Codex 介面
數個介面共用 Codex 名稱:
這些介面刻意彼此獨立。啟用
codex 外掛
會提供原生 app-server 功能;openclaw doctor --fix 負責
修復舊版 Codex 路由及清理過時的工作階段固定設定。現在為代理模型選取 openai/*
表示「透過 Codex 執行此模型」,除非使用的是非代理
OpenAI API 介面。
常見的 ChatGPT/Codex 訂閱設定使用 Codex OAuth 進行驗證,但
會將模型參照維持為 openai/*,並選取 codex 執行階段:
codex 外掛時,請使用原生 /codex 命令
介面(/codex bind、/codex threads、/codex resume、/codex steer、
/codex stop)以自然語言控制 Codex,而不要使用 ACP。只有在
使用者明確要求 ACP/acpx,或正在測試 ACP 轉接器路徑時,才對
Codex 使用 ACP。Claude Code、Gemini 命令列介面、OpenCode、Cursor 及類似的外部
代理框架仍使用 ACP。
決策樹:
- Codex 繫結/控制/執行緒/繼續/引導/停止 -> 啟用隨附的
codex外掛時,使用原生/codex命令介面。 - 將 Codex 作為嵌入式執行階段,或一般由訂閱支援的 Codex 代理體驗 ->
openai/<model>。 - 明確選擇 OpenClaw 執行 OpenAI 模型 -> 將模型參照維持為
openai/<model>,並將供應商/模型執行階段原則設為agentRuntime.id: "openclaw"。選取的openaiOAuth 設定檔會在內部透過 OpenClaw 的 Codex 驗證傳輸進行路由。 - 設定中的舊版 Codex 模型參照 -> 使用
openclaw doctor --fix修復為openai/<model>;若舊模型參照隱含該意圖,doctor 會加入供應商/模型範圍的agentRuntime.id: "codex",以保留 Codex 驗證路由。舊版codex-cli/*模型參照會修復為相同的openai/<model>Codex app-server 路由;OpenClaw 不再保留隨附的 Codex 命令列介面後端。 - 明確要求 ACP、acpx 或 Codex ACP 轉接器 ->
runtime: "acp"和agentId: "codex"。 - Claude Code、Gemini 命令列介面、OpenCode、Cursor、Droid 或其他外部代理框架 -> ACP/acpx,而非原生子代理執行階段。
關於 OpenAI 系列前綴的區分,請參閱 OpenAI 和
模型供應商。關於 Codex 執行階段支援
合約,請參閱 Codex 代理框架執行階段。
執行階段所有權
不同的執行階段負責迴圈中不同範圍的工作:
設計規則:若介面由 OpenClaw 負責,即可提供一般的外掛掛鉤
行為。若介面由原生執行階段負責,OpenClaw 就需要執行階段
事件或原生掛鉤。若標準執行緒狀態由原生執行階段負責,
OpenClaw 會鏡像及投射上下文,而不是改寫不支援的
內部機制。
執行階段選取
OpenClaw 會在解析供應商和模型後,依照 下列順序解析嵌入式執行階段:- 模型範圍的執行階段原則優先。它位於已設定的供應商
模型項目中,或
agents.defaults.models["provider/model"].agentRuntime/agents.entries.*.models["provider/model"].agentRuntime中。像agents.defaults.models["vllm/*"].agentRuntime這樣的供應商萬用字元會在精確模型原則之後套用, 因此動態探索到的供應商模型可共用一個執行階段,而不會 覆寫精確的個別模型例外。 - 供應商範圍的執行階段原則:
models.providers.<provider>.agentRuntime。 auto模式:已註冊的外掛執行階段可宣告支援的供應商/模型組合。- 若在
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。
命令列介面後端別名與嵌入式代理框架 ID 不同。建議的 Claude 命令列介面形式:
claude-cli/claude-opus-4-7 等舊版參照,
但新設定應維持供應商/模型的標準形式,並將執行後端
放入供應商/模型執行階段原則中。
舊版 codex-cli/* 參照則不同:doctor 會將其遷移至 openai/*,
使其透過 Codex app-server 代理框架執行,而不是保留 Codex
命令列介面後端。
對大多數供應商而言,auto 模式刻意採取保守策略。OpenAI 代理
模型是例外:未設定執行階段及 auto 都會解析至 Codex
代理框架。明確的 OpenClaw 執行階段設定仍是 openai/* 代理回合的選用相容
路由;與選取的 openai OAuth 設定檔搭配時,OpenClaw 會在內部透過 Codex 驗證
傳輸來路由該路徑,同時將公開模型參照維持為 openai/*。過時的 OpenAI
執行階段工作階段固定設定會被執行階段選取程序忽略,並可使用
openclaw doctor --fix 清理。
如果 openclaw doctor 警告已啟用 codex 外掛,但設定中仍有舊版
Codex 模型參照,請將其視為舊版路由狀態,並執行
openclaw doctor --fix,使用 Codex 執行階段將其改寫為 openai/*。
GitHub Copilot 代理程式執行階段
外部@openclaw/copilot 外掛會註冊由 GitHub Copilot 命令列介面
(@github/copilot-sdk)支援、需選擇啟用的 copilot 執行階段。它會宣告
標準訂閱 github-copilot 提供者,且絕不會由
auto 選取。透過 agentRuntime.id 依模型或提供者選擇啟用:
extensions/copilot/doctor-contract-api.ts 中宣告其提供者、執行階段、命令列介面工作階段金鑰和驗證設定檔
前綴,而 openclaw doctor 會自動載入該項目。關於設定、驗證、逐字稿鏡像、壓縮、
宣告式 doctor 合約,以及更廣泛的 PI、Codex 與 Copilot SDK
選擇,請參閱 GitHub Copilot 代理程式執行階段。
相容性合約
當執行階段不是 OpenClaw 時,其文件應說明支援哪些 OpenClaw 介面:
Codex 執行階段支援合約記載於
Codex 框架執行階段。
狀態標籤
狀態輸出可以同時顯示Execution 和 Runtime 標籤。請將其視為
診斷資訊,而非提供者名稱:
- 模型參照(例如
openai/gpt-5.6-sol)是所選的提供者/模型。 - 執行階段 ID(例如
codex)是執行該回合的迴圈。 - 頻道標籤(例如 Telegram 或 Discord)代表對話發生的位置。