前言¶
DeepSeek Harness(DSH)的插件生態允許用戶擴展輸入框的功能。提示詞優化插件借鑑了騰訊 WorkBuddy 的 EnhancePrompt 機制,旨在解決草稿不夠清晰的問題。該插件通過獨立調用模型,將輸入框中的未發送草稿改寫爲更具體的提示詞,並提供一鍵還原功能。
安裝¶
通過 DSH 的插件命令行工具安裝,支持 Web 和桌面端(需注意 Origin 校驗)。
dsh plugin --profile web add github:ruiyukirin/dsh-prompt-optimization-master
核心功能¶
插件在 DSH 輸入框的工具欄右側添加了一個提示詞優化按鈕。其行爲由草稿狀態和輸入框狀態共同決定。
-
按鈕狀態流轉
- 有草稿且空閒:顯示 ✨ 按鈕。點擊後發送草稿給模型改寫,結果直接替換輸入框。
- 優化中:顯示 ⏳ 按鈕。點擊可取消請求並還原原文。
- 已優化:顯示 ↩️ 按鈕。點擊恢復到優化前的原文。
-
智能顯示與隱藏
- 空草稿隱藏:當草稿爲空(包括零寬空格
U+200B)時,按鈕自動隱藏。 - 忙狀態隱藏:當輸入框處於提交(
submitting)或仲裁(adjudicating)狀態時,按鈕隱藏,防止誤操作。
- 空草稿隱藏:當草稿爲空(包括零寬空格
-
會話與上下文管理
- 獨立調用:優化請求走獨立的模型調用,不創建會話、不寫入對話歷史、不讀取歷史上下文。
- 自動復位:切換會話後,上一個會話的備份與錯誤提示會自動清除,防止狀態殘留。
配置¶
在 DSH 的設置面板中找到「提示詞優化」獨立條目進行配置。
- 啓用 ✨ 按鈕:開關按鈕的顯示。
- 最少字符數:設置觸發優化的最小草稿長度,留空則跟隨宿主默認值。
- 指定模型:默認跟隨當前會話模型。勾選後可固定提供方與模型 ID,將優化請求路由到更便宜的模型上。
工作原理與限制¶
該插件使用獨立的 HTTP 路由(POST /dsh-prompt-enhance/enhance)進行模型交互,而非 Remote。
-
提示詞設計
採用雙層結構:System 層定義角色(提示詞工程專家),User 層提供任務模板和少樣本示例,重點鎖定輸出語言並壓制元話術。 -
桌面版 Origin 校驗
桌面版界面運行在dsh-app://協議上。Electron 會轉發非靜態資源請求,但強制要求請求頭Origin: dsh-app://app。宿主側必須顯式接受該 Origin 校驗,否則桌面版會返回 403。 -
思考型模型預算問題
實測發現,思考型模型(如hy4-preview)會喫光輸出預算,導致可見輸出爲 0。插件已修復此問題:- 動態分配輸出預算:思考型模型分配 32768,普通模型分配 4096。
- 使用
ctx.llm.resolveModelInfo()判斷模型是否開啓思考,並按模型自身的defaultMaxTokens封頂。 - 增加 60 秒硬超時,並針對截斷錯誤提供自動重試機制。
開發與調試¶
插件的客戶端和宿主端修改對熱更新的影響不同。
-
修改規則
- 客戶端半改動:修改
client/client.js等文件後,刷新頁面即可生效。HMR 僅在模塊首次加入時推送一次。 - 宿主半改動:修改
dsh/index.js等文件後,必須重啓 DSH。Loader 會緩存進程內的模塊。
- 客戶端半改動:修改
-
離線測試
插件包含完整的測試套件,可在不依賴 DSH 的情況下運行。
npm test # 運行宿主半、客戶端半與推理預算測試
- 宿主半測試(
test/smoke.mjs):覆蓋路由註冊、請求守衛、提示詞組裝等 45 項檢查。 - 客戶端半測試(
test/client.test.mjs):覆蓋狀態機與狀態轉換,共 57 項檢查。 - 推理預算測試(
test/reasoning-budget.mjs):覆蓋思考識別、上限封頂、截斷重試,共 29 項檢查。