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 能力进行开发与测试。

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

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

小夜