DeepSeek Harness 插件:dsh-prompt-enhancer

前言

在 DeepSeek Harness(dsh)的對話框裏隨手輸入一句粗糙的需求,模型經常因爲上下文不完整、指代不明而給出半生不熟的結果。常見的做法是人工反覆打磨提示詞,或者依賴外部工具(WorkBuddy、ChatGPT 的提示詞增強等)。dsh-prompt-enhancer 插件在消息真正發給模型之前,先調用一次輕量改寫,把粗糙輸入變成清晰、具體、自包含的提示詞,體驗對標 WorkBuddy / ChatGPT 的「提示詞增強」。

插件定位

dsh-prompt-enhancer 是一個對話框提示詞自動增強插件,由維護者 saul-dsh 開發,目前有 1 個 GitHub Star。它不改變模型能力,只是在發送前對輸入做一次改寫,讓模型更容易給出高質量回復。

核心功能

增強強度

三檔強度,分別作用於不同場景:

檔位 做什麼 長度變化 適用場景
Low 只修歧義、指代、冗餘、斷句,不動結構 ≤1.4 倍 隨手寫的一句話,只想讓它通順明確
High 補全目標、約束、輸出形式,保留原意 1.3~2.2 倍 默認檔,日常使用
Max 第一性原理拆解,補隱含假設並逐條標註 (assumption: ...),把缺失信息寫成條件要求 2~3.5 倍 複雜任務,寧可囉嗦也要一次說清

Max 檔如果失控(超過該檔上限 1.6 倍)直接判失敗回退原文,不會把一句話膨脹成小作文。

效果示例

原始輸入 High 檔增強後
幫我寫個爬蟲 編寫一個 Python 爬蟲腳本:抓取指定網址列表中每個頁面的標題和正文,按天保存爲 CSV(列:url、title、content、date)。要求:請求間隔 ≥1 秒、失敗自動重試 3 次、超時 10 秒,代碼含中文註釋並附使用說明。
這個 bug 修一下 定位並修復當前倉庫中的構建失敗:先運行 pnpm run build 復現報錯,給出根因分析(引用具體文件與行號),完成最小修復後重新運行構建驗證通過,並總結改動點。
做個網站 用單個 HTML 文件製作一個「個人書籤導航頁」:頂部搜索過濾,卡片式分組展示書籤(名稱、URL、備註),支持增刪改(localStorage 持久化),淺色主題、移動端適配,無外部依賴。

同一句「做個網站」在 Low 檔只會補成「用單個 HTML 文件做一個個人書籤導航頁,支持搜索過濾和增刪改」,在 Max 檔會拆成目標 / 數據 / 交互 / 驗收四段並標註「(assumption: 純前端,無後端)」。

安裝與啓用

方式一:從 GitHub 安裝

dsh plugin --profile web add https://github.com/saul-dsh/dsh-prompt-enhancer

安裝後,啓動日誌出現 [dsh-prompt-enhancer] loaded (mode=auto, ...) 即成功。

方式二:本地路徑安裝(開發/試用)

dsh plugin --profile web add /path/to/dsh-prompt-enhancer
dsh --profile web --dump-config   # 確認插件樹裏出現 prompt-enhancer
dsh --profile web

配置示例

在 profile 配置(或 market 安裝後的插件設置)裏對 prompt-enhancer 行寫 config:

- override:
    id: prompt-enhancer
    config:
      enabled: true
      mode: auto            # auto=發送前自動增強;manual=只註冊工具不自動改寫
      level: high           # 默認強度 low/high/max;前端滑塊會覆蓋它。off=整條鏈路不增強
      preStepAuto: false    # 服務端兜底增強,默認關;開了會在你看不到的地方改消息
      # provider: deepseek-official   # 留空=跟隨當前會話的模型路由
      # model: deepseek-flash         # 建議配一個快模型,降低每次發送的延遲
      timeoutMs: 20000       # 單次增強超時,超時後原樣發送
      minPromptLength: 4     # 「繼續」「ok」這類超短輸入不增強
      maxInputChars: 4000    # 長輸入視爲已是完整提示詞,不再增強
      language: auto         # auto=跟隨輸入語言;可強制 zh / en
      styleHint: ""          # 追加自定義風格要求,例如"偏工程口吻,給出驗收標準"

界面與操作

輸入框左側一個 ✨ 按鈕,鼠標停約 1.5 秒,向上彈出一個小面板:

  • ✨ 按鈕:點一下手動增強當前草稿,改完寫回輸入框不發送。增強成功後按鈕變成紅色的撤銷圖標,點一下恢復原文。
  • 懸浮面板:強度滑塊(Low / High / Max)和「發送時自動增強」開關。自動增強默認關閉,裝好後先手動點 ✨ 試效果,覺得合適再打開。
  • 發送時自動增強:打開後點發送按鈕或按 Enter,發送按鈕先變成三點旋轉,增強結果寫回輸入框停留約 0.7 秒,然後才自動 submit。失敗就按原文發,不會把你卡在輸入框裏。
  • 不攔截的情況:空草稿(純附件發送)、斜槓命令、Shift/Ctrl/Alt+Enter、輸入法組合中的回車。

工作原理

  • 發送攔截(主路徑):客戶端在捕獲階段監聽發送按鈕的 click 和輸入框的 Enter。命中後阻止事件到達 dsh 自己的事件根,先請求改寫,把結果 setDraft 回輸入框,再調用 inputActions.submit()。發送按鈕期間顯示三點旋轉。
  • pre-step 兜底(副路徑):掛載 agent/pre-step 瀑布流(dsh 的權威消息准入接縫),前端沒攔到時把批次內的純文本用戶消息重寫後放行。前端剛增強過的文本按指紋去重,同一句話不會被改兩遍。
  • 跳過規則:斜槓命令(/plan 等)不改寫;含文件/圖片附件的消息不改寫;過短、過長輸入不改寫;非聊天框來源的內部 user 消息(goal 輪次、會話引用、notice 等)不改寫。
  • fail-open:增強失敗 / 超時 / 無可用路由 / 模型輸出失控時,原始消息原樣放行,絕不阻塞對話。
  • 輸入框增強按鈕:web 端在 conversation.input.left 註冊 Sparkle 圖標,強度面板掛在同一個按鈕的懸浮上。CLI / TUI 等沒有 web 客戶端的宿主不加載這部分,只保留 pre-step 兜底。
  • 同時註冊 enhance_prompt 工具:模型自己也能調用(例如在重跑一個模糊需求前先改寫它)。

兼容性

項目 要求
dsh ≥ 0.2.0(developer preview)
Node ≥ 18
客戶端 web(桌面端與瀏覽器)。CLI / TUI 只保留 pre-step 部分,沒有按鈕
運行時依賴 無。只使用 dsh 自帶的 @deepseek-ai/* peer 依賴

dsh 處於 developer preview,插件 API 會變。升級 dsh 後如果失效,先查兩處:agent/pre-step 的簽名,[data-composer-dock] 的結構。

適用場景與注意

適合需要提高對話框輸入質量的場景:日常對話、需求拆解、複雜任務描述。插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。

結尾

dsh-prompt-enhancer 通過三檔強度和自動/手動兩種模式,在對話框裏做一次輕量改寫,讓模型更容易給出清晰、具體的回覆。它不改變模型能力,只是在發送前對輸入做一次改寫。更多細節見插件目錄頁與 GitHub 倉庫。

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

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

小夜