前言¶
DeepSeek Harness(DSH)採用「一切皆插件」的理念,插件通過擴展槽位注入界面與邏輯。自然語言需求往往含糊,模型只能猜測,這會讓結果不穩定。這個插件在 DSH 的輸入框工具欄增加「優化提示詞」按鈕,將模糊需求改寫爲任務明確、主旨清晰、無歧義的專業提示詞。
插件定位¶
這是一個 DeepSeek Harness Web 插件,由 KukaNo996 維護。它把「幫我把週報弄一下」這類需求,改寫成結構化、可執行的提示詞,一鍵回填草稿,支持撤回。改寫結果直接在輸入框顯示,不影響原始草稿內容。
核心功能¶
- 一鍵優化:點擊工具欄按鈕,調用模型改寫當前草稿並回填。
- 一鍵撤回:改寫後按鈕變爲「撤回」,點擊恢復原文,再點可再次優化。
- 多候選評估:可開啓並行生成 2–5 份結果,再由評審模型選出最優。會顯示 token 消耗。
- 模型來源可配置:
跟隨輸入框(默認) /跟隨主程序/自定義模型(任意 OpenAI 兼容端點)。 - 本地模型支持:由主機側直接請求端點,不受瀏覽器 CORS 限制。支持 Ollama / LM Studio / vLLM。
- 顯示提示文字:默認只顯示圖標。開啓後按鈕同時顯示「優化提示詞」和「撤回」文字。
- 空輸入引導:未填寫內容時點擊優化,提示語逐字寫入輸入框,停留 2 秒後逐字刪除;開始輸入即自動停止。
- 根據上下文優化(Beta):可開啓,先壓縮當前會話上下文再據此改寫,使結果更貼合表達習慣。默認關閉。
- 引用保護:草稿含文件/會話引用芯片時自動禁用,避免改寫丟失引用。
- 失敗安全:草稿在請求期間被修改則不覆蓋本次結果;請求可隨頁面關閉/切會話立即中止。
- 問題分類改寫:先判斷原文屬於六類中的哪類(知識理解/編程實現/內容創作/分析決策/流程方法/表達轉換),按類型決定問什麼。
- 問題拆解深入:問「什麼是 X」時不直接回答,而是拆成至少 3 個分析維度寫成提示詞。
- 篇幅分五檔:按原文字數與問題類型選檔:極短/簡短/標準/詳盡/完整,同一篇不跨檔。
- 可中斷優化:優化過程中點擊轉圈即可中斷,草稿恢復爲原文。
- 最大等待時長:可設置單次優化的最長等待時間,默認 15 秒、最低 10 秒,超時自動中止。
- 檢查更新:設置頁可檢查是否有新版本,更新源可自定義(npm registry / GitHub Releases / 任意鏡像),只讀版本號、不下載安裝。
插件界面與詞典提供簡體中文、繁體中文、日語和英語。
安裝與啓用¶
方式一:插件管理器(推薦)¶
在 DSH 中打開「設置 → 插件」安裝,或使用包座標:
plugin_manager install_bundle target=dsh-prompt-optimization
國內網絡可指定鏡像源:
plugin_manager install_bundle target=dsh-prompt-optimization registry=https://registry.npmmirror.com
需要固定版本時寫完整版本號,例如 target=dsh-prompt-optimization@1.4.1。
方式二:源碼安裝¶
git clone https://github.com/KukaNo996/dsh-prompt-optimization
plugin_manager install_bundle target=<克隆目錄的絕對路徑>
安裝後:插件行出現在「設置 → 插件」,設置頁出現在「設置 → 提示詞優化」。
典型用法¶
- 在輸入框寫下需求,例如
幫我把週報弄一下。 - 點擊工具欄「優化提示詞」。
- 查看改寫結果,滿意直接發送;不滿意點「撤回」。
- 首次使用若提示模型不可用,前往「設置 → 提示詞優化」選擇模型來源。
設置項¶
| 設置 | 作用 | 默認 |
|---|---|---|
| 模型來源 | 跟隨輸入框 / 跟隨主程序 / 自定義模型 |
跟隨輸入框 |
| API 地址 | 自定義模式的 OpenAI 兼容端點,如 http://127.0.0.1:11434/v1 |
— |
| 模型名稱 | 自定義模式必填;跟隨模式留空表示自動 | — |
| Provider(可選) | 跟隨模式下覆蓋自動選擇的 provider | 自動 |
| API Key | 自定義端點密鑰;本地模型可留空 | — |
| 溫度 | 0–2,越低越穩定 | 0.3 |
| 最大輸出 token | 0 表示交給模型默認值 | 0 |
| 優化指令 | 自定義 system prompt,留空用內置指令 | 內置 |
| 多候選評估 | 開關 + 候選份數(2–5) | 關閉 / 1 份 |
| 顯示提示文字 | 開啓後按鈕顯示「優化提示詞」和「撤回」文字,關閉時只顯示圖標 | 關閉(僅圖標) |
| 更新源 | 檢查更新時使用的地址;留空按內置順序嘗試 | 自動 |
| 根據上下文優化(Beta) | 開啓後先壓縮會話上下文再據此改寫提示詞 | 關閉 |
| 最大等待時長 | 單次優化的最長等待時間,覆蓋上下文壓縮、多候選生成與評審 | 15 秒 |
可隨時用「測試連接」驗證當前配置;配置未保存到可調用狀態時,保存仍會成功,但優化會返回可讀的錯誤提示。
問題分類與改寫原則¶
插件在改寫前先判定原文屬於哪一類,類型決定該問什麼,不用同一套模板套所有問題:
| 類型 | 典型問法 | 改寫重點 |
|---|---|---|
| 知識理解類 | 什麼是、爲什麼、有什麼區別、原理 | 拆成多個分析維度,系統講透 |
| 編程實現類 | 寫、改、修、重構、報錯、性能 | 輸入輸出、語言框架、約束、邊界、驗收方式 |
| 內容創作類 | 文案、起名、郵件、腳本、翻譯 | 受衆、用途、語氣、篇幅、禁忌 |
| 分析決策類 | 對比、選型、評估、要不要 | 候選對象、評價維度、結論形態、判斷標準 |
| 流程方法類 | 怎麼做、如何入門、步驟 | 階段劃分、每階段產出、依賴與檢查點 |
| 表達轉換類 | 總結、精簡、改寫、格式化 | 目標形態、保留什麼、刪掉什麼 |
插件不會以大模型口吻直接回答「什麼是閉包」這類問題,而是把問題改寫成一條可執行的提示詞,要求覆蓋至少 3 個分析維度。
篇幅分檔¶
改寫長度由原文字數與問題類型共同決定,同一篇內不跨檔:
| 檔位 | 原文 | 輸出 |
|---|---|---|
| 極短檔 | 不足 20 字(如「寫個快排」) | 1–2 句,核心任務 + 一個最關鍵約束;絕不加標題、編號、背景 |
| 簡短檔 | 20–50 字,單一訴求 | 2–4 句或最多 3 條短要求,不設小標題 |
| 標準檔 | 50–150 字,或含 2–3 個並列訴求 | 4–8 行,可加 1–2 個小標題 |
| 詳盡檔 | 150–400 字,或類型要求系統回答(知識理解/分析決策/流程方法) | 結構化多段:目標 / 覆蓋維度 / 約束 / 輸出形態 / 驗收標準 |
| 完整檔 | 超過 400 字,或多條並列且彼此依賴 | 才用含背景、執行步驟、風險與檢查點的完整結構 |
知識理解類即使原文很短也落到詳盡檔。
中斷與等待時長¶
優化過程中點擊轉圈即可中斷,草稿會恢復爲原文。中斷會同時結束客戶端請求與主機側的模型調用。
「最大等待時長」限制單次優化的總耗時,默認 15 秒、最低 10 秒。該時長覆蓋整個流程——上下文壓縮、多候選生成與評審,超時後插件會自動中止並明確提示。
根據上下文優化(Beta)¶
設置頁的「根據上下文優化(Beta)」默認關閉。開啓後:
- 讀取當前會話中你真正輸入過的消息(宿主注入的運行時上下文等不參與)。
- 交給模型壓縮成一份簡短偏好簡報——表達習慣、常用措辭、關注的主題、已排除的做法。
- 用這份簡報作爲參考改寫提示詞。
只有壓縮後的簡報會進入改寫請求,原始對話不會直接發給模型。壓縮本身會多調用一次模型,因此 token 消耗相應增加。壓縮失敗時會退回普通改寫,不會讓整個操作失敗。
該功能仍處 Beta:它會改變改寫結果,介意可隨時關閉。
檢查更新¶
設置頁底部有「檢查更新」區塊,點擊後查詢是否有新版本。它只讀取版本號,不下載、不安裝,也不會寫入設置文件。
更新源支持三種寫法:
- 內置別名:
npm、npmmirror、github - npm registry 包地址:
https://registry.npmmirror.com/dsh-prompt-optimization - GitHub Releases API 地址:
https://api.github.com/repos/KukaNo996/dsh-prompt-optimization/releases/latest
留空時依次嘗試 npm registry → npmmirror → GitHub Releases,任一成功即返回。自定義源按響應內容識別格式(dist-tags.latest 或 tag_name),因此鏡像站、代理都可用,不依賴域名。單個源超時 10 秒,失敗自動回退到下一個;全部失敗會逐條列出原因。版本比較遵循語義化版本優先級,正確處理預發佈版本。
模型來源模式¶
| 模式 | 使用的模型 | 取不到時 |
|---|---|---|
| 跟隨輸入框(默認) | 輸入框右下角當前選擇的模型 | 報錯,不切換到其它模型 |
| 跟隨主程序 | 見下方解析順序 | 逐級回退 |
| 自定義模型 | 你填寫的 OpenAI 兼容端點 | 報錯提示缺少地址或模型名 |
「跟隨輸入框」絕不回退:選它就是爲了固定用手上那個模型,悄悄換成別的模型會違背這個意圖。當會話還沒有可識別的選擇時,插件會明確提示。
「跟隨主程序」的解析順序:
- 設置頁顯式填寫的 provider + model
- 當前會話最近一次請求使用的模型(即模型選擇器所選)
- 主程序默認模型(設置 → 模型)
- 兜底
deepseek-account/deepseek-flash
環境要求¶
- DeepSeek Harness 0.2.1 及以上(依賴
conversation.input.right、settings.section插槽與inputActions.setDraft) - 「跟隨主程序」模式需已登錄 DeepSeek 賬戶或已配置可用模型;否則請改用「自定義模型」
隱私與安全¶
- API Key 存儲:優先放入宿主憑據服務(
keyStorage: credential),settings.json只記錄「是否已配置」;沒有憑據服務時降級寫入$DSH_HOME/dsh-prompt-optimization/settings.json(POSIX 下0600)。舊版本明文會自動遷移並清除。 - 瀏覽器側:永遠只能拿到掩碼(如
sk-••••1234),任何接口都不返回明文。 - 接口防護:除
/status外所有路由要求進程級隨機票據(頁面從/status獲取)並校驗 Origin;模型路由按來源限流 10 次/分鐘。 - 數據去向:被優化的草稿文本會發送給你配置的模型端點(跟隨模式即主程序所用 provider)。請勿在需要保密的草稿上使用不可信的第三方端點。
- 請求中止:頁面關閉、切換會話或再次點擊時立即中止在途請求,主機側返回 499 並停止計費。
實現說明¶
插件在主機側註冊同源前綴路由 /dsh-prompt-optimization/*:
| 路由 | 方法 | 用途 |
|---|---|---|
/status |
GET | 插件健康狀態 + 下發請求票據 |
/settings |
GET / POST | 讀取 / 保存設置(密鑰只寫不讀) |
/optimize |
POST | 執行改寫(含多候選評估) |
/test |
POST | 測試連接 |
/update-check |
GET / POST | 檢查更新(不佔模型調用額度) |
- 跟隨模式走 DSH
llm服務(自帶賬戶鑑權與重試);自定義模式由主機側請求 OpenAI 兼容/chat/completions。 - 評估:
candidates > 1時並行生成 N 份,再發一次只返回編號的評審請求;評審失敗或無有效編號時退回確定性評分(結構 + 數字/標識符保留率 + 長度比)。 - 取消:
req.on('close')觸發 AbortSignal,透傳給llm.stream/fetch。 - 檢查更新:對更新源發起 HTTPS GET(10 秒超時、2 MB 上限),按響應內容識別 npm packument 或 GitHub release,用語義化版本規則比較;只讀,不寫設置文件。
- 上下文:開啓 Beta 後先讀取會話中用戶真正輸入的消息,交給模型壓縮成偏好簡報,再把簡報注入改寫請求;原始對話不直接發給模型。
客戶端側以 window.__ModuleLoader__.load 註冊兩個 slot:
conversation.input.right:工具欄優化 / 撤回按鈕與錯誤氣泡。settings.section:設置頁面。
草稿讀寫使用宿主注入的 inputActions / useInput,不改 DOM;occurrences 非空時禁用優化。改寫完成後一次性回填草稿,輸出即用,不帶任何開場白。樣式只用 --dsw-alias-* 主題 token。
適用場景¶
適合需要在 DSH 中反覆打磨提示詞的場景:從模糊需求到結構化指令、從單次問答到複雜任務規劃。本地模型支持使得可以在無網絡環境下使用。注意插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
小結¶
這個插件通過分類、分檔、多候選評估等方式,將自然語言提示詞轉爲專業指令,支持一鍵優化與撤回,配合靈活的模型來源配置與本地模型支持,適合需要穩定、可控提示詞鏈路的開發者使用。
目錄頁:https://www.skillhub.cn/plugins/KukaNo996/dsh-prompt-optimization
GitHub:https://github.com/KukaNo996/dsh-prompt-optimization