dsh-agent-lead:DSH 帶隊模式插件

前言

在 DSH(DeepSeek Harness)的插件生態中,主 Agent 容易陷入具體實現細節,或者在派活時缺乏對模型選擇的控制權。dsh-agent-lead 插件旨在解決這個問題。它將主 Agent 的職責鎖定在規劃、拆解、分發和驗收上,將具體的代碼改動工作派發給後臺 subagent,並強制在每次派活時由用戶選擇模型。

是什麼

這是一個工作流類插件,用於構建“帶隊模式”。主 Agent 只負責監工,不直接執行寫文件等操作。所有改動類工作必須通過 assign 工具派給後臺 subagent。插件通過 /lead 命令控制模式,每次派活都會彈窗讓用戶選擇 subagent 使用的模型。

  • 維護者:JunguangJiang
  • 許可:MIT
  • 安裝位置:~/.dsh/plugins/agent-lead/

核心功能

  1. 角色分工:主 Agent 只負責理解、拆解、分發、驗收與監工。主 Agent 調用 write / edit / str_replace_editor 會被拒絕,改用 assign。
  2. 模型選擇:assign 工具沒有 model 參數,必須由用戶在彈窗中手動選擇模型。系統會根據當前主模型、常用歷史記錄和配置列表提供候選。
  3. 命令控制:
    • /lead:切換帶隊模式開關。
    • /lead off:強制退出帶隊模式。
    • /lead auto:開啓全自動派活(assign 不彈窗,自動採用上次選擇的模型)。
    • /lead manual:恢復手動選模型(assign 每次彈窗)。
  4. 職責範圍(Scope):每次 assign 必須聲明 scope(summary 和 paths),作爲子 agent 的“地盤契約”。系統支持路徑重疊預警,防止多個子 agent 操作同一文件。
  5. 隊列與狀態:支持 manage_queue 管理待執行消息,支持 lead_status 查看所有子 agent 的實時狀態、地盤地圖和派活臺賬。

安裝與啓用

插件安裝後,文件位於 ~/.dsh/plugins/agent-lead/。通過修改宿主配置文件 ~/.dsh/cordis.patch.yml 的 insert 行掛載,對所有 agent 預設生效。

在 cordis.patch.yml 中添加配置:

    - id: agent-lead
      name: '/home/jiangjunguang/.dsh/plugins/agent-lead/index.mjs'
      config:
        llmProvider: hfai
        rulesFile: /home/jiangjunguang/.dsh/captain-rules.md
        models:
          - id: anthropic/claude-opus-4.6
            label: Opus 4.6
            description: 強,貴,適合複雜實現與重構
          - id: deepseek-v4-flash
            label: DeepSeek-V4-Flash
            description: 快,便宜,適合批量與機械改動

典型用法

基礎命令

進入帶隊模式並提交任務:

/lead <任務描述>

切換模式狀態:

/lead              # 切換開關
/lead off          # 強制退出
/lead auto         # 開啓全自動派活
/lead manual       # 恢復手動選模型

結合任務提交:

/lead auto <任務>  # 開啓 auto 模式並提交
/lead manual <任務> # 恢復 manual 模式並提交

工具調用

派活:assign 是唯一的創建子 agent 途徑,必須聲明 scope。

assign({
  description: "任務簡述",
  prompt: "任務詳細說明...",
  scope: {
    summary: "負責數據預處理流水線",
    paths: ["src/preprocess/", "tests/preprocess/"]
  }
})

查看狀態:派活前必須調用 lead_status 查看地盤地圖。

lead_status        # 查看所有子 agent 狀態
lead_status <id>   # 查看特定子 agent

隊列管理:查看或操作待執行隊列。

manage_queue({
  action: "list"  // list, clear, remove, replace, push, push_front
})

推翻指令:需要打斷當前工作或徹底更換方向時使用。

redirect({
  subagentId: "xxx",
  message: "新指令...",
  clearQueue: true,
  scope: { ... } // 可選,用於更新職責範圍
})

工作流與決策邏輯

插件內部採用“簡版派工單”流程,並在派活前執行決策鏈:

  1. 規劃階段:Agent 勘察現狀,輸出簡版派工單(任務名 + 幹什麼),等待用戶確認。
  2. 決策鏈(路由):
    • R1 單一寫者:改動的文件與在編 subagent 地盤重疊,必須派給現有 agent。
    • R2 返工歸原主:驗收不合格發回原主,兩次仍不合格則止損換人。
    • R3 獨立評審必須新人:審查/驗收任務不能派給原作者。
    • R4 同域延續優先複用:基於已完成工作的延續,複用並只寫增量。
    • R5 獨立新域必新建:無重疊或需真並行,新建 subagent。
    • R6 污染即退役:被 redirect 兩次以上或跑偏,不再派新活,新建接班人。
  3. 執行階段:用戶確認後,根據決策結果選擇 assign(新建)、send_message(追加)或 redirect(推翻)。
  4. 驗收階段:子任務完成後,主 Agent 按下發指令的驗收標準讀文件、看 diff,向用戶彙報結論。

注意事項

  1. 每次派活都要人點一次:這是設計目標,不想點就使用 /lead off。
  2. 只派後臺可續 subagent:插件沒有前臺等待路徑,適合後臺任務。
  3. 子 agent 不能再次派活:subagent 不能使用 assign 往下派活,必須把決定寫回主 Agent。
  4. 數據持久性:派活臺賬爲內存態,進程重啓後丟失;派活歷史爲單文件(usageFile)。
  5. Scope 重疊:派活時系統會自動檢測路徑重疊,防止多 agent 修改同一文件。

結尾

dsh-agent-lead 通過強制的主 Agent 監工模式和用戶介入的模型選擇機制,解決了複雜任務中的責任歸屬和資源調度問題。適合需要嚴格代碼風格、多人協作或對模型成本敏感的團隊。

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

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

小夜