前言¶
在 DeepSeek Harness(dsh)的網頁對話裏寫提示詞,草稿經常是先倒出來再說:口語、重複、中英夾雜、結構散。直接發送也能跑,但模型要先猜你的重點;自己再改一版又會打斷思路。
DeepSeek 官方把 Harness 的核心理念寫成「一切皆插件」:模型、工具、會話、UI 都可以在配置層增刪,不必改核心源碼。社區因此出現了一批只做一件小事的界面插件。dsh-composer-polish 做的就是輸入框這一側——草稿寫完,點工具行裏的 ✨ 按鈕,幾秒後潤色結果填回輸入框,你預覽、再改、再決定發不發。
本文按社區插件目錄頁、GitHub 倉庫 README / package.json / 源碼交叉覈對後整理。該目錄是獨立站點,與 DeepSeek、幻方無官方從屬關係,不能當成官方應用商店。Harness 目前仍是開發者預覽,插件可能隨核心升級出現不兼容變更。
這是什麼¶
dsh-composer-polish 是一款面向 DeepSeek Harness Web UI 的界面增強插件,由 GitHub 用戶 tianji-qingtian 維護,倉庫許可證爲 MIT。當前版本號在 package.json 和 git tag 上均爲 v0.1.3。截至 2026-08-17,GitHub API 顯示該倉庫 6 星;社區目錄頁同期展示爲 12 星,以下以 GitHub 一手數據爲準。
它解決的問題很窄:把當前輸入框裏的文字草稿改寫得更清楚、更好組織,然後寫回輸入框。倉庫 README 的定位是「不搞評測、不打分:草稿進,更好的草稿出」。它不會替你發出這條消息,也不會動圖片附件。
package.json 裏 dsh.client.platform 聲明爲 web。終端 TUI、無界面 headless 配置裝上它,也看不到這個按鈕。
核心功能¶
倉庫 README、需求文檔 REQUIREMENTS.md 和 src/ 源碼對行爲的描述一致,可以按下面幾條理解。
工具行裏的 ✨ 按鈕¶
客戶端把按鈕掛在官方槽位 conversation.input.right,緊挨發送按鈕。文案跟隨 Harness 的 locale 服務:中文是「潤色」,英文是「Polish」。草稿爲空或只有空白時按鈕禁用;潤色進行中會轉圈,並擋住重複點擊。
倉庫提供了一張按鈕位置截圖:

用 flash 模型改寫,不碰主對話前綴¶
Host 端註冊斜槓命令 /polish。點擊按鈕後,瀏覽器通過 Harness 內置的 commands remote 把當前草稿送過去,和內置 / 命令走同一條通道,沒有另造 RPC。
改寫是一次零前綴的 ctx.llm.stream 調用:提供方固定爲 deepseek-official,模型固定爲 deepseek-v4-flash,reasoningEffort 設爲 'off',maxTokens 爲 2000。主會話用的模型不會因此再跑一輪,前綴緩存也不會被這次潤色佔用。若目錄裏找不到這個模型 id,host 會用 llm.listModels 挑一個 flash 類模型重試一次。
回填輸入框,不是發消息¶
潤色成功後,客戶端從命令結果裏取出文本,調用官方寫入路徑 inputActions.setDraft 替換輸入框內容。你可以繼續改,也可以再點一次 ✨;不按發送,什麼都不會進對話。草稿裏如果帶了圖片,只替換文字,圖片不動、不丟。
點擊時會記下當時的 draftRev。潤色還沒回來、你又改了草稿,結果會被丟棄,避免覆蓋你剛打的字。
失敗靜默,原文儘量不進會話日誌¶
改寫失敗、返回空、或命令報錯時,輸入框原文不動,只在瀏覽器 console 打日誌,不彈 toast。
/polish 註冊時設了 recordInput: false,command/run 事件不寫 args,草稿原文不會落到會話日誌。需要知道的是:潤色結果仍會記在 command/done 裏。想完全不留改寫痕跡,這個插件做不到。
語言、語氣和代碼原樣策略¶
提示詞寫在 host 端源碼 src/index.js 裏,要求改寫時:
- 跟隨草稿語言(中英混排則跟主導語言)
- 保留意圖、事實、約束,不增不減
- 代碼塊、文件路徑、命令行、報錯、標識符、技術術語原樣保留
- 去掉口水話和重複,但不要改得更正式、更營銷腔、更機器腔
- 已經寫清楚的草稿少改
- 只返回潤色後的正文,不要前言、解釋或外層引號
當前版本不做「指定風格改寫」。需求文檔寫明:v1 只做通用潤色。
安裝與啓用¶
社區目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端運行即可:
dsh plugin add github:tianji-qingtian/dsh-composer-polish
目錄頁同時說明:如需可復現安裝,應固定 commit 哈希,形式爲 dsh plugin add github:tianji-qingtian/dsh-composer-polish#commit。
倉庫 README 的步驟更完整,也是實際更穩妥的寫法。它要求把插件加進 web profile,並釘在已發佈的 tag v0.1.3 上。倉庫已提交構建好的 lib/,安裝時不跑構建腳本。
先確認 dsh 在 PATH 上。如果平時只用 npx @deepseek-ai/dsh web 啓動過 Harness,本機可能沒有全局 CLI,會報 command not found: dsh。README 給出的安裝方式:
npm install -g @deepseek-ai/dsh
也可以用 pnpm add -g @deepseek-ai/dsh(全局 bin 目錄需要在 PATH 上),或不裝全局、給後續命令加 npx @deepseek-ai/dsh 前綴。
然後把插件寫入 web profile 並重啓:
dsh plugin --profile web add "github:tianji-qingtian/dsh-composer-polish#v0.1.3"
dsh --profile web
add 只改 profile 文件,正在跑的實例不會熱加載。重啓後,✨ 按鈕應出現在輸入框工具行、發送按鈕旁邊;host 半載入後 /polish 命令纔會註冊。可在 Settings → Plugins 裏確認列表中有 dsh-composer-polish。
package.json 聲明的 Node 引擎是 ^22.19.0 || >=24.0.0。環境差太遠時,先覈對本地 Node 版本。
典型用法¶
按 README 和需求文檔裏的驗收路徑,日常用法就是三步:
- 在 Web UI 輸入框寫下草稿。空草稿或純空白時按鈕是灰的,點不了。
- 點工具行裏的 ✨ 潤色 / Polish。按鈕進入 loading,大約幾秒。
- 輸入框裏的文字被替換成改寫結果。預覽一下,不滿意可以再點一次,或者自己改完再發送。
帶圖提問時同樣只處理文字。中文草稿會按中文改寫,英文草稿按英文改寫。含代碼塊、列表、路徑的草稿,結構應被保留,代碼本身不應被「優化」掉。
倉庫沒有提供可複製的前後對照樣例,本文也不編造潤色效果。以你自己的一兩條真實草稿實測最準確。
適用場景與注意事項¶
比較適合這些情況:提示詞先口述再整理、需求描述寫得很散、中英夾雜、同一句話重複了兩遍。不適合拿它當通用寫作助手——它不提供語氣檔位,也不保證改寫質量;上限大約 2000 token,超過 50 KB 的草稿會在客戶端截斷後再送(host 端同樣封頂)。超長技術文檔、需要指定文風的對外稿,都超出它的設計範圍。
使用前還要注意這幾條,均來自目錄頁或倉庫原文,不是推斷:
- 權限:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。裝之前應自己看源碼和許可證。
- 平臺:只聲明瞭 Web 客戶端;不要指望它出現在 TUI 裏。
- 模型:改寫依賴
deepseek-official上的deepseek-v4-flash(或一次 flash 類回退)。該提供方不可用、或 flash 模型都調不通時,按鈕轉完圈,草稿不會變,只能去 console 看日誌。 - 兼容性:README 寫明 Harness 處於 developer preview,迭代很快,可能出現不兼容變更。
- 隱私邊界:原文不進
command/run的args,但潤色結果會進command/done。 - 防覆蓋:潤色期間繼續編輯,回填會被跳過。這是有意設計,不是故障。
小結¶
dsh-composer-polish 把「把草稿寫清楚再發給模型」收成輸入框旁的一個按鈕:flash 模型改寫,結果回填,主對話前綴不動。能力邊界也很清楚——Web UI、通用潤色、失敗靜默、50 KB 上限。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-composer-polish/
GitHub:https://github.com/tianji-qingtian/dsh-composer-polish