前言¶
在 DSH(DeepSeek Harness)裏,輸入框草稿往往是一句隨手寫的需求:直接發送容易含糊,自己重寫到結構清晰又費時,還容易改走原意。常見做法是複製到別處讓模型改一版再貼回來,但 @引用、代碼塊、路徑和命令參數很容易丟,而且會多佔一輪會話上下文。
dsh-prompt-polish 是面向 DSH Web GUI 輸入卡的「二次優化」插件:在草稿仍留在輸入框的前提下,按輕 / 中 / 重三檔改寫,結果先進入預覽面板,確認後纔回填;未確認前草稿一字不改。優化過程不寫入 Session、不產生對話輪次。維護者爲 zhaosiw,許可證 MIT,歸類上常出現在模型推理 / Web UI 相關目錄。
這是什麼¶
一句話:把輸入框裏的一段話交給當前默認模型做三檔潤色,預覽滿意再寫回輸入框,並儘量保留 @引用、代碼與原有意圖。
- 名稱:
dsh-prompt-polish - 版本(package.json):
0.1.0 - 平臺:DSH Web GUI(
dshhub標註 surfaces 爲 host、web) - 目錄頁:https://www.skillhub.cn/plugins/zhaosiw/dsh-prompt-polish
- 源碼:https://github.com/zhaosiw/dsh-prompt-polish
核心功能¶
入口與交互¶
- 輸入卡片上方
Aa 優化按鈕 - 快捷鍵
Ctrl/Cmd + Alt + P - 瀏覽器會記住上次選用的檔位(默認「中度」);提交或裁決進行中時,相關按鈕自動置灰
三檔改寫¶
| 檔位 | 標識 | 做什麼 | 效果 |
|---|---|---|---|
| 輕度 | smooth |
修語法、錯別字、標點、贅詞、指代與銜接 | 結構與信息量不變,長度約在原文 ±15% 內 |
| 中度 | structure |
把隱含結構寫清楚:分點、範圍、輸出格式、禁止項等 | 信息點與原文一一對應,每句能在原文找到出處 |
| 重度 | instruction |
重組成可執行指令:目標 / 範圍 / 要求 / 禁止項 / 驗收標準 | 模糊表述收斂;缺的參數進入「待確認」 |
先預覽後回填¶
改寫結果只進入預覽面板;確認之前輸入框草稿不動。預覽框內可繼續編輯後再決定是否採用。
選區模式¶
在草稿中選中一段時,只優化選區;確認後只替換該選區(一次可撤銷的編輯)。
保真與邊界行爲¶
客戶端會校驗並儘量逐字保留:@引用、/命令、代碼塊與行內代碼、URL、路徑、環境變量、命令參數、標識符、數字。若有丟失,會在面板頂部列出。
其他約定:
- 優化使用設置裏的
agent-default-model;無可用模型時提示先在設置裏選擇模型 - 調用優先關閉 reasoning,被拒時自動退回默認檔
- 輸出協議爲
{"text","notes","assumptions"};超時 60 秒 - 重度檔文本更長時會按原文長度放大 token 預算;若被截斷會盡量從
"text"字段搶救正文,避免把裸 JSON 寫回輸入框
不寫會話¶
按 DSH 對「模型可見輸入應能從會話日誌重建」的約定,本插件故意不落 Session。需要留痕時請手動複製預覽內容。
安裝與啓用¶
前提:DSH Web GUI 已能正常使用,profile 目錄可寫,pnpm 在 PATH。
下面三步把插件加入當前正在使用的 profile(將 <profile> 換成 desktop 或 web):
# 1) 加進正在運行的那個 profile
pnpm --dir "$env:USERPROFILE\.dsh\profiles\<profile>" add "github:zhaosiw/dsh-prompt-polish"
# 2) 讓 profile 組合它:編輯 <profile>/package.json 的 dsh.profile.bundles,追加 "dsh-prompt-polish"
# 3) 觸發一次 profile 重組(宿主 dsh-hmr 監聽 patch/manifest,約 2~3 秒)
Add-Content "$env:USERPROFILE\.dsh\profiles\<profile>\cordis.patch.yml" "`n# touch $(Get-Date -Format o)"
宿主支持熱重組:一般無需重啓宿主,也無需刷新頁面(新 bundle 經 /plugins/events SSE 推到已打開頁面)。
倉庫提供冪等安裝腳本(自動探測在跑的 profile、改前備份、失敗回滾):
pwsh -File .\scripts\install.ps1
pwsh -File .\scripts\uninstall.ps1 # 回滾
node .\scripts\verify.mjs dsh-prompt-polish 61372 # 只讀驗證:模塊圖有該行 + bundle 200
說明:verify.mjs 中的端口號 61372 來自 README 示例,實際驗證時需與本機 GUI 端口一致。
兼容性(package.json / README):DSH >=0.2.0-rc.2,Node >=20;README 寫明在 DSH 0.2.1-rc.2(Web GUI / desktop profile)上實測,客戶端 slot 與 Remote 形態可能隨版本變化。
典型用法¶
- 在輸入框寫好草稿(可含
@引用、代碼塊、路徑等)。 - 點擊
Aa 優化或按Ctrl/Cmd + Alt + P,在面板中選擇輕度 / 中度 / 重度。 - 等待流式結果進入預覽;必要時在預覽框內再改幾個字。
- 確認後全文或選區回填;不滿意則關閉面板,草稿保持原樣。
- 僅需潤色一段時:先選中該段,再觸發優化,確認後只替換選區。
倉庫 test/cdp-verify.mjs 在 headless Chromium 下會跑完整鏈路(點按鈕、切重度、確認插入、快捷鍵、Esc 關閉等),可作爲行爲參考;該腳本需本機會話 cookie,使用 ~/.dsh/.credentials.yaml 簽名密鑰在本機簽發,不讀取模型密鑰。
工作原理(簡述)¶
插件拆成宿主半區與瀏覽器半區:lib/index.js 提供 promptPolish 服務並把草稿交給 LLM 流式改寫;lib/client.js 爲手寫成品 bundle,掛載輸入 dock、預覽面板與快捷鍵;瀏覽器通過 ctx.remote.promptPolish.polish({ text, level, locale }) 調用。草稿讀寫走宿主 inputActions(captureInsertion、insertText、setDraft 等)。更細的 slot、RPC 與提示詞規則見倉庫 docs/(spec.md、composer-api.md、host-llm.md、deploy.md)。
適用場景與注意¶
適合誰
- 經常在 DSH 輸入框裏寫長需求、希望結構更清晰但不想多佔會話輪次的使用者。
- 需要在改寫法的同時儘量保留技術細節(引用、代碼、路徑、參數)的場景。
使用前建議
- 插件在當前 DSH 進程權限下運行,安裝前請閱讀源碼與 MIT 許可證,確認符合你的環境策略。
- 社區目錄(如 SkillHub)是獨立站點,與 DeepSeek / 幻方無官方從屬關係;安裝命令以 README 爲準,勿憑插件名自行拼接未文檔化的命令。
- Lexical 渲染下,輸入框內換行在
innerText中可能呈現爲多行空行,段落結構仍以編輯器爲準(README 已知邊界)。 - 無可用默認模型時無法優化;重度檔輸出更長,仍可能受模型長度限制。
結尾¶
dsh-prompt-polish 把「潤色輸入草稿」收進 DSH 輸入卡:三檔可控、預覽可編輯、確認纔回填,並儘量保真技術片段。需要安裝細節與實現證據時,可直接查閱 GitHub README 與 docs/。
- 目錄頁:https://www.skillhub.cn/plugins/zhaosiw/dsh-prompt-polish
- GitHub:https://github.com/zhaosiw/dsh-prompt-polish