前言¶
在 DeepSeek Harness(DSH)裏讓 Agent 寫代碼,常見翻車點往往不是模型能力,而是需求沒說全:邊界、失敗處理、誰能用、刪了要不要找回——這些往往在實現中途纔想起來,導致返工。口頭囑咐「先別寫,多問幾句」很難穩定生效,因爲寫文件、跑命令的工具仍在 Agent 可見列表裏。
dsh-clarify-mode(維護者 xiaofeng-bm)是 DSH 生態裏的工作流類插件:通過 /clarify 進入需求澄清模式,在恢復寫文件能力之前,用多輪結構化問答把目標、不做項和驗收標準收攏成一份 spec。下文介紹它的機制、安裝方式與典型用法。DSH 社區插件目錄見 SkillHub 條目,與 DeepSeek / 幻方無官方從屬關係;插件以當前 DSH 進程權限運行,安裝前請自行查看 GitHub 源碼 與 MIT 許可證。
這是什麼¶
插件在 Harness 裏增加一種只問不寫的會話階段:用戶描述想做之事,Agent 一次一問(帶「爲什麼問」和默認選項),必要時解釋術語且不重複計輪;P0 盲區覆蓋且能寫出可判真假的驗收標準後出具需求確認卡,用戶確認後將 spec 寫入 .dsh/clarify/spec.md,再解鎖 write / edit / bash 等工具。
當前 package 版本爲 0.1.0,要求 dsh 版本 >=0.2.0-rc.2。
核心機制¶
只問不寫(硬約束)¶
澄清模式開啓後,write、edit、bash、subagent 等從模型可見工具表移除,不是靠提示詞約束,而是 Agent 根本看不見這些工具。README 註明模式內 subagent 亦被禁用,避免通過子 Agent 繞開限制。
會解釋、不佔輪次¶
用戶對題目中的名詞有疑問時,Agent 用不超過 3 行說明並給一個場景例子,然後用同一題 id 重問,不消耗提問輪次。若同一題解釋兩次仍不明白,會換更易理解的問法,而不是第三次長篇解釋。
問清爲止,有軟頂與硬頂¶
開問前,模型從盲區清單中篩 3–8 條本次必須問清的項並標 P0/P1。P0 全部覆蓋且驗收標準能寫出至少 3 條可驗證項即可提前收工;否則繼續問,最多 12 輪硬頂強制收尾(可通過配置調整,見下文)。收工時給出目標、明確不做的、驗收標準;用戶確認後落盤 spec 並恢復工具。
默認可通過 cordis.patch.yml 配置 softRounds: 5、maxRounds: 12:softRounds 爲軟節奏線,超過後提示回看待辦表但不截斷;maxRounds 爲硬頂。
安裝與啓用¶
插件市場:在 DSH 設置 → 插件市場 中搜索「澄清」。
手工安裝(README 原文命令,web profile 示例):
dsh plugin --profile web add dsh-clarify-mode
安裝目錄位於 ~/.dsh/profiles/<profile>/node_modules/dsh-clarify-mode/。行爲主要由包內的 policy.md、dimensions.md 決定,修改後下一輪生效,無需重啓進程。
典型用法¶
進入模式並說明需求:
/clarify 進入模式,然後說你的需求
/clarify 我想做個記賬小程序 進入模式並直接開始
/clarify off 退出,恢復寫文件能力
Web 界面下,模式開啓時輸入框左側會出現 澄清 · 已問 N ✕ 標籤,點擊可退出。每張問題卡提供「夠了,直接開始」,可不等問完即叫停。
確認需求卡選「確認,開始做」後,README 示例輸出爲:spec.md 已寫入 .dsh/clarify/spec.md,澄清模式退出,工具恢復,隨後進入實現階段。演示對話(記賬小程序、是否多人使用、軟刪除、導出等)見 項目 README。
配置與自定義¶
在 profile 的 cordis.patch.yml 中可補丁配置,例如:
- id: clarify-mode
name: "dsh-clarify-mode"
config:
softRounds: 5
maxRounds: 12
README 配置表摘要:
| 鍵 | 默認 | 說明 |
|---|---|---|
softRounds |
5 |
軟節奏線 |
maxRounds |
12 |
硬頂輪次 |
domain |
auto |
領域預設:web-app / miniapp / bot / script / api / auto |
specPath |
.dsh/clarify/spec.md |
確認後 spec 路徑 |
hiddenTools |
write, edit, bash, subagent, ... |
模式內隱藏的工具列表 |
customDimensions |
[] |
追加訪談維度 |
customRules |
'' |
追加協議規則 |
standbyHint |
true |
模式外是否注入提示 |
policy.md 控制訪談協議;dimensions.md 爲領域盲區清單,增刪行即可改變提問範圍。
適用場景與注意¶
適合:vibe coding 或 spec-driven 流程中,希望在改倉庫前先固化驗收標準;團隊習慣把「不做什麼」寫清楚的場景。
注意:
- 澄清狀態標籤僅 Web 客戶端注入;TUI / headless 下主要依賴
/clarify命令。 - 需求卡「確認」不計入輪次;選「再問幾個問題」會使預算加 2。
- 輪次按問題
id(q1…qN)計數,同一題重問沿用同一 id,不重複計數。 - 插件與本地代碼、Shell 同級權限,安裝前請審閱源碼與許可證。
結尾¶
dsh-clarify-mode 把「先澄清再實現」做成 Harness 內的硬約束工作流:問清 P0、出驗收清單、確認後寫 spec,再放開寫文件。目錄頁:SkillHub — dsh-clarify-mode;源碼與完整演示:github.com/xiaofeng-bm/dsh-clarify-mode。