DeepSeek Harness 插件:dsh-llm-codex

前言

DeepSeek Harness(DSH)通过插件机制扩展能力。dsh-llm-codex 是一个社区维护的插件,旨在将 Codex CLI 注册为 DSH 的 LLM 提供者。它不依赖 DeepSeek 官方发布,而是通过挂载层介入,主要解决需要在 DSH 中直接调用本地 Codex 或使用 OpenAI 兼容接口的需求。

它是什么

这是一个 Codex 路由 插件:
* 核心逻辑:优先使用本地安装的 Codex CLI 发起请求;如果本地 CLI 不可用或配置了回退,则使用 OpenAI 兼容的 API。
* 定位:它将 Codex 暴露为文本生成路由,而非完整的智能体(Agent)。它不执行 DSH 的工具调用,也不将 Codex 的内部工具调用回传给 DSH。
* 维护者:zhangzhangco。

核心功能

  1. LLM 提供者注册:默认注册名为 codex-local 的提供者。
  2. 本地优先:通过 codex exec 命令在本地执行请求,复用机器上已存在的 Codex 登录状态(无需 API Key)。
  3. OpenAI 兼容回退:支持配置 OpenAI 兼容的接口作为备选方案。
  4. 模型目录:从 Codex 的缓存文件 $CODEX_HOME/models_cache.json 中读取模型列表,并同步其上下文窗口和推理级别信息。
  5. 沙箱支持:支持 Codex 自身的沙箱模式(只读、工作区写入、完全访问),通过 dsh.bundle.patch 挂载。

安装与启用

该插件通过 Git 仓库安装,并挂载到 web 配置文件中。执行以下命令即可完成安装:

dsh plugin --profile web add git+ssh://git@github.com/zhangzhangco/dsh-llm-codex.git

安装后,重启 web 配置文件,Codex 路由将出现在模型选择器中。

配置与沙箱

插件配置通过 cordis.patch.yml 挂载,关键参数如下:

- insert:
    - id: llm-codex
      name: dsh-llm-codex
      config:
        provider: codex-local
        sandbox: read-only
        transport: auto
        fallback:
          baseURL: ''
          apiKeyEnv: CODEX_FALLBACK_API_KEY

沙箱模式说明

插件的 sandbox 参数控制的是 Codex 自身的沙箱,与 DSH 的权限管理是独立的。

  • read-only(默认):只读模式,拒绝所有文件写入。
  • workspace-write:允许在会话工作区写入文件。
  • danger-full-access:完全访问模式,不使用 Codex 沙箱。

注意事项:
* macOS 限制:read-only 和 workspace-write 模式需要 macOS 的 Seatbelt(通过 sandbox-exec),否则会失败。
* 嵌套沙箱问题:如果主机本身已经运行在沙箱环境中(例如 Docker 容器或系统级沙箱),将无法再创建新的嵌套沙箱,此时所有沙箱化模式都会拒绝写入,只能使用 danger-full-access。

启用回退接口

若要启用 OpenAI 兼容的回退接口,需在配置中指定 baseURL 和环境变量名:

        fallback:
          baseURL: https://api.openai.com/v1
          apiKeyEnv: OPENAI_API_KEY

插件会优先读取凭证存储中的变量值,若未找到则读取进程环境变量。

适用场景与注意

  • 适用场景:当你需要在 DSH 中使用 Codex CLI 的能力,或者需要使用一个 OpenAI 兼容的本地/远程端点作为模型提供者时,此插件提供了便捷的路由层。
  • 注意:
    • 插件是故意标记为 private: true 的 npm 包,不会发布到 npm,仅通过 GitHub 分发。
    • 它使用 Codex 的沙箱边界,因此请根据宿主机的环境(特别是 macOS 或容器环境)谨慎选择 sandbox 级别。
    • 安装前请检查源码与许可证(MIT)。

参考资料

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

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

小夜