跳轉到主要內容

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

隨附的 codex Plugin 讓 OpenClaw 透過 Codex app-server 執行嵌入式代理回合,而不是使用內建 PI harness。 當你希望 Codex 擁有低階代理工作階段時使用此方式:模型探索、原生執行緒續接、原生 Compaction,以及 app-server 執行。OpenClaw 仍然擁有聊天頻道、工作階段檔案、模型選擇、工具、核准、媒體傳遞,以及可見的逐字稿鏡像。 如果你正在嘗試建立方向感,請從 代理執行環境開始。簡短版本是: openai/gpt-5.5 是模型參照,codex 是執行環境,而 Telegram、Discord、Slack 或其他頻道仍然是通訊介面。

此 Plugin 會改變什麼

隨附的 codex Plugin 提供數個獨立能力:
能力使用方式它的作用
原生嵌入式執行環境agentRuntime.id: "codex"透過 Codex app-server 執行 OpenClaw 嵌入式代理回合。
原生聊天控制指令/codex bind, /codex resume, /codex steer, …從訊息對話綁定並控制 Codex app-server 執行緒。
Codex app-server 提供者/目錄codex internals, surfaced through the harness讓執行環境探索並驗證 app-server 模型。
Codex 媒體理解路徑codex/* image-model compatibility paths針對支援的影像理解模型執行有界的 Codex app-server 回合。
原生 hook relayPlugin hooks around Codex-native events讓 OpenClaw 觀察/阻擋支援的 Codex 原生工具/完成事件。
啟用 Plugin 會讓這些能力可用。它不會
  • 開始對每個 OpenAI 模型使用 Codex
  • openai-codex/* 模型參照轉換為原生執行環境
  • 讓 ACP/acpx 成為預設 Codex 路徑
  • 熱切換已經記錄 PI 執行環境的既有工作階段
  • 取代 OpenClaw 頻道傳遞、工作階段檔案、auth-profile 儲存或訊息路由
同一個 Plugin 也擁有原生 /codex 聊天控制指令介面。如果 Plugin 已啟用,且使用者要求從聊天中綁定、續接、導向、停止或檢查 Codex 執行緒,代理應優先使用 /codex ... 而不是 ACP。當使用者要求 ACP/acpx 或正在測試 ACP Codex 配接器時,ACP 仍是明確的備援。 原生 Codex 回合會保留 OpenClaw Plugin hooks 作為公開相容層。這些是程序內 OpenClaw hooks,不是 Codex hooks.json 指令 hooks:
  • before_prompt_build
  • before_compaction, after_compaction
  • llm_input, llm_output
  • before_tool_call, after_tool_call
  • before_message_write 用於鏡像逐字稿記錄
  • before_agent_finalize 透過 Codex Stop relay
  • agent_end
Plugins 也可以註冊執行環境中立的工具結果中介軟體,以便在 OpenClaw 執行工具之後、結果回傳給 Codex 之前,改寫 OpenClaw 動態工具結果。這與公開的 tool_result_persist Plugin hook 分開,後者會轉換 OpenClaw 擁有的逐字稿工具結果寫入。 如需 Plugin hook 語意本身,請參閱 Plugin hooksPlugin guard 行為 harness 預設關閉。新設定應將 OpenAI 模型參照維持為標準的 openai/gpt-*,並在需要原生 app-server 執行時,明確強制 agentRuntime.id: "codex"OPENCLAW_AGENT_RUNTIME=codex。舊版 codex/* 模型參照仍會為了相容性自動選擇 harness,但由執行環境支援的舊版提供者前綴不會顯示為一般模型/提供者選項。 如果 codex Plugin 已啟用,但主要模型仍是 openai-codex/*openclaw doctor 會發出警告,而不是變更路由。這是刻意的:openai-codex/* 仍然是 PI Codex OAuth/訂閱路徑,而原生 app-server 執行仍是明確的執行環境選擇。

路由對照表

變更設定前請使用此表:
期望行為模型參照執行環境設定Plugin 需求預期狀態標籤
透過一般 OpenClaw runner 使用 OpenAI APIopenai/gpt-*省略或 runtime: "pi"OpenAI 提供者Runtime: OpenClaw Pi Default
透過 PI 使用 Codex OAuth/訂閱openai-codex/gpt-*省略或 runtime: "pi"OpenAI Codex OAuth 提供者Runtime: OpenClaw Pi Default
原生 Codex app-server 嵌入式回合openai/gpt-*agentRuntime.id: "codex"codex PluginRuntime: OpenAI Codex
採保守自動模式的混合提供者提供者特定參照agentRuntime.id: "auto"選用的 Plugin 執行環境取決於所選執行環境
明確的 Codex ACP 配接器工作階段取決於 ACP prompt/modelsessions_spawn with runtime: "acp"健康的 acpx 後端ACP 任務/工作階段狀態
重要分界是提供者與執行環境:
  • openai-codex/* 回答「PI 應使用哪個提供者/auth 路由?」
  • agentRuntime.id: "codex" 回答「哪個迴圈應執行這個嵌入式回合?」
  • /codex ... 回答「這個聊天應綁定或控制哪個原生 Codex 對話?」
  • ACP 回答「acpx 應啟動哪個外部 harness 程序?」

選擇正確的模型前綴

OpenAI 系列路由依前綴區分。當你想透過 PI 使用 Codex OAuth 時,請使用 openai-codex/*;當你想直接存取 OpenAI API,或正在強制使用原生 Codex app-server harness 時,請使用 openai/*
模型參照執行環境路徑使用時機
openai/gpt-5.4透過 OpenClaw/PI plumbing 的 OpenAI 提供者你想搭配 OPENAI_API_KEY 使用目前直接的 OpenAI Platform API 存取。
openai-codex/gpt-5.5透過 OpenClaw/PI 的 OpenAI Codex OAuth你想搭配預設 PI runner 使用 ChatGPT/Codex 訂閱 auth。
openai/gpt-5.5 + agentRuntime.id: "codex"Codex app-server harness你想為嵌入式代理回合使用原生 Codex app-server 執行。
GPT-5.5 目前在 OpenClaw 中僅支援訂閱/OAuth。PI OAuth 請使用 openai-codex/gpt-5.5,或搭配 Codex app-server harness 使用 openai/gpt-5.5。一旦 OpenAI 在公開 API 啟用 GPT-5.5,就支援 openai/gpt-5.5 的直接 API key 存取。 舊版 codex/gpt-* 參照仍會作為相容別名被接受。Doctor 相容性遷移會將舊版主要執行環境參照改寫為標準模型參照,並另外記錄執行環境政策;而僅作為備援的舊版參照會保持不變,因為執行環境是為整個代理容器設定。新的 PI Codex OAuth 設定應使用 openai-codex/gpt-*;新的原生 app-server harness 設定應使用 openai/gpt-* 加上 agentRuntime.id: "codex" agents.defaults.imageModel 遵循相同的前綴分界。當影像理解應透過 OpenAI Codex OAuth 提供者路徑執行時,請使用 openai-codex/gpt-*。當影像理解應透過有界的 Codex app-server 回合執行時,請使用 codex/gpt-*。Codex app-server 模型必須宣告支援影像輸入;純文字 Codex 模型會在媒體回合開始前失敗。 使用 /status 確認目前工作階段的有效 harness。如果選擇出乎意料,請為 agents/harness 子系統啟用偵錯記錄,並檢查 Gateway 的結構化 agent harness selected 記錄。它包含所選 harness id、選擇原因、執行環境/備援政策,以及在 auto 模式下各 Plugin 候選項的支援結果。

doctor 警告的意義

當下列全部為真時,openclaw doctor 會發出警告:
  • 隨附的 codex Plugin 已啟用或被允許
  • 代理的主要模型是 openai-codex/*
  • 該代理的有效執行環境不是 codex
這個警告存在,是因為使用者常預期「Codex Plugin 已啟用」就代表「原生 Codex app-server 執行環境」。OpenClaw 不會做這個跳躍。此警告表示:
  • 如果你原本就打算透過 PI 使用 ChatGPT/Codex OAuth,不需要變更
  • 如果你原本打算使用原生 app-server 執行,請將模型改為 openai/<model> 並設定 agentRuntime.id: "codex"
  • 執行環境變更後,既有工作階段仍需要 /new/reset,因為工作階段執行環境釘選具有黏性。
harness 選擇不是即時工作階段控制。當嵌入式回合執行時,OpenClaw 會在該工作階段上記錄所選 harness id,並在同一工作階段 id 的後續回合持續使用它。當你希望未來工作階段使用另一個 harness 時,請變更 agentRuntime 設定或 OPENCLAW_AGENT_RUNTIME;在 PI 與 Codex 之間切換既有對話前,請使用 /new/reset 開始新的工作階段。這可避免將同一份逐字稿透過兩套不相容的原生工作階段系統重播。 在 harness 釘選之前建立的舊版工作階段,一旦已有逐字稿歷史,就會被視為已釘選到 PI。變更設定後,請使用 /new/reset 讓該對話改用 Codex。 /status 會顯示有效模型執行環境。預設 PI harness 會顯示為 Runtime: OpenClaw Pi Default,而 Codex app-server harness 會顯示為 Runtime: OpenAI Codex

需求

  • OpenClaw 可使用隨附的 codex Plugin。
  • Codex app-server 0.125.0 或更新版本。隨附的 Plugin 預設會管理相容的 Codex app-server 二進位檔,因此 PATH 上的本機 codex 指令不會影響一般 harness 啟動。
  • app-server 程序或 OpenClaw 的 Codex auth bridge 可取得 Codex auth。
Plugin 會阻擋較舊或未版本化的 app-server handshake。這會讓 OpenClaw 維持在已測試過的協定介面上。 對於 live 與 Docker smoke tests,auth 通常來自 Codex CLI 帳號或 OpenClaw openai-codex auth profile。當沒有帳號時,本機 stdio app-server 啟動也可以退回使用 CODEX_API_KEY / OPENAI_API_KEY

最小設定

使用 openai/gpt-5.5,啟用隨附的 Plugin,並強制使用 codex harness:
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
      },
    },
  },
  agents: {
    defaults: {
      model: "openai/gpt-5.5",
      agentRuntime: {
        id: "codex",
      },
    },
  },
}
如果你的設定使用 plugins.allow,也請在其中包含 codex
{
  plugins: {
    allow: ["codex"],
    entries: {
      codex: {
        enabled: true,
      },
    },
  },
}
agents.defaults.model 或代理模型設為 codex/<model> 的舊版設定,仍會自動啟用隨附的 codex Plugin。新設定應優先使用 openai/<model> 加上上方明確的 agentRuntime 項目。

與其他模型並用 Codex

如果同一個代理應可在 Codex 與非 Codex 提供者模型之間自由切換,請不要全域設定 agentRuntime.id: "codex"。強制執行環境會套用到該代理或工作階段的每個嵌入式回合。如果你在強制使用該執行環境時選擇 Anthropic 模型,OpenClaw 仍會嘗試 Codex harness,並封閉式失敗,而不是默默將該回合透過 PI 路由。 改用以下其中一種形態:
  • 將 Codex 放在使用 agentRuntime.id: "codex" 的專用代理程式上。
  • 將預設代理程式保留在 agentRuntime.id: "auto",並使用 PI fallback 供一般混合 提供者使用。
  • 僅為相容性使用舊版 codex/* 參照。新設定應偏好 openai/* 加上明確的 Codex runtime policy。
例如,這會將預設代理程式保留在一般自動選擇, 並加入一個獨立的 Codex 代理程式:
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
      },
    },
  },
  agents: {
    defaults: {
      agentRuntime: {
        id: "auto",
        fallback: "pi",
      },
    },
    list: [
      {
        id: "main",
        default: true,
        model: "anthropic/claude-opus-4-6",
      },
      {
        id: "codex",
        name: "Codex",
        model: "openai/gpt-5.5",
        agentRuntime: {
          id: "codex",
        },
      },
    ],
  },
}
使用此形態時:
  • 預設 main 代理程式會使用一般提供者路徑與 PI 相容性 fallback。
  • codex 代理程式會使用 Codex app-server harness。
  • 如果 Codex 對 codex 代理程式缺失或不受支援,該回合會失敗, 而不是悄悄使用 PI。

代理程式命令路由

代理程式應依意圖路由使用者要求,而不是只依據「Codex」這個字:
使用者要求…代理程式應使用…
「將這個聊天綁定到 Codex」/codex bind
「在這裡繼續 Codex thread <id>/codex resume <id>
「顯示 Codex threads」/codex threads
「為一次不良 Codex 執行提交支援報告」/diagnostics [note]
「只為這個附加 thread 傳送 Codex feedback」/codex diagnostics [note]
「使用 Codex 作為此代理程式的 runtime」將設定變更為 agentRuntime.id
「搭配一般 OpenClaw 使用我的 ChatGPT/Codex 訂閱」openai-codex/* model refs
「透過 ACP/acpx 執行 Codex」ACP sessions_spawn({ runtime: "acp", ... })
「在 thread 中啟動 Claude Code/Gemini/OpenCode/Cursor」ACP/acpx,而非 /codex,也不是原生子代理程式
OpenClaw 只會在 ACP 已啟用、可分派,且由已載入的 runtime backend 支援時, 才向代理程式宣告 ACP spawn 指引。如果 ACP 不可用, 系統提示與 Plugin skills 不應教導代理程式 ACP 路由。

僅 Codex 的部署

當你需要證明每個嵌入式代理程式回合都使用 Codex 時,請強制使用 Codex harness。 明確的 Plugin runtime 預設沒有 PI fallback,因此 fallback: "none" 是選用的,但通常很適合作為文件說明:
{
  agents: {
    defaults: {
      model: "openai/gpt-5.5",
      agentRuntime: {
        id: "codex",
        fallback: "none",
      },
    },
  },
}
環境覆寫:
OPENCLAW_AGENT_RUNTIME=codex openclaw gateway run
在強制使用 Codex 時,如果 Codex Plugin 已停用、 app-server 太舊,或 app-server 無法啟動,OpenClaw 會提早失敗。只有在你有意讓 PI 處理 缺失的 harness 選擇時,才設定 OPENCLAW_AGENT_HARNESS_FALLBACK=pi

逐代理程式 Codex

你可以讓一個代理程式僅使用 Codex,同時讓預設代理程式保留一般 自動選擇:
{
  agents: {
    defaults: {
      agentRuntime: {
        id: "auto",
        fallback: "pi",
      },
    },
    list: [
      {
        id: "main",
        default: true,
        model: "anthropic/claude-opus-4-6",
      },
      {
        id: "codex",
        name: "Codex",
        model: "openai/gpt-5.5",
        agentRuntime: {
          id: "codex",
          fallback: "none",
        },
      },
    ],
  },
}
使用一般 session 命令切換代理程式與模型。/new 會建立新的 OpenClaw session,而 Codex harness 會視需要建立或繼續其 sidecar app-server thread。/reset 會清除此 thread 的 OpenClaw session binding, 並讓下一個回合再次從目前設定解析 harness。

模型探索

預設情況下,Codex Plugin 會向 app-server 詢問可用模型。如果 探索失敗或逾時,則會對以下項目使用內建 fallback catalog:
  • GPT-5.5
  • GPT-5.4 mini
  • GPT-5.2
你可以在 plugins.entries.codex.config.discovery 下調整探索:
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          discovery: {
            enabled: true,
            timeoutMs: 2500,
          },
        },
      },
    },
  },
}
當你希望啟動時避免探測 Codex,並固定使用 fallback catalog 時,請停用探索:
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          discovery: {
            enabled: false,
          },
        },
      },
    },
  },
}

App-server 連線與政策

預設情況下,Plugin 會在本機啟動 OpenClaw 管理的 Codex binary:
codex app-server --listen stdio://
受管理的 binary 會宣告為內建 Plugin runtime dependency,並與其餘 codex Plugin dependencies 一起 staged。這會讓 app-server 版本繫結到內建 Plugin,而不是本機剛好安裝的任何獨立 Codex CLI。 只有在你有意執行不同 executable 時,才設定 appServer.command 預設情況下,OpenClaw 會以 YOLO 模式啟動本機 Codex harness sessions: approvalPolicy: "never"approvalsReviewer: "user",以及 sandbox: "danger-full-access"。這是用於自主 Heartbeat 的受信任本機操作者姿態: Codex 可以使用 shell 與網路工具,而不會因無人在場回應的原生 approval prompts 而停止。 若要選擇使用 Codex guardian-reviewed approvals,請設定 appServer.mode: "guardian"
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          appServer: {
            mode: "guardian",
            serviceTier: "fast",
          },
        },
      },
    },
  },
}
Guardian 模式使用 Codex 的原生 auto-review approval path。當 Codex 要求 離開 sandbox、寫入 workspace 外部,或新增像網路 存取這類權限時,Codex 會將該 approval request 路由到原生 reviewer,而不是 人類提示。reviewer 會套用 Codex 的風險框架,並核准或拒絕 該特定要求。當你需要比 YOLO 模式更多防護措施,但仍需要無人值守的代理程式 持續推進時,請使用 Guardian。 guardian preset 會展開為 approvalPolicy: "on-request"approvalsReviewer: "auto_review",以及 sandbox: "workspace-write"。 個別 policy fields 仍會覆寫 mode,因此進階部署可以將 preset 與明確選項混用。較舊的 guardian_subagent reviewer value 仍會作為相容性別名接受,但新設定應使用 auto_review 對於已在執行的 app-server,請使用 WebSocket transport:
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          appServer: {
            transport: "websocket",
            url: "ws://127.0.0.1:39175",
            authToken: "${CODEX_APP_SERVER_TOKEN}",
            requestTimeoutMs: 60000,
          },
        },
      },
    },
  },
}
Stdio app-server launches 預設會繼承 OpenClaw 的 process environment, 但 OpenClaw 擁有 Codex app-server account bridge。Auth 會依照以下 順序選取:
  1. 代理程式的明確 OpenClaw Codex auth profile。
  2. app-server 現有的 account,例如本機 Codex CLI ChatGPT sign-in。
  3. 僅限本機 stdio app-server launches,當沒有 app-server account,且仍需要 OpenAI auth 時,使用 CODEX_API_KEY,接著是 OPENAI_API_KEY
當 OpenClaw 看到 ChatGPT subscription-style Codex auth profile 時,會從 spawned Codex child process 中移除 CODEX_API_KEYOPENAI_API_KEY。這會讓 Gateway-level API keys 仍可供 embeddings 或直接 OpenAI models 使用,而不會意外讓原生 Codex app-server turns 透過 API 計費。明確的 Codex API-key profiles 與本機 stdio env-key fallback 會使用 app-server login,而不是繼承的 child-process env。WebSocket app-server connections 不會收到 Gateway env API-key fallback;請使用明確的 auth profile,或 遠端 app-server 自己的 account。 如果部署需要額外的環境隔離,請將那些變數加入 appServer.clearEnv
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          appServer: {
            clearEnv: ["CODEX_API_KEY", "OPENAI_API_KEY"],
          },
        },
      },
    },
  },
}
appServer.clearEnv 只會影響 spawned Codex app-server child process。 支援的 appServer 欄位:
欄位預設值意義
transport"stdio""stdio" 會產生 Codex;"websocket" 會連線到 url
command受管理的 Codex 二進位檔stdio 傳輸使用的可執行檔。保留未設定即可使用受管理的二進位檔;只有在明確覆寫時才設定。
args["app-server", "--listen", "stdio://"]stdio 傳輸使用的引數。
url未設定WebSocket app-server URL。
authToken未設定WebSocket 傳輸使用的 Bearer 權杖。
headers{}額外的 WebSocket 標頭。
clearEnv[]OpenClaw 建立其繼承環境之後,從產生的 stdio app-server 程序中移除的額外環境變數名稱。
requestTimeoutMs60000app-server 控制平面呼叫的逾時。
mode"yolo"YOLO 或守護程式審查執行的預設設定。
approvalPolicy"never"傳送到執行緒啟動/恢復/回合的原生 Codex 核准原則。
sandbox"danger-full-access"傳送到執行緒啟動/恢復的原生 Codex sandbox 模式。
approvalsReviewer"user"使用 "auto_review" 讓 Codex 審查原生核准提示。guardian_subagent 仍是舊版別名。
serviceTier未設定選用的 Codex app-server 服務層級:"fast""flex"null。無效的舊版值會被忽略。
OpenClaw 擁有的動態工具呼叫會與 appServer.requestTimeoutMs 分開限制:每個 Codex item/tool/call 請求都必須在 30 秒內收到 OpenClaw 回應。逾時時,OpenClaw 會在支援的情況下中止工具訊號,並將失敗的動態工具回應傳回給 Codex,讓該回合可以繼續,而不是讓工作階段停留在 processing OpenClaw 回應 Codex 回合範圍的 app-server 請求後,測試框架也預期 Codex 以 turn/completed 完成原生回合。如果 app-server 在該回應後靜默 60 秒,OpenClaw 會盡力中斷 Codex 回合、記錄診斷逾時,並釋放 OpenClaw 工作階段通道,讓後續聊天訊息不會排在過期的原生回合後方。 環境覆寫仍可用於本機測試:
  • OPENCLAW_CODEX_APP_SERVER_BIN
  • OPENCLAW_CODEX_APP_SERVER_ARGS
  • OPENCLAW_CODEX_APP_SERVER_MODE=yolo|guardian
  • OPENCLAW_CODEX_APP_SERVER_APPROVAL_POLICY
  • OPENCLAW_CODEX_APP_SERVER_SANDBOX
appServer.command 未設定時,OPENCLAW_CODEX_APP_SERVER_BIN 會略過受管理的二進位檔。 OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1 已移除。請改用 plugins.entries.codex.config.appServer.mode: "guardian",或使用 OPENCLAW_CODEX_APP_SERVER_MODE=guardian 進行一次性本機測試。可重複部署時偏好使用設定,因為它會將 Plugin 行為與其餘 Codex 測試框架設定保留在同一個已審查檔案中。

電腦使用

電腦使用在自己的設定指南中說明: Codex 電腦使用 簡短版本:OpenClaw 不會內建桌面控制應用程式,也不會自行執行桌面動作。它會準備 Codex app-server、驗證 computer-use MCP 伺服器可用,然後讓 Codex 在 Codex 模式回合期間處理原生 MCP 工具呼叫。 若要在 Codex 市集流程之外直接存取 TryCua 驅動程式,請使用 openclaw mcp set cua-driver '{"command":"cua-driver","args":["mcp"]}' 註冊 cua-driver mcp。請參閱 Codex 電腦使用,了解 Codex 擁有的電腦使用與直接 MCP 註冊之間的差異。 最小設定:
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          computerUse: {
            autoInstall: true,
          },
        },
      },
    },
  },
  agents: {
    defaults: {
      model: "openai/gpt-5.5",
      agentRuntime: {
        id: "codex",
        fallback: "none",
      },
    },
  },
}
可從命令介面檢查或安裝設定:
  • /codex computer-use status
  • /codex computer-use install
  • /codex computer-use install --source <marketplace-source>
  • /codex computer-use install --marketplace-path <path>
電腦使用僅適用於 macOS,且 Codex MCP 伺服器能控制應用程式之前,可能需要本機作業系統權限。如果 computerUse.enabled 為 true 且 MCP 伺服器無法使用,Codex 模式回合會在線程啟動前失敗,而不是在沒有原生電腦使用工具的情況下靜默執行。請參閱 Codex 電腦使用,了解市集選項、遠端目錄限制、狀態原因和疑難排解。 computerUse.autoInstall 為 true 時,如果 Codex 尚未探索到本機市集,OpenClaw 可以從 /Applications/Codex.app/Contents/Resources/plugins/openai-bundled 註冊標準內建的 Codex Desktop 市集。變更執行階段或電腦使用設定後,請使用 /new/reset,讓現有工作階段不要保留舊的 PI 或 Codex 執行緒繫結。

常見配方

使用預設 stdio 傳輸的本機 Codex:
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
      },
    },
  },
}
僅限 Codex 的測試框架驗證:
{
  agents: {
    defaults: {
      model: "openai/gpt-5.5",
      agentRuntime: {
        id: "codex",
      },
    },
  },
  plugins: {
    entries: {
      codex: {
        enabled: true,
      },
    },
  },
}
守護程式審查的 Codex 核准:
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          appServer: {
            mode: "guardian",
            approvalPolicy: "on-request",
            approvalsReviewer: "auto_review",
            sandbox: "workspace-write",
          },
        },
      },
    },
  },
}
具有明確標頭的遠端 app-server:
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          appServer: {
            transport: "websocket",
            url: "ws://gateway-host:39175",
            headers: {
              "X-OpenClaw-Agent": "main",
            },
          },
        },
      },
    },
  },
}
模型切換仍由 OpenClaw 控制。當 OpenClaw 工作階段附加到現有 Codex 執行緒時,下一個回合會再次將目前選取的 OpenAI 模型、供應商、核准原則、sandbox 和服務層級傳送到 app-server。從 openai/gpt-5.5 切換到 openai/gpt-5.2 會保留執行緒繫結,但要求 Codex 使用新選取的模型繼續。

Codex 命令

內建 Plugin 會將 /codex 註冊為已授權的斜線命令。它是通用命令,適用於任何支援 OpenClaw 文字命令的通道。 常見形式:
  • /codex status 顯示即時 app-server 連線能力、模型、帳戶、速率限制、MCP 伺服器和 Skills。
  • /codex models 列出即時 Codex app-server 模型。
  • /codex threads [filter] 列出最近的 Codex 執行緒。
  • /codex resume <thread-id> 將目前 OpenClaw 工作階段附加到現有 Codex 執行緒。
  • /codex compact 要求 Codex app-server 壓縮附加的執行緒。
  • /codex review 針對附加的執行緒啟動 Codex 原生審查。
  • /codex diagnostics [note] 在傳送附加執行緒的 Codex 診斷意見回饋前先詢問。
  • /codex computer-use status 檢查已設定的電腦使用 Plugin 和 MCP 伺服器。
  • /codex computer-use install 安裝已設定的電腦使用 Plugin 並重新載入 MCP 伺服器。
  • /codex account 顯示帳戶和速率限制狀態。
  • /codex mcp 列出 Codex app-server MCP 伺服器狀態。
  • /codex skills 列出 Codex app-server Skills。

常見除錯工作流程

當 Codex 支援的代理程式在 Telegram、Discord、Slack 或其他通道中做出令人意外的事情時,請從發生問題的對話開始:
  1. 執行 /diagnostics bad tool choice after image upload,或輸入另一則描述你所見情況的簡短備註。
  2. 核准一次診斷請求。核准會建立本機 Gateway 診斷 zip,且因為工作階段正在使用 Codex 測試框架,也會將相關的 Codex 意見回饋套件傳送到 OpenAI 伺服器。
  3. 將完成的診斷回覆複製到錯誤報告或支援討論串。它包含本機套件路徑、隱私摘要、OpenClaw 工作階段 ID、Codex 執行緒 ID,以及每個 Codex 執行緒的 Inspect locally 行。
  4. 如果你想自行偵錯該次執行,請在終端機中執行印出的 Inspect locally 命令。它看起來像 codex resume <thread-id>,會開啟原生 Codex 執行緒,讓你可以檢查對話、在本機繼續,或詢問 Codex 為何選擇特定工具或計畫。
只有在你特別想為目前附加的執行緒上傳 Codex 意見回饋,而不需要完整 OpenClaw Gateway 診斷套件時,才使用 /codex diagnostics [note]。對於大多數支援報告,/diagnostics [note] 是較佳的起點,因為它會在同一則回覆中將本機 Gateway 狀態與 Codex 執行緒 ID 關聯起來。請參閱 診斷匯出,了解完整隱私模型與群組聊天行為。 核心 OpenClaw 也會公開僅限擁有者的 /diagnostics [note],作為一般 Gateway 診斷命令。其核准提示會顯示敏感資料前言、連結到 診斷匯出,並每次都透過明確的執行核准請求 openclaw gateway diagnostics export --json。請勿使用允許全部規則核准診斷。核准後,OpenClaw 會傳送可貼上的報告,其中包含本機套件路徑與清單摘要。當作用中的 OpenClaw 工作階段使用 Codex 測試框架時,同一個核准也會授權將相關的 Codex 意見回饋套件傳送到 OpenAI 伺服器。核准提示會說明將傳送 Codex 意見回饋,但不會在核准前列出 Codex 工作階段或執行緒 ID。 如果 /diagnostics 是由群組聊天中的擁有者叫用,OpenClaw 會保持共享通道乾淨:群組只會收到簡短通知,而診斷前言、核准提示和 Codex 工作階段/執行緒 ID 會透過私人核准路由傳送給擁有者。如果沒有私人擁有者路由,OpenClaw 會拒絕群組請求,並要求擁有者從 DM 執行。 已核准的 Codex 上傳會呼叫 Codex app-server feedback/upload,並要求 app-server 在可用時,為每個列出的對話串和衍生的 Codex 子對話串包含記錄。 上傳會透過 Codex 一般的意見回饋路徑送往 OpenAI 伺服器;如果該 app-server 中停用了 Codex 意見回饋,命令會回傳 app-server 錯誤。完成的診斷回覆會列出已傳送對話串的頻道、 OpenClaw 工作階段 ID、Codex 對話串 ID,以及本機 codex resume <thread-id> 命令。如果你拒絕或忽略核准,OpenClaw 不會印出那些 Codex ID。這次上傳不會取代本機 Gateway 診斷匯出。 /codex resume 會寫入與 harness 用於一般回合相同的附屬繫結檔案。 在下一則訊息中,OpenClaw 會恢復該 Codex 對話串,將目前選取的 OpenClaw 模型傳入 app-server,並保持延伸歷史記錄啟用。

從 CLI 檢查 Codex 對話串

理解一次不良 Codex 執行的最快方式,通常是直接開啟原生 Codex 對話串:
codex resume <thread-id>
當你在頻道對話中注意到錯誤,並想檢查有問題的 Codex 工作階段、在本機繼續該工作階段,或詢問 Codex 為什麼做出某個 工具或推理選擇時,請使用這個命令。最簡單的路徑通常是先執行 /diagnostics [note]:核准後,完成的報告會列出 每個 Codex 對話串,並印出一個 Inspect locally 命令,例如 codex resume <thread-id>。你可以將該命令直接複製到終端機中。 你也可以從目前聊天的 /codex binding,或近期 Codex app-server 對話串的 /codex threads [filter] 取得對話串 ID,然後在 shell 中執行相同的 codex resume 命令。 這個命令介面需要 Codex app-server 0.125.0 或更新版本。如果未來或自訂 app-server 未公開該 JSON-RPC 方法,個別控制方法會回報為 unsupported by this Codex app-server

Hook 邊界

Codex harness 有三層 hook:
層級擁有者目的
OpenClaw Plugin hooksOpenClaw跨 PI 和 Codex harness 的產品/Plugin 相容性。
Codex app-server extension middlewareOpenClaw bundled plugins圍繞 OpenClaw 動態工具的每回合轉接器行為。
Codex native hooksCodex來自 Codex 設定的低階 Codex 生命週期與原生工具政策。
OpenClaw 不會使用專案或全域 Codex hooks.json 檔案來路由 OpenClaw Plugin 行為。對於受支援的原生工具與權限橋接, OpenClaw 會為 PreToolUsePostToolUsePermissionRequestStop 注入每個對話串的 Codex 設定。其他 Codex hooks,例如 SessionStartUserPromptSubmit,仍然是 Codex 層級的控制;它們不會在 v1 合約中作為 OpenClaw Plugin hooks 公開。 對於 OpenClaw 動態工具,OpenClaw 會在 Codex 要求呼叫後執行該工具, 因此 OpenClaw 會在 harness 轉接器中觸發它所擁有的 Plugin 和 middleware 行為。對於 Codex 原生工具,Codex 擁有標準工具記錄。 OpenClaw 可以鏡像選定事件,但除非 Codex 透過 app-server 或原生 hook callbacks 公開該操作,否則它無法重寫原生 Codex 對話串。 Compaction 和 LLM 生命週期投影來自 Codex app-server 通知與 OpenClaw 轉接器狀態,而不是原生 Codex hook 命令。 OpenClaw 的 before_compactionafter_compactionllm_inputllm_output 事件是轉接器層級的觀察結果,不是逐位元組捕捉 Codex 內部請求或 Compaction 承載。 Codex 原生 hook/startedhook/completed app-server 通知 會投影為 codex_app_server.hook 代理事件,用於軌跡與偵錯。 它們不會叫用 OpenClaw Plugin hooks。

V1 支援合約

Codex 模式不是在底層換成不同模型呼叫的 PI。Codex 擁有更多 原生模型迴圈,而 OpenClaw 會圍繞該邊界調整其 Plugin 和工作階段介面。 Codex runtime v1 支援:
介面支援情況原因
透過 Codex 的 OpenAI 模型迴圈支援Codex app-server 擁有 OpenAI 回合、原生對話串恢復,以及原生工具延續。
OpenClaw 頻道路由與傳遞支援Telegram、Discord、Slack、WhatsApp、iMessage 和其他頻道保持在模型 runtime 外部。
OpenClaw 動態工具支援Codex 會要求 OpenClaw 執行這些工具,因此 OpenClaw 仍在執行路徑中。
提示與內容 Plugin支援OpenClaw 會在啟動或恢復對話串之前建構提示覆蓋層,並將內容投影到 Codex 回合中。
內容引擎生命週期支援組裝、擷取或回合後維護,以及內容引擎 Compaction 協調會針對 Codex 回合執行。
動態工具 hooks支援before_tool_callafter_tool_call 和工具結果 middleware 會圍繞 OpenClaw 擁有的動態工具執行。
生命週期 hooks作為轉接器觀察結果支援llm_inputllm_outputagent_endbefore_compactionafter_compaction 會以真實的 Codex 模式承載觸發。
最終答案修訂閘門透過原生 hook 轉送支援Codex Stop 會轉送到 before_agent_finalizerevise 會要求 Codex 在最終化之前再進行一次模型傳遞。
原生 shell、patch 和 MCP 封鎖或觀察透過原生 hook 轉送支援Codex PreToolUsePostToolUse 會針對已承諾的原生工具介面轉送,包括 Codex app-server 0.125.0 或更新版本上的 MCP 承載。支援封鎖;不支援引數重寫。
原生權限政策透過原生 hook 轉送支援Codex PermissionRequest 可在 runtime 公開時透過 OpenClaw 政策路由。如果 OpenClaw 未回傳決策,Codex 會透過其一般 guardian 或使用者核准路徑繼續。
App-server 軌跡捕捉支援OpenClaw 會記錄它傳送給 app-server 的請求,以及它收到的 app-server 通知。
Codex runtime v1 不支援:
介面V1 邊界未來路徑
原生工具引數變更Codex 原生 pre-tool hooks 可以封鎖,但 OpenClaw 不會重寫 Codex 原生工具引數。需要 Codex hook/schema 支援替換工具輸入。
可編輯的 Codex 原生 transcript 歷史Codex 擁有標準原生對話串歷史。OpenClaw 擁有鏡像並可投影未來內容,但不應變更不受支援的內部資料。如果需要原生對話串手術,請新增明確的 Codex app-server API。
Codex 原生工具記錄的 tool_result_persist該 hook 會轉換 OpenClaw 擁有的 transcript 寫入,而不是 Codex 原生工具記錄。可以鏡像已轉換的記錄,但標準重寫需要 Codex 支援。
豐富的原生 Compaction 中繼資料OpenClaw 會觀察 Compaction 開始與完成,但不會收到穩定的保留/丟棄清單、token delta 或摘要承載。需要更豐富的 Codex Compaction 事件。
Compaction 介入目前 OpenClaw Compaction hooks 在 Codex 模式中屬於通知層級。如果 Plugin 需要否決或重寫原生 Compaction,請新增 Codex pre/post Compaction hooks。
逐位元組模型 API 請求捕捉OpenClaw 可以捕捉 app-server 請求與通知,但 Codex core 會在內部建構最終 OpenAI API 請求。需要 Codex model-request 追蹤事件或偵錯 API。

工具、媒體與 Compaction

Codex harness 只會變更低階的嵌入式代理執行器。 OpenClaw 仍會建構工具清單,並從 harness 接收動態工具結果。 文字、圖片、影片、音樂、TTS、核准,以及訊息工具輸出 會繼續透過一般 OpenClaw 傳遞路徑。 原生 hook 轉送刻意保持泛用,但 v1 支援合約 僅限於 OpenClaw 測試的 Codex 原生工具與權限路徑。在 Codex runtime 中,這包含 shell、patch 和 MCP PreToolUsePostToolUsePermissionRequest 承載。不要假設每個未來的 Codex hook 事件都是 OpenClaw Plugin 介面,除非 runtime 合約明確命名它。 對於 PermissionRequest,只有在政策做出決定時,OpenClaw 才會回傳明確允許或拒絕決策。 沒有決策的結果不是允許。Codex 會將它視為沒有 hook 決策,並落入其自身 guardian 或使用者核准路徑。 當 Codex 將 _meta.codex_approval_kind 標記為 "mcp_tool_call" 時,Codex MCP 工具核准徵求會透過 OpenClaw 的 Plugin 核准流程路由。Codex request_user_input 提示會傳回 來源聊天,而下一則已佇列的後續訊息會回答該原生 伺服器請求,而不是被導向為額外內容。其他 MCP 徵求 請求仍會以關閉方式失敗。 作用中執行佇列導向會對應到 Codex app-server turn/steer。使用預設的 messages.queue.mode: "steer" 時,OpenClaw 會在設定的安靜視窗內批次處理排入佇列的聊天訊息,並依抵達順序將它們作為一個 turn/steer 請求送出。舊版 queue 模式會送出個別的 turn/steer 請求。Codex 審查和手動 Compaction 回合可能會拒絕同一回合導向,在這種情況下,若所選模式允許後援,OpenClaw 會使用後續佇列。請參閱導向佇列 當所選模型使用 Codex harness 時,原生執行緒 Compaction 會委派給 Codex app-server。OpenClaw 會保留轉錄鏡像,用於頻道歷史、搜尋、/new/reset,以及日後切換模型或 harness。鏡像包含使用者提示、最終助理文字,以及 app-server 發出時的輕量 Codex 推理或計畫記錄。目前,OpenClaw 只會記錄原生 Compaction 的開始與完成訊號。它尚未公開人類可讀的 Compaction 摘要,或可稽核的清單來列出 Codex 在 Compaction 後保留了哪些項目。 因為 Codex 擁有標準原生執行緒,tool_result_persist 目前不會重寫 Codex 原生工具結果記錄。它只會在 OpenClaw 寫入由 OpenClaw 擁有的工作階段轉錄工具結果時套用。 媒體生成不需要 PI。圖片、影片、音樂、PDF、TTS 和媒體理解會繼續使用相符的供應商/模型設定,例如 agents.defaults.imageGenerationModelvideoGenerationModelpdfModelmessages.tts

疑難排解

Codex 未以一般 /model 供應商顯示: 對新組態而言這是預期行為。請選取具有 agentRuntime.id: "codex"openai/gpt-* 模型(或舊版 codex/* 參照),啟用 plugins.entries.codex.enabled,並檢查 plugins.allow 是否排除了 codex OpenClaw 使用 PI 而不是 Codex: 當沒有 Codex harness 宣告執行時,agentRuntime.id: "auto" 仍可使用 PI 作為相容性後端。測試時請設定 agentRuntime.id: "codex" 以強制選取 Codex。現在,強制 Codex runtime 會失敗,而不是回退到 PI,除非你明確設定 agentRuntime.fallback: "pi"。一旦選取 Codex app-server,其失敗會直接呈現,不需要額外的後援組態。 app-server 被拒絕: 請升級 Codex,讓 app-server 交握回報 0.125.0 或更新版本。同版本預發行版或附加建置尾碼的版本,例如 0.125.0-alpha.20.125.0+custom,都會被拒絕,因為 OpenClaw 測試的是穩定版 0.125.0 協定下限。 模型探索速度很慢: 請降低 plugins.entries.codex.config.discovery.timeoutMs,或停用探索。 WebSocket 傳輸立即失敗: 請檢查 appServer.urlauthToken,以及遠端 app-server 是否使用相同的 Codex app-server 協定版本。 非 Codex 模型使用 PI: 這是預期行為,除非你為該代理程式強制設定了 agentRuntime.id: "codex",或選取了舊版 codex/* 參照。一般 openai/gpt-* 和其他供應商參照在 auto 模式下會維持在其正常供應商路徑。如果你強制設定 agentRuntime.id: "codex",該代理程式的每個嵌入式回合都必須是 Codex 支援的 OpenAI 模型。 Computer Use 已安裝但工具未執行: 請從新的工作階段執行 /codex computer-use status。如果工具回報 Native hook relay unavailable,請使用 /new/reset;如果問題持續,請重新啟動 Gateway 以清除過時的原生 hook 註冊。如果 computer-use.list_apps 逾時,請重新啟動 Codex Computer Use 或 Codex Desktop,然後重試。

相關內容