前言¶
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。
核心功能¶
- LLM 提供者註冊:默認註冊名爲
codex-local的提供者。 - 本地優先:通過
codex exec命令在本地執行請求,複用機器上已存在的 Codex 登錄狀態(無需 API Key)。 - OpenAI 兼容回退:支持配置 OpenAI 兼容的接口作爲備選方案。
- 模型目錄:從 Codex 的緩存文件
$CODEX_HOME/models_cache.json中讀取模型列表,並同步其上下文窗口和推理級別信息。 - 沙箱支持:支持 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)。
- 插件是故意標記爲