用 dsh-prompt-polish 在 DeepSeek Harness 輸入框裏打磨提示詞

前言

給編碼智能體下任務時,草稿提示詞經常寫得太口語:目標含糊,輸入輸出沒寫清,約束也漏了。直接發出去,模型要麼追問,要麼按自己的理解動手。反過來,每次都在輸入框裏把「讀一下 a.csv,按 b 排序」擴成一份自包含指令,又會打斷當前思路。

DeepSeek Harness(命令名 dsh)是 DeepSeek AI 開源的智能體運行時,官方倉庫把原則寫成一句話:Everything is a Plugin(一切皆插件)。模型、工具、會話、沙箱和界面都可以按 profile 增刪,不必改 harness 源碼。官方入門路徑是裝好 Node.js 後執行 npx @deepseek-ai/dsh web。目前仍是面向開發者的預覽版,接口還會變。

社區插件目錄 deepseek-harness-plugin.com 是獨立站點,和 DeepSeek / 幻方沒有官方從屬關係,不能當成官方應用商店。下面介紹的 dsh-prompt-polish 由該目錄收錄,作用很具體:在 Web 輸入框的工具行加一個潤色按鈕,用已經接入的大模型改寫當前草稿,改完仍留在輸入框裏,發送前可以先看一眼。

本文按社區目錄詳情頁、倉庫 README / README.zh.mdpackage.jsonlib/index.jslib/client.js,以及 DeepSeek Harness 官方倉庫 覈對後整理。

這是什麼

dsh-prompt-polish 是一款界面增強類 DSH 插件,維護者是 JoukoPuro,倉庫地址爲 JoukoPuro/dsh-prompt-polish,許可證爲 MIT,主要語言是 JavaScript。package.json 裏的版本號是 0.1.0。社區目錄把它歸在「界面增強」;截至 2026-08-18,目錄頁與 GitHub 均顯示 3 顆星。倉庫創建於 2026-08-14,目錄收錄日期爲 2026-08-15。

它解決的不是「幫你寫一段全新的提示詞」,而是:輸入框裏已經有一段草稿,你希望把它改得更專業、更自包含、更容易被編碼智能體執行,同時儘量保留原意和原文語言。改寫走的是當前會話已經接好的模型,插件自己不另開一套密鑰流程。

package.json 把插件聲明成雙面 bundle:Host 側掛到 web 服務器,瀏覽器側注入輸入框工具行。dsh.client.platformweb,因此它面向的是 dsh web 界面,不是終端 TUI。

核心功能

工具行上的純圖標按鈕

瀏覽器半邊 lib/client.js 向槽位 conversation.input.right 註冊一個名爲 prompt-polish 的按鈕。按鈕只有圖標、沒有文字:空閒時是 sparkle(✨),改寫進行中換成加載動畫。懸停提示和 aria-label 在中文環境下是「調用大模型優化提示詞」。

點擊後彈出風格菜單,選中一項就把當前草稿 POST 到同源路由 /prompt-polish。成功則調用 inputActions.setDraft,用返回文本替換輸入框內容。失敗會彈出 Toast,文案模板是「提示詞打磨失敗:{message}」。草稿爲空或拿不到 setDraft 時,按鈕不可用,不會發出請求。

目錄頁和中文 README 都寫明:改寫結果直接替換回輸入框,發送前可以先審閱。插件不會替你點發送。

四種改寫風格

菜單和配置共用四個 style 值。中文界面文案如下:

取值 中文菜單 內置系統提示在做什麼
balanced 平衡打磨 默認項。要求寫得更專業、更精確,並顯式寫出目標、輸入、期望輸出格式和約束
concise 簡潔精煉 去掉套話和重複,保留全部要求,偏向短祈使句和緊湊列表
detailed 詳細展開 補充背景、拆成編號步驟,寫清輸入輸出、邊界情況和驗收標準;完整優先於簡短
code 代碼向 面向編程任務:代碼、命令、路徑、語言名保持原文,並寫清目標、涉及文件、預期改動、約束和如何驗收

這四套指令有共同前綴:把模型定位成編碼智能體的提示詞工程師,要求保持用戶原意和原文語言,並且只返回改寫後的純文本,不要解釋、不要前言、不要Markdown圍欄。

請求體是 { text, style? }。優先級是:本次請求裏的 style → 配置項 stylebalanced。未知取值會回退到平衡風格。若配置了 system,則整段內置提示會被這份自定義指令替換,四種風格差異不再生效。

複用已接入的模型

Host 半邊 lib/index.js 注入 webServerllmagentDefaultModel 三個服務,用 ctx.llm.stream 做一次流式改寫,再把文本增量拼起來返回。模型路由的解析順序是:

  1. 配置裏同時寫了 providermodel,就走這條顯式路由。
  2. 否則調用 agentDefaultModel.currentSelection(),與當前會話的默認模型一致,並帶上選擇裏的 reasoningEffort(若有)。

憑證來自 Web 設置頁已經寫好的模型配置,插件不單獨收集 API Key。中文 README 的環境要求也寫了這一點:需要已運行的 @deepseek-ai/dsh web profile,並且已經配置模型適配器(例如在設置中爲 DeepSeek 服務商填寫 API Key)。

輸出長度由 maxTokens 控制,未配置時默認 2048。請求體上限是 16 KiB;空草稿返回 HTTP 400,errorempty draft。模型返回空文本會按錯誤處理。

多語言菜單

DSH 自帶的 locale 只提供中英兩套 id,其它瀏覽器語言會落到中文。這個插件因此自己讀 navigator.languages,按語言主標籤在內置詞表裏選型。README 列出的覆蓋範圍是:中文、English、日本語、한국어、Français、Deutsch、Español、Português、Русский、Italiano、Türkçe、Tiếng Việt;匹配不到則回退英文。頁面仍向 DSH 註冊中英詞表作爲後備。瀏覽器觸發 languagechange 時會重新檢測。

安裝與啓用

社區目錄詳情頁給出的安裝命令如下,以頁面原文爲準(owner 段是小寫 joukopuro):

dsh plugin add github:joukopuro/dsh-prompt-polish

dsh CLI 會從 GitHub 解析插件並安裝到當前配置。目錄頁同時提醒:如需可復現安裝,可固定 commit 哈希:

dsh plugin add github:joukopuro/dsh-prompt-polish#<commit>

截至 2026-08-18,倉庫 main 分支最新提交是 53cf8afe5f1cefa9841f358899fce322ce4f9dfd。固定哈希前仍應自己覈對倉庫內容。

如果已經 clone 了源碼,中文 README 還提供本地路徑裝法,並指定 web profile:

dsh plugin --profile web add ./dsh-prompt-polish

然後重啓 dsh web,讓 profile 加載新的 bundle:

dsh web

打開 Web UI,在輸入框寫一段草稿,點工具行裏的潤色按鈕即可。目錄頁還建議安裝後用 dsh plugins list 確認插件已加載。

目錄頁的安全提示需要原樣理解:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前請檢查源代碼倉庫和許可證。

配置

可選配置寫在 profile 的 cordis.patch.yml 用戶層(在 bundle 層之後應用)。README 給出的示例如下,其中的 provider / model 取值是倉庫文檔裏的示例,實際應以你當前環境裏已配置的服務商和模型名爲準,並且二者必須成對出現:

- id: prompt-polish
  config:
    provider: deepseek-official   # 顯式指定路由(可選)
    model: deepseek-v4-flash      # 必須與 provider 成對出現
    style: balanced               # 默認改寫風格:balanced | concise | detailed | code
    maxTokens: 2048               # 改寫調用的輸出上限
    # system: '...'               # 自定義改寫指令(替換內置的各風格提示詞)

不配 provider / model 時,插件使用 agentDefaultModel.currentSelection()。bundle 自帶的 cordis.patch.yml 只插入一行 loader:id: prompt-polishname: dsh-prompt-polish,具體改寫參數留給用戶層覆蓋。

典型用法

日常路徑是界面操作,不需要記 HTTP:

  1. 確認 dsh web 已啓動,設置裏已經能選到可用模型。
  2. 在輸入框寫下草稿,例如「read a.csv and sort by b」。
  3. 點擊工具行 ✨ 按鈕,在菜單裏選一種風格。中文界面四項分別是「平衡打磨」「簡潔精煉」「詳細展開」「代碼向」。
  4. 等待圖標變爲加載狀態;完成後輸入框內容被替換爲改寫結果。
  5. 檢查目標、路徑、約束有沒有被改偏,確認後再發送。

README 的開發說明裏,還給出了在臨時端口直接打 Host 路由的辦法,用來確認服務半邊是否掛上,並不經過按鈕:

dsh web --port 3099
curl -s http://127.0.0.1:3099/plugins/dsh-prompt-polish/client.js | head
curl -s -X POST http://127.0.0.1:3099/prompt-polish \
  -H 'content-type: application/json' \
  -d '{"text":"read a.csv and sort by b","style":"code"}'

第二條 curl 的請求體與源碼一致:text 是草稿,stylecode。正常響應形狀是 { ok: true, text, style };失敗則爲 { ok: false, error }。這是倉庫文檔中的驗證示例,不是對改寫質量的承諾。

適用場景與注意事項

比較對口的用法包括:

  • 草稿已經表達了意圖,但缺少目標、輸入、輸出格式或約束,希望先打磨再發給智能體。
  • 提示詞太長、套話多,想壓成幾行仍保留全部要求。
  • 任務需要拆步驟、寫驗收標準,適合選「詳細展開」。
  • 草稿裏已經有命令、文件路徑或代碼片段,希望改寫時不要改這些原文,適合選「代碼向」。

使用前需要知道邊界:

  • 只覆蓋 Web 輸入框。沒有 web profile、或當前界面不是 dsh web,這個按鈕不會出現。
  • 必須先配置模型適配器。插件沒有內置免費模型,改寫會消耗你已接入賬號的額度。
  • 改寫是另一次 LLM 調用,結果取決於當前模型和內置/自定義系統提示,插件不保證一次改對。發送前應通讀替換後的文本,尤其是路徑、命令和硬約束。
  • 草稿超過約 16 KiB 會被 Host 拒絕。空輸入不會發請求。
  • system 一旦寫上,就不再走四套內置風格。providermodel 必須成對配置,只寫其中一個不會走顯式路由。
  • DeepSeek Harness 仍在開發者預覽階段,插件的 peer 依賴寫的是 @deepseek-ai/cordis@deepseek-ai/dsh-llm@deepseek-ai/dsh-agent 的預覽版本區間,後續接口可能不兼容。
  • 插件以當前 dsh 進程權限運行。安裝前應閱讀 JoukoPuro/dsh-prompt-polish 的源碼和 MIT 許可證,確認後再執行 dsh plugin add

小結

dsh-prompt-polish 把「讓已接入的大模型改寫當前草稿」收進 Web 輸入框工具行:一個純圖標按鈕、四種風格、就地替換、發送前可審閱。它不引入新的模型供應商,也不改 harness 源碼,只是在 conversation.input.rightPOST /prompt-polish 兩側接好現有的 ctx.llm

目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-prompt-polish/

GitHub:https://github.com/JoukoPuro/dsh-prompt-polish

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

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

小夜