dsh-prompt-optimization:將自然語言提示詞轉爲專業指令

前言

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=<克隆目錄的絕對路徑>

安裝後:插件行出現在「設置 → 插件」,設置頁出現在「設置 → 提示詞優化」。

典型用法

  1. 在輸入框寫下需求,例如 幫我把週報弄一下。
  2. 點擊工具欄「優化提示詞」。
  3. 查看改寫結果,滿意直接發送;不滿意點「撤回」。
  4. 首次使用若提示模型不可用,前往「設置 → 提示詞優化」選擇模型來源。

設置項

設置 作用 默認
模型來源 跟隨輸入框 / 跟隨主程序 / 自定義模型 跟隨輸入框
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)」默認關閉。開啓後:

  1. 讀取當前會話中你真正輸入過的消息(宿主注入的運行時上下文等不參與)。
  2. 交給模型壓縮成一份簡短偏好簡報——表達習慣、常用措辭、關注的主題、已排除的做法。
  3. 用這份簡報作爲參考改寫提示詞。

只有壓縮後的簡報會進入改寫請求,原始對話不會直接發給模型。壓縮本身會多調用一次模型,因此 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 兼容端點 報錯提示缺少地址或模型名

「跟隨輸入框」絕不回退:選它就是爲了固定用手上那個模型,悄悄換成別的模型會違背這個意圖。當會話還沒有可識別的選擇時,插件會明確提示。

「跟隨主程序」的解析順序:

  1. 設置頁顯式填寫的 provider + model
  2. 當前會話最近一次請求使用的模型(即模型選擇器所選)
  3. 主程序默認模型(設置 → 模型)
  4. 兜底 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

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

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

小夜