用 dsh-composer-polish 給 DeepSeek Harness 輸入框加一鍵草稿潤色

前言

在 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.jsondsh.client.platform 聲明爲 web。終端 TUI、無界面 headless 配置裝上它,也看不到這個按鈕。

核心功能

倉庫 README、需求文檔 REQUIREMENTS.mdsrc/ 源碼對行爲的描述一致,可以按下面幾條理解。

工具行裏的 ✨ 按鈕

客戶端把按鈕掛在官方槽位 conversation.input.right,緊挨發送按鈕。文案跟隨 Harness 的 locale 服務:中文是「潤色」,英文是「Polish」。草稿爲空或只有空白時按鈕禁用;潤色進行中會轉圈,並擋住重複點擊。

倉庫提供了一張按鈕位置截圖:

潤色按鈕演示

用 flash 模型改寫,不碰主對話前綴

Host 端註冊斜槓命令 /polish。點擊按鈕後,瀏覽器通過 Harness 內置的 commands remote 把當前草稿送過去,和內置 / 命令走同一條通道,沒有另造 RPC。

改寫是一次零前綴的 ctx.llm.stream 調用:提供方固定爲 deepseek-official,模型固定爲 deepseek-v4-flashreasoningEffort 設爲 'off'maxTokens 爲 2000。主會話用的模型不會因此再跑一輪,前綴緩存也不會被這次潤色佔用。若目錄裏找不到這個模型 id,host 會用 llm.listModels 挑一個 flash 類模型重試一次。

回填輸入框,不是發消息

潤色成功後,客戶端從命令結果裏取出文本,調用官方寫入路徑 inputActions.setDraft 替換輸入框內容。你可以繼續改,也可以再點一次 ✨;不按發送,什麼都不會進對話。草稿裏如果帶了圖片,只替換文字,圖片不動、不丟。

點擊時會記下當時的 draftRev。潤色還沒回來、你又改了草稿,結果會被丟棄,避免覆蓋你剛打的字。

失敗靜默,原文儘量不進會話日誌

改寫失敗、返回空、或命令報錯時,輸入框原文不動,只在瀏覽器 console 打日誌,不彈 toast。

/polish 註冊時設了 recordInput: falsecommand/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/,安裝時不跑構建腳本。

先確認 dshPATH 上。如果平時只用 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 和需求文檔裏的驗收路徑,日常用法就是三步:

  1. 在 Web UI 輸入框寫下草稿。空草稿或純空白時按鈕是灰的,點不了。
  2. 點工具行裏的 ✨ 潤色 / Polish。按鈕進入 loading,大約幾秒。
  3. 輸入框裏的文字被替換成改寫結果。預覽一下,不滿意可以再點一次,或者自己改完再發送。

帶圖提問時同樣只處理文字。中文草稿會按中文改寫,英文草稿按英文改寫。含代碼塊、列表、路徑的草稿,結構應被保留,代碼本身不應被「優化」掉。

倉庫沒有提供可複製的前後對照樣例,本文也不編造潤色效果。以你自己的一兩條真實草稿實測最準確。

適用場景與注意事項

比較適合這些情況:提示詞先口述再整理、需求描述寫得很散、中英夾雜、同一句話重複了兩遍。不適合拿它當通用寫作助手——它不提供語氣檔位,也不保證改寫質量;上限大約 2000 token,超過 50 KB 的草稿會在客戶端截斷後再送(host 端同樣封頂)。超長技術文檔、需要指定文風的對外稿,都超出它的設計範圍。

使用前還要注意這幾條,均來自目錄頁或倉庫原文,不是推斷:

  • 權限:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。裝之前應自己看源碼和許可證。
  • 平臺:只聲明瞭 Web 客戶端;不要指望它出現在 TUI 裏。
  • 模型:改寫依賴 deepseek-official 上的 deepseek-v4-flash(或一次 flash 類回退)。該提供方不可用、或 flash 模型都調不通時,按鈕轉完圈,草稿不會變,只能去 console 看日誌。
  • 兼容性:README 寫明 Harness 處於 developer preview,迭代很快,可能出現不兼容變更。
  • 隱私邊界:原文不進 command/runargs,但潤色結果會進 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

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜