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)。

參考資料

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

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

小夜