dsh-codex-delegate:把執行全部委託給 Codex 子代理的 DSH Agent 預設

前言

在 DeepSeek Harness(DSH)裏跑 Agent 時,常見做法是主代理自己讀文件、跑命令、搜資料。任務一複雜,主會話上下文會被工具輸出堆滿,調度與執行也混在一起。若你更希望主代理只做理解需求、拆任務和驗收匯總,而把動手部分固定交給 Codex,就需要一個以「委託」爲中心的預設 bundle,而不是靠提示詞單獨約束。

下面介紹社區插件 dsh-codex-delegate(維護者 lidaqi001):它在 DSH 裏註冊名爲 Codex 委託 的 Agent 預設,實質工作通過 subagent_codex 完成,並在運行時用 guard 禁止主代理直接調用其它工具。

這是什麼

dsh-codex-delegate 是一個 DSH Agent 預設 bundle(npm 包名 dsh-codex-delegate,當前資料版本 1.0.2,許可證 MIT)。DSH Agent 預設 id 爲 codex。實現上是純 YAML 配置(cordis.patch.yml)加上一個很小的 Host 插件(index.js,約 1 KB),無需編譯。

裝上之後,新建會話在「Agent 預設」裏選擇 Codex 委託:主代理不再自己讀寫文件、跑命令、搜網頁,而是把每個任務派給 Codex 子代理執行,最後彙總結果。

插件歸類爲工作流,目錄頁見 skillhub.cn/plugins/lidaqi001/dsh-codex-delegate,源碼與說明見 GitHub 倉庫。

模式怎麼工作

預設由幾塊配置共同約束行爲,README 裏用表格歸納如下,此處按組成說明。

組成 作用
persona(complete: true) 該會話唯一的系統提示詞:只做調度,不直接動手;委派須自包含(子代理看不到會話、一次性、不接受追問);異步等待不輪詢;多階段先派第一步;結果先覈對驗收再彙報
subagent_codex(scoped) 唯一的「幹活」工具,maxDepth: provider-managed;指向 bundle 自帶 provider codex-delegate(permissionMode: approve-for-me),遮蔽全局同名工具
ask_user_question 需求有歧義時向用戶確認
todo_write 多步委派的進度跟蹤(只寫會話日誌)
codex-only-guard 工具級硬限制:除上述工具外,任何工具調用都會被拒絕
compaction 長會話裏委派結果持續累積時自動壓縮

預設裏只掛載委派、澄清、進度、壓縮四類能力,沒有 bash / 文件 / 搜索工具。profile 裏 Host 級註冊的全局工具(MCP、Agent Teams 等)仍可能出現在工具列表裏,但 codex-only-guard 會在執行時拒絕調用,並提示改爲委派。

README 說明:未用 ctx.tools.restrict 做可見性遮罩,是因爲 restrict 會把 preset 層註冊的 ask_user_question、todo_write 一併過濾;guard 按工具名拒絕調用,不誤傷 preset 自有工具,也不影響其它預設或其它會話。

安裝與啓用

在 DSH 會話裏用自然語言讓代理安裝(版本以資料爲準):

# 在 DSH 會話裏直接說:
幫我安裝 dsh-codex-delegate@1.0.2

代理會調用 plugin_manager 的 install_bundle,target 爲 dsh-codex-delegate(可帶版本號或裝 latest)。

裝完建議驗證:

  1. plugin_manager → list_plugins:應出現 preset-codex,且 enabled: true、fiberPhase: active。
  2. cordis_inspect_query → Config.listConfigs(name = @deepseek-ai/dsh-agent-preset)能看到 include:preset-codex。
  3. 新建會話 →「Agent 預設」選 Codex 委託 → 給一個需要動手的任務,確認主代理只派發、不自己執行。

卸載:plugin_manager → remove_bundle,target dsh-codex-delegate;或在設置 → 插件裏停用/移除。

前置條件

安裝前需滿足 README 列出的條件:

  1. DeepSeek Harness ^0.2.2-rc.1(見 peerDependencies)。
  2. profile 裏已安裝 codex 子代理 bundle @deepseek-ai/dsh-subagent-codex。本 bundle 在 Host 層插入 provider codex-delegate;若該依賴無法解析,provider 與委派工具都不會註冊。
  3. codex CLI 已安裝且已登錄(codex login status 顯示已登錄,或已配置等效認證)。子代理用的模型、provider、是否免審批,由本機 codex 原生配置決定。
  4. 通過 link: 或 registry 安裝均可;若用 link:,目錄不要移動或刪除。

典型用法

啓用 Codex 委託 預設後,與普通 Agent 會話的區別在於交互方式:你描述目標,主代理拆成自包含的子任務文案,調用 subagent_codex 執行;有歧義時用 ask_user_question;多步委派可用 todo_write 記進度。你不應期望主代理在本預設下直接編輯倉庫或執行 shell——這類調用會被 codex-only-guard 拒絕。

連通性自檢:委派一個簡單任務(README 建議例如 echo),確認子代理能返回且權限與沙箱符合預期。

本地開發與 patch 迭代(維護者流程,摘自 README):

# 裝進當前 profile(目錄形式,改完即時生效)
# 在 DSH 裏:幫我安裝 /abs/path/to/dsh-codex-delegate

npm pack           # 打 tarball(install_bundle 也支持 .tgz)

改 cordis.patch.yml 後重新 install_bundle;profile 若配了 patchReload: live,新會話即生效。

可調項與權限

允許列表:codex-only-guard 的 allowed 可改(默認 subagent_codex、ask_user_question、todo_write)。若去掉澄清或進度工具,需同時刪掉對應插件行。

codex 權限與沙箱:permissionMode 寫在 provider 行(subagent-codex-delegate),不是工具行:

  • approve-for-me(當前默認):approvalPolicy: on-request + 自動審批 + sandbox: workspace-write → 工作區可寫,無人值守也能跑;越界操作走 codex 自動審批。
  • never:實測爲只讀沙箱,工作區內也無法寫文件,僅讀/檢索/聯網可用。
  • dangerously-bypass-approvals-and-sandbox:無審批、全盤可寫,慎用。

~/.codex/config.toml 仍會疊加,例如 network_access、模型選擇等。

若只想保留委派:去掉 tool-todo、tool-ask-user,並刪掉 persona 裏對應規則。

DSH 大版本升級後,需覈對 patch 裏的包名與字段;codex 大版本變更可能影響 permissionMode 映射,升級後應再跑一次連通性驗證。

適用場景與注意

適合誰:希望 DSH 主會話保持「項目經理」角色、統一用 Codex 做實現與驗證的團隊或個人;已有 @deepseek-ai/dsh-subagent-codex 與可用 codex CLI 的環境。

注意:

  • 插件與 DSH 進程同權限運行;安裝前請閱讀倉庫源碼與 MIT 許可證,自行判斷是否信任維護者與依賴鏈。
  • 社區目錄 skillhub.cn 獨立於 DeepSeek / 幻方,並非官方應用商店;DSH 生態遵循「一切皆插件」,本 bundle 是其中一種工作流預設。
  • 委派任務必須一次寫清:子代理不能在中途向用戶追問,決策要提前寫進任務說明。

結尾

dsh-codex-delegate 把「全部交給 codex」從提示詞約束升級爲運行時 guard,配合專用 provider 與完整 persona,適合需要清晰調度邊界的 DSH 用戶。進一步瞭解可訪問 插件目錄頁 與 GitHub:lidaqi001/dsh-codex-delegate。

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

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

小夜