前言¶
在 DSH(DeepSeek Harness)的插件生態中,主 Agent 容易陷入具體實現細節,或者在派活時缺乏對模型選擇的控制權。dsh-agent-lead 插件旨在解決這個問題。它將主 Agent 的職責鎖定在規劃、拆解、分發和驗收上,將具體的代碼改動工作派發給後臺 subagent,並強制在每次派活時由用戶選擇模型。
是什麼¶
這是一個工作流類插件,用於構建“帶隊模式”。主 Agent 只負責監工,不直接執行寫文件等操作。所有改動類工作必須通過 assign 工具派給後臺 subagent。插件通過 /lead 命令控制模式,每次派活都會彈窗讓用戶選擇 subagent 使用的模型。
- 維護者:JunguangJiang
- 許可:MIT
- 安裝位置:
~/.dsh/plugins/agent-lead/
核心功能¶
- 角色分工:主 Agent 只負責理解、拆解、分發、驗收與監工。主 Agent 調用
write/edit/str_replace_editor會被拒絕,改用assign。 - 模型選擇:
assign工具沒有model參數,必須由用戶在彈窗中手動選擇模型。系統會根據當前主模型、常用歷史記錄和配置列表提供候選。 - 命令控制:
/lead:切換帶隊模式開關。/lead off:強制退出帶隊模式。/lead auto:開啓全自動派活(assign 不彈窗,自動採用上次選擇的模型)。/lead manual:恢復手動選模型(assign 每次彈窗)。
- 職責範圍(Scope):每次
assign必須聲明scope(summary 和 paths),作爲子 agent 的“地盤契約”。系統支持路徑重疊預警,防止多個子 agent 操作同一文件。 - 隊列與狀態:支持
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: { ... } // 可選,用於更新職責範圍
})
工作流與決策邏輯¶
插件內部採用“簡版派工單”流程,並在派活前執行決策鏈:
- 規劃階段:Agent 勘察現狀,輸出簡版派工單(任務名 + 幹什麼),等待用戶確認。
- 決策鏈(路由):
- R1 單一寫者:改動的文件與在編 subagent 地盤重疊,必須派給現有 agent。
- R2 返工歸原主:驗收不合格發回原主,兩次仍不合格則止損換人。
- R3 獨立評審必須新人:審查/驗收任務不能派給原作者。
- R4 同域延續優先複用:基於已完成工作的延續,複用並只寫增量。
- R5 獨立新域必新建:無重疊或需真並行,新建 subagent。
- R6 污染即退役:被 redirect 兩次以上或跑偏,不再派新活,新建接班人。
- 執行階段:用戶確認後,根據決策結果選擇
assign(新建)、send_message(追加)或redirect(推翻)。 - 驗收階段:子任務完成後,主 Agent 按下發指令的驗收標準讀文件、看 diff,向用戶彙報結論。
注意事項¶
- 每次派活都要人點一次:這是設計目標,不想點就使用
/lead off。 - 只派後臺可續 subagent:插件沒有前臺等待路徑,適合後臺任務。
- 子 agent 不能再次派活:subagent 不能使用
assign往下派活,必須把決定寫回主 Agent。 - 數據持久性:派活臺賬爲內存態,進程重啓後丟失;派活歷史爲單文件(
usageFile)。 - Scope 重疊:派活時系統會自動檢測路徑重疊,防止多 agent 修改同一文件。
結尾¶
dsh-agent-lead 通過強制的主 Agent 監工模式和用戶介入的模型選擇機制,解決了複雜任務中的責任歸屬和資源調度問題。適合需要嚴格代碼風格、多人協作或對模型成本敏感的團隊。