dsh-codex-conductor:DSH 規劃驗收,WSL Codex 動手編碼

前言

在 DeepSeek Harness(DSH)裏,讓對話模型既拆任務又直接改倉庫,常見問題是:改動範圍容易漂、完成與否往往只靠模型自述。另一條路是把「寫代碼」交給專用 CLI,對話側只做規劃和核驗——但若缺少驗收標準、結構化彙報和任務臺賬,交接仍難復現。

下面介紹的 dsh-codex-conductor(維護者 xiaobaifly7)走後者:DSH 中的 agent 負責規劃與只讀覈驗;具體編碼由 WSL 內的 Codex CLI 在後臺執行。插件要求帶驗收標準派單,按條彙報結果,並通過工作區護欄把規劃端的寫操作擋在門外。當前版本 0.9.43(MIT 許可),歸類爲 工作流 插件;GitHub 星標爲 0。插件在 SkillHub 目錄 可檢索——該站點是社區插件目錄,與 DeepSeek / 幻方無官方從屬關係。

這是什麼

dsh-codex-conductor 是面向 Windows + WSL2 的 DSH 插件:Harness 通過 wsl.exe 調用隨包 Python runner(runner/codex_runner.py),在 WSL 裏啓動 Codex。規劃端用 codex_* 工具派活、查狀態、續接阻塞、獨立覈驗;Codex 側按 report.v2.schema.json 逐條對照驗收標準回報。DSH 版本要求 >=0.2.1-rc.2 <0.3.0;WSL 內需已安裝並登錄 Codex CLI,以及 Python 3.11+(runner 用 tomllib 讀取 Codex 配置)。

角色分工與核心能力

規劃端與執行端

README 的分工可以概括爲:

  1. 爲每個任務寫好驗收標準(acceptance,至少 1 條,每條至少 4 個字符)。
  2. 用 codex_run 派活,儘量給出 scope(具體文件或目錄,不支持通配符)。
  3. 不把 Codex 的自報當作完成證據,用只讀檢查逐條覈驗。
  4. 未通過時先用 codex_review 記錄證據,再用 codex_continue 在原權限下修正。

派活與臺賬工具

插件默認註冊十個 Codex 相關工具(配置 gemini 後額外註冊 gemini_write)。與日常流程關係最緊的有:

工具 作用概要
codex_run 把任務交給 WSL Codex;登記後臺任務後返回任務號。必填 task、acceptance、write(改文件傳 true,只讀調查傳 false)
codex_status / codex_output 查詢進度;分頁讀取報告、結果 JSON、上下文或日誌
codex_continue 回答阻塞或提交環境恢復依據,續接原線程,不重複派活
codex_review 規劃端逐條獨立覈驗,結論爲 verified / needs_changes / accepted_deviations
codex_jobs / codex_summary 分頁查歷史任務;按線程彙總多輪結果與未閉環事項
codex_cancel / codex_watch 取消 WSL 內 Codex 進程樹;安靜觀察後臺任務首次重要變化

若 agent preset 提供 DSH 後臺任務(jobs)服務,codex_run 啓動後會在任務表出現 Codex <job_id> 一行;結束時有摘要通知,完整內容可用 codex_output 或 job_output 讀取。任務在 WSL 後臺運行,Harness 側斷開等待不影響執行。

工作區護欄(可選)

默認不啓用護欄,只提供工具。在 cordis.patch.yml 裏配置 workspaces 後,對受保護工作區會拒絕 DSH agent 直接寫文件、跑任意代碼等工具調用,僅放行只讀覈驗類 shell 命令;結構化改寫仍應通過 codex_run 交給 Codex。README 還說明:若 agent 聲稱「已派 Codex」但本輪未調用 codex_* 且無後臺監控確認,插件會提醒補調或更正說法。

報告與覈驗

Codex 按驗收標準逐條彙報(met / not_met / blocked 等)。阻塞項在 v2 報告中有 blockers 字段(id / kind / message / question / resolution)。規劃端用 codex_review 寫 reviews.json,不改寫 Codex 原始 result.json。結果摘要示例形如:completed · 12 met / 1 blocked · 3 files · 148 s。

Gemini 文檔寫作(0.9.43,可選)

配置 gemini 後註冊 gemini_write:適合教程、文檔正文,源碼改動仍用 codex_run。需要本機已安裝並登錄 Antigravity CLI(agy.exe);未配置則不註冊該工具。

安裝與啓用

安裝前請自行閱讀 GitHub 倉庫 源碼與 MIT 許可證。插件隨 DSH 進程加載,以當前 DSH 權限運行;啓用 allowHostAccess 與 host_access=true 時 Codex 以 danger-full-access 運行,需審慎評估。

在 DSH「插件 → 添加插件」中填寫:

github:xiaobaifly7/dsh-codex-conductor

或用命令行(將 <profile> 換成實際 profile;桌面版建議用應用內插件頁安裝):

dsh plugin --profile <profile> add github:xiaobaifly7/dsh-codex-conductor

環境前提(摘自 README「要求」):

  • Windows + WSL2,DSH 運行在 Windows 上。
  • WSL 內 Codex CLI 已登錄,Python 3.11+ 可用。
  • DSH >=0.2.1-rc.2 <0.3.0。

維護者在 README 中記載的驗證環境包括 Windows 11、WSL Ubuntu 24.04、Codex CLI 0.154、DSH 桌面版 0.2.1-rc.2。

配置要點

在插件條目中按 id codex-conductor 覆蓋 config。最小示例如下(護欄 + 默認推理檔位):

- id: codex-conductor
  config:
    workspaces:
      - 'D:\work\my-project'
      - path: 'D:\work\monorepo'
        cwd: 'D:\work\monorepo\app'
    effort: high
    readOnlyEffort: medium
    serviceTier: fast

常用項包括:distro(WSL 發行版)、codexBin / codexHome、timeoutSeconds(默認 runner 每次嘗試 3600 秒)、idleTimeoutSeconds(默認 600)、retries(默認 2)、allowHostAccess(默認 false)、runnerHome、maxStorageMb、plannerPromptFile(規劃要求 Markdown,注入 agent 系統提示)、runtimeProfileFile(熱重載時指向實際 cordis.patch.yml 的 Windows 完整路徑)。

啓用 Gemini 時可在同一 id 下增加:

    gemini:
      command: 'C:\Users\apple\AppData\Local\agy\bin\agy.exe'
      proxy: 'http://127.0.0.1:7890'
      model: gemini-4-argon
      effort: medium
      timeoutSeconds: 600

command 必須是 agy 的絕對 Windows 路徑;素材與提示會發往 Google,需自行評估合規與網絡(無代理時須在配置中顯式填寫 proxy)。

典型用法

派單與續接

codex_run 調用時需至少包含自然語言 task、字符串數組 acceptance、布爾 write。可選 cwd、scope、writable_roots(沙箱內額外可寫目錄)、resume、effort、wait_seconds 等。只讀任務(write=false)以 ephemeral 運行,thread_id 通常爲 null;寫任務會對任務目錄加寫鎖,併發寫同一目錄時後續任務可能進入 lock_wait 排隊。

Codex 阻塞並拋出問題時,應先讓用戶在會話中作答,再調用續接。README 給出的形式如下:

codex_continue({"job_id":"J1","answers":[{"id":"choice","answer":"採用已確認的方案"}]})

環境恢復時在 resolution 中寫實際證據。續接不擴大 scope、不擅自增加寫權限。

覈驗與讀結果

作業結束後用 codex_output 按 job_id 分頁讀取(artifact 可選 report、result、context、review、stderr、events)。規劃端對照驗收標準做只讀檢查,再調用 codex_review 寫入獨立結論。需要同步等待時,對同一 job_id 調用 codex_status 並傳入正數 wait_seconds。

文檔章節(可選)

配置 gemini 後,可按 README 示例一章一章生成文檔:

gemini_write({"prompt":"根據素材寫第一章入門說明,事實不得超出素材。","sources":["notes.md"],"output":"chapter-01.md","cwd":"D:/work/course","max_chars":2500})

插件會讀迴文件、統計字數,並列出範圍外改動;同目錄有 Codex 寫任務在跑時會拒絕新的 Gemini 或可寫派單。

適用場景與注意

適合誰: 已在 Windows 上使用 DSH,並希望在 WSL 裏用 Codex CLI 做倉庫級改動;希望 Harness 側固定爲「拆任務 + 驗收」,且能接受驗收驅動、結構化 JSON 報告的工作流。

不太適合: 純 Linux 原生環境(package.json 的 os 爲 win32);沒有 WSL / Codex CLI 的團隊;期望規劃端在受保護工作區內直接改文件而不走 Codex 的場景(需關閉或縮小 workspaces 護欄範圍)。

運行中值得留意的行爲:

  • WSL 橋接超時或 bridge_error 時,應先 codex_status 再決定是否重派,避免重複作業。
  • WSL 重啓後 runner 可能將舊任務標爲 worker_died;可寫任務會覈對驗收與已落盤產物後再決定是否補做。
  • 默認不向 Codex 加載 config.toml 中的 MCP 與 hooks(除非 use_user_config=true)。
  • 0.9.42 起,派單前無法連接 WSL 時會說明原因並保留原有寫入範圍與續接檢查。

結尾

dsh-codex-conductor 把 DSH 生態裏「一切皆插件」的思路落到一條清晰鏈路上:規劃與驗收留在 Harness,編碼與逐條彙報交給 WSL Codex,並可選用護欄約束規劃端權限。若你要在 Windows 上試裝,可從目錄頁與倉庫覈對版本與配置後再啓用。

  • 目錄頁:https://www.skillhub.cn/plugins/xiaobaifly7/dsh-codex-conductor
  • GitHub:https://github.com/xiaobaifly7/dsh-codex-conductor
羽毛球分组比赛记分
小程序二维码

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

小夜