dsh-embedded-codex: 在 DeepSeek Harness 中使用官方 Codex App Server

DeepSeek Harness(DSH)是一個基於插件的系統,旨在通過外部 Bundle 擴展其功能。dsh-embedded-codex 插件提供了在 DSH Web Session 中集成官方 Codex App Server 的能力。

插件介紹

該插件爲 DSH 增加了一個名爲“Codex 模式”的 Agent 預設。它允許 DSH Web Session 直接連接並使用官方 Codex App Server 的 Agent Runtime,同時複用當前機器上 ChatGPT Codex 的登錄狀態。

在運行邏輯上,插件實現了職責分工:Codex 負責 Agent 的模型循環、原生工具調用、沙盒環境、審批流程、歷史記錄隱藏和壓縮;而 DSH 繼續負責 Session 管理、Web/API 接口、對話軌跡展示以及持久化存儲。其他 DSH 原有的 Agent 預設不受此插件影響。

環境與安裝

在安裝前,請確保環境滿足以下要求:

  • Node.js: ^22.19.0 或 >=24.0.0
  • pnpm: 11.7.0
  • Git: 已安裝並初始化 submodule
  • ChatGPT Codex: 擁有權限並已登錄的賬戶

安裝流程如下:

  1. 生成安裝包
    先在插件目錄下運行打包命令,生成 .tgz 文件。
    pnpm pack
  1. 安裝插件
    使用 DSH CLI 將生成的 tarball 安裝到 Web Profile。
    dsh plugin --profile web add .\dsh-embedded-codex-0.1.0.tgz
  1. 啓動 Web
    安裝完成後啓動 DeepSeek Harness Web。
    dsh web

功能說明

  1. Agent 模式切換
    打開一個新的 DSH Session,在模式選擇中切換到“Codex 模式”。該模式下不需要配置 DEEPSEEK_API_KEY,而是直接使用 Codex 的憑據。

  2. 固定版本依賴
    插件內部強制鎖定使用 @openai/codex@0.149.1,不會調用系統 PATH 中其他版本的 Codex CLI。

  3. 職責分離

    • Codex 負責: 模型循環、原生工具、沙盒、審批、歷史記錄隱藏和壓縮。
    • DSH 負責: Session 管理、Web/API、對話軌跡、持久化存儲。
  4. 兼容實現
    插件提供了四個 Host provider 和兩個權限 UI owner 的兼容替代實現,以確保與現有 DSH 環境的集成。

權限模式

在 Codex 模式下,DSH 的權限選擇器會切換爲 Codex 的三種穩定模式。權限選擇記錄在 Session 中,並在下一個 turn/start 生效。

UI 模式 App Server 設置 行爲
請批准 / Ask for approval workspaceWrite + on-request + user 工作區內直接執行;聯網或越界時請求用戶批准
幫我批准 / Approve for me workspaceWrite + on-request + auto_review 沙盒邊界不變,符合條件的越界請求交給自動審覈
完全權限 / Full access dangerFullAccess + never 不使用 Codex 文件和網絡沙盒,不彈出審批

配置項

可以通過在 Profile patch 中覆蓋 embedded-codex 條目來自定義行爲。默認配置如下:

- id: embedded-codex
  config:
    requireChatgptLogin: true
    providerName: codex
    providerDisplayName: Codex
    defaultModelAlias: default
    env: {}
    processCwd: 當前進程目錄
    approvalPolicy: on-request
    sandbox: workspace-write
    disposeGraceMs: 3000
    stderrMaxBytes: 65536

開發與調試

如果是開發者,可以使用以下命令進行本地開發:

  • pnpm dev: 構建、確保本地開發鏈接並啓動隔離的 DSH Web。該命令會創建一個穩定的本地鏈接,後續修改插件代碼只會重新構建,不會重複安裝 Codex。
  • pnpm dev:install: 構建、打包並執行一次真實 tarball 安裝,用於驗證發佈邊界。
  • pnpm dev:web: 啓動已經安裝好的隔離 Web,不重新構建。
  • pnpm dev:remove: 從隔離 Web Profile 移除開發插件。
  • pnpm pack: 生成可安裝的 .tgz 文件。

如果需要單獨運行測試,可以使用:

pnpm exec vitest run tests/runtime.spec.ts

總結

dsh-embedded-codex 插件解決了在 DeepSeek Harness 中直接使用官方 Codex App Server 的集成難題。通過明確的職責劃分和兼容性實現,它允許開發者在不改動 DSH 核心代碼的前提下,利用 Codex 的 Agent Runtime 能力進行開發與測試。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜