前言¶
給 AI 智能體派活時,人往往只能寫出「做個週報工具,彙總 GitLab 提交發飛書」這種零散描述。智能體真正需要的是目標、背景、交付物、約束、驗收標準、輸出格式,以及把缺失信息顯式列出來。自己做這件事要反覆補問、重寫,成本高且容易漏項。下面介紹的插件把這一步放進了 DeepSeek Harness(DSH)的輸入框:讀取草稿,複述意圖,補出交付物與約束,列出待確認問題,最後生成一份可直接執行的 Prompt 並寫回輸入框,用戶自己決定是否發送。
插件由 coreyleung-art 維護,倉庫爲 coreyleung-art/dsh-requirement-copilot,社區目錄歸類爲「工作流」。顯示名「幫我說 / Say It For Me」,技術包名、bundle id、命令與工具標識仍爲 requirement-copilot 系列,以兼容已有安裝與調用。截至 2026-11-05,倉庫 tag 爲 v1.8.0,GitHub 星標 0,許可爲 MIT。
它是什麼¶
一個 DSH Profile Bundle,分爲 Host 半(生成核心、命令、Agent 工具、skill)與 Client 半(Web GUI 面板、輸入框旁的 ✨ 按鈕)。運行配置爲空(config: {}),插件本身沒有 npm 依賴,不需要構建步驟;Client 只從宿主模塊表 require('react')。
它做四件事:
- 收集:把輸入框裏的草稿、聊天記錄、口頭需求當作素材;
- 分析補全:複述真實意圖,提取交付物、約束、假設,列出需要用戶補充的 gaps;
- 翻譯成任務:用固定模板生成一份可執行的 Prompt,並給出另一種語言版本;
- 寫回輸入框:一鍵插入或替換,不自動發送。
它不是聊天機器人,不替用戶發送消息;不做需求庫或版本庫管理;不內置本地模型,不繞過 DSH 的模型與憑據配置;不修改 Composer 之外的宿主 UI 結構。
核心功能¶
- 發送旁觸發按鈕:輸入框有內容時點一下等於一鍵整理;沒有待確認問題時直接寫回,有 gaps 時打開「開工前確認」門。輸入框爲空時點它會打開浮層面板。
- 浮層面板:粘貼或讀取草稿,選擇用途、詳略、語言、目標環境,生成後按「解析 / Prompt / 譯文」三個頁籤查看。面板標題欄可拖動,雙擊恢復默認位置。
- 三種插入方式:插入到光標處(可撤銷)、替換整個草稿(草稿非空時需二次確認)、複製當前頁籤內容。
- 恢復原草稿:一鍵整理覆蓋輸入框後,可恢復整理前的原文。
- 嚴格輸出契約:模型只輸出結構化字段,最終 Markdown 由 Host 的固定模板裝配,格式穩定。
- 一次自修復:結構化校驗不通過時,把錯誤回填給模型重試一次;仍失敗則報錯,不寫回輸入框。
- 失敗不覆蓋:截斷、非法 JSON、模型或通道失敗都不會覆蓋用戶輸入;浮層給出本地模板兜底,需手動插入。
- 一個操作、兩個調用方:
/refine-prompt命令(面板調用)與refine_requirementAgent 工具共享同一套生成核心與校驗。 - 澄清確認門:一次只出一題,可點選模型給的候選答案或補充說明;回答作爲
clarifications重新生成,不覆蓋原始描述。 - 質量自檢:Host 用固定規則打 0–100 的結構分,檢查結構、需求條目、驗收標準、約束、gaps、中英對齊、目標環境,不調用模型。
- 場景預設:通用 / 編碼 / 寫作 / 調研 / 數據 / 自動化,一鍵套用推薦的用途與詳略,並把場景提示寫進模型消息。
- 歷史版本:每個會話在瀏覽器本地保留最多 10 個生成結果,可載入、清空,也可逐行 diff 對比。
- 繼續優化:在結果上補充下一句要求,最多 5 輪;Host 把上一版 Prompt 作爲增量修改輸入,不從頭重寫。
- 生成在後臺運行:
1.8.0起生成任務跑在 Host 後臺,關面板、切會話、刷新頁面後可用 jobId 恢復查詢;每會話同時最多 1 個任務,全局最多 2 個。
選項¶
| 選項 | 取值 | 說明 |
|---|---|---|
用途 mode |
agent / spec |
agent 給智能體執行的任務指令;spec 是結構化需求規格,兩者使用不同的固定小節標題。 |
詳略 detail |
concise / standard / detailed |
控制各數組條數與 Prompt 長度,concise 輸出上限更低。 |
語言 language |
auto / zh / en |
auto 按輸入文本的中英文比例判斷;主語言確定後,另一種語言自動作爲譯文。 |
目標 target |
generic / claude-code / codex / cursor |
generic 爲通用 Markdown;後三者在標題後加一行固定的目標環境提示,不改變內容字段。 |
場景 scenario |
general / coding / writing / research / data / automation |
隻影響內容側重,不改變輸出結構。 |
安裝與啓用¶
公開發布包爲 dsh-requirement-copilot,已發佈到 npm(最新公開版本 1.6.1,1.8.0 已構建待發布)。安裝命令如下:
dsh plugin add dsh-requirement-copilot
也可以在 Plugin Manager 裏用 install_bundle,target 傳 dsh-requirement-copilot。從本地目錄安裝時,先把倉庫放到一個固定路徑,例如 D:\dsh-plugins\requirement-copilot,再在 Plugin Manager 裏選擇「從本地目錄安裝」,target 傳目錄的絕對路徑。
環境要求:DSH Desktop(Web GUI)profile,且組合中已掛載 commands Remote 與 llm 服務;插件自身沒有 npm 依賴,無需構建;運行測試需要 Node ≥ 20。README 記錄的開發與驗證環境是 Windows + DSH 0.2.1-rc.5 desktop profile + Node 24。
安裝後按下面幾項驗證:
node --test
node evals/run-eval.mjs
設置 → 插件裏能看到「幫我說 / Say It For Me」;會話輸入框工具行出現 ✨ 按鈕;輸入框爲空時點 ✨ 打開浮層;/ 命令目錄裏有 refine-prompt;倉庫內 node --test 的 27 個用例全部通過,node evals/run-eval.mjs 校驗 20 條質量評測集。卸載方式是在 Plugin Manager 中禁用或移除 bundle dsh-requirement-copilot。
典型用法¶
最直接的路徑:在輸入框寫一段口語化需求,保留原話不要先總結,點 ✨。沒有待確認問題時,Prompt 會寫回輸入框,浮層自動收起;有 gaps 時不會寫回,而是打開「開工前確認」,一次回答一題,點選候選答案或補充說明,最後一題的按鈕變爲「用回答重新生成」,也可以「跳過,直接使用當前結果」。之後檢查寫回的內容,自行編輯併發送,插件不會自動發送。如果整理過程中輸入框被清空,插件會中止本次生成並清理面板狀態;生成完成後若輸入框內容又被改過,插件不會覆蓋,而是提示「輸入框內容已變化」。
浮層面板適合手動整理:輸入框爲空時點 ✨ 打開,可以手動輸入/粘貼需求,或點「讀取輸入框」把當前草稿填入,切換用途 / 詳略 / 語言後點「生成 Prompt」。結果區三個頁籤分別是解析(需求複述、意圖、交付物、約束、假設、待補充問題)、Prompt(最終固定格式)、譯文(另一種語言版本)。插入時若輸入框已經是同一段內容,插件判定「已存在」並跳過,避免重複追加。
需要把整理能力交給模型時,使用 Agent 工具 refine_requirement。必填參數只有 rough(原始需求描述),其餘爲 context、previousPrompt、revisionNote、clarifications、mode、scenario、target、detail、language。例如讓模型把一句話需求整理成編程任務:
/refine-prompt {"rough":"給設置頁加深色模式開關","mode":"agent","scenario":"coding","target":"generic","detail":"standard","language":"auto"}
/refine-prompt 是面板專用的人機命令,輸入不寫入命令日誌,返回 {ok:true, data} 或 {ok:false, code, error}。需要從上一輪結果繼續時,把上一版 Prompt 與一句續寫要求(例如「驗收標準再嚴格一點,補上失敗處理」)一起給模型,Host 會做增量修改而不是重寫,最多 5 輪。
工作原理¶
數據流分兩路進入同一個生成核心:輸入框有文字時走 ✨ 按鈕,輸入框爲空時走浮層面板。Client 半負責組裝請求 JSON 與面板交互,Host 半負責調用模型、校驗結構化輸出、裝配最終 Markdown、執行質量自檢,並在出現 gaps 時返回給 Client 彈確認門。校驗只允許一次自修復重試,失敗則報錯且不寫回輸入框。
模型側還有一層 requirement-refine runtime skill(通過 ctx.skills.register(...) 註冊,不依賴文件系統 skill provider),modelInvocable: true、userInvocable: false,指導模型何時調用 refine_requirement、參數怎麼填、gaps 與失敗如何處理;用戶側入口仍只有 ✨ 面板與 /refine-prompt。
適用場景與注意¶
適合在 DSH 裏做需求整理的開發者:把口頭需求、聊天記錄、半成品草稿轉成可執行任務指令或需求規格,尤其是需要中英雙語輸出、需要顯式列出待確認假設的場合。它只在當前 DSH 進程權限下運行,能力邊界就是「整理並寫回 Prompt」,不改需求庫,也不替人發消息。
幾點需要注意:
- 安裝前先檢查源碼與許可證(MIT),源碼與分發包爲同一個名稱,但倉庫遠端是 Gitee 私有倉庫
coreyleung/requirement-copilot,npm 包是其主要分發途徑; - 它依賴宿主的
commandsRemote 與llm服務,模型、憑據與費用仍按 DSH 已有配置走,插件不內置模型; - 質量自檢只做結構檢查,不調用模型,也不代表人工評審,詳細評分標準見倉庫
evals/rubric.md; - 歷史版本存在瀏覽器
localStorage(key 前綴rcp-history:),只在本機保留最多 10 條,不同步、不上傳;後臺任務結果在 Host 內存緩存 30 分鐘,DSH 進程重啓後任務丟失,但完成結果已寫入會話歷史,可從歷史載入。
小結¶
它解決的問題很集中:把「給個大概想法」和「模型能穩定執行的任務定義」之間的缺口補上,並在寫回前用確認門把未確認的假設攔下來。命令、工具、skill 三個入口共享同一套生成核心與校驗,面板在輸入框旁完成整理與校驗,不自動發送。
目錄頁:https://www.skillhub.cn/plugins/coreyleung-art/dsh-requirement-copilot
倉庫:https://github.com/coreyleung-art/dsh-requirement-copilot