前言¶
在 DeepSeek Harness(DSH)的開發流程中,提示詞的迭代與優化往往是高頻操作。傳統的做法是在對話窗口中反覆複製粘貼、手動修改,不僅效率低,而且難以追溯修改歷史或對比不同版本的效果。
dsh-prompt-studio 是一個 DSH 插件,它在 DSH 的左欄提供了一個專門的「提示詞」面板。它的核心價值在於將提示詞的優化、多輪迭代和版本管理集中在一個工作區中,解決了碎片化操作的問題,並提供橫向對比能力。
插件定位¶
- 名稱:dsh-prompt-studio
- 分類:模型推理
- 維護者:CECILIALOVE0616
- 協議:MIT
- 核心能力:提示詞優化、多輪迭代、版本橫向對比、模板與歷史管理
核心功能¶
該插件在左欄提供統一的提示詞工作區,主要包含以下能力:
- 提示詞優化與改寫:輸入原始提示詞,選擇已配置的模型,獲取改寫後的結果。
- 多輪迭代:基於上一版提示詞,通過輸入調整方向(如“更簡潔”、“補上輸出格式約束”)生成版本鏈,支持回退到任意歷史版本。
- 版本橫向對比:版本以列形式鋪開,無需展開即可查看。提供行級對比視圖,新增內容標綠,刪除內容標紅並劃掉。
- 模板與歷史管理:提供通用優化、結構化擴寫、精簡壓縮等五個內置模板,支持自定義保存。歷史記錄按時間倒序排列,支持篩選和刪除。
- 在新對話中使用:優化或編輯後的提示詞可直接點擊按鈕填入新對話的輸入框併發送,免去複製粘貼步驟。
- Agent 工具調用:註冊了
prompt_optimize函數,供 Agent 在配置中直接調用。
安裝與啓用¶
本插件是一個 DSH profile bundle。它必須被安裝進某個 DSH profile 中才能註冊面板、工具與路由。它沒有運行時依賴,安裝後即可使用。
安裝命令¶
最簡單的方式是通過 DSH 的 CLI 安裝:
dsh plugin --profile <profile> add dsh-prompt-studio
從源碼構建安裝¶
如果需要從源碼構建安裝,可執行以下步驟:
git clone https://github.com/CECILIALOVE0616/dsh-prompt-studio.git
cd dsh-prompt-studio
npm pack
隨後在 CLI 中使用生成的 .tgz 文件安裝:
dsh plugin --profile <profile> add ./dsh-prompt-studio-<version>.tgz
注意事項¶
- Desktop Profile:
desktopprofile 由 Electron 桌面應用獨佔管理,CLI 無法對它執行add命令。桌面場景請使用應用內的插件安裝接口。 - 重載生效:安裝後需要重載 DSH,左欄纔會出現「提示詞」入口。
- 熱更新:除了
toolEnabled設置外,其他配置修改通常支持熱更新;toolEnabled修改後必須重啓 DSH 才能生效。
配置項¶
在 DSH 的設置頁插件分區中,可以配置以下參數:
| 字段 | 默認值 | 說明 |
|---|---|---|
defaultMode |
user |
打開面板時的默認模式(用戶提示詞 / 系統提示詞) |
defaultProvider / defaultModel |
空 | 默認模型;留空則使用會話當前路由 |
maxTokens |
4096 |
單次調用的輸出上限 |
timeoutMs |
120000 |
單次調用超時時間(上限 30 分鐘) |
maxPromptChars |
20000 |
單條提示詞長度上限 |
historyLimit |
200 |
歷史列表一次取多少條 |
toolEnabled |
true |
是否註冊 prompt_optimize 工具 |
也可以通過環境變量進行配置,優先級爲:插件設置 > 環境變量 > 內置默認。
數據存儲¶
插件使用本地 SQLite 數據庫進行存儲,每個工作區擁有獨立的數據庫文件:
路徑:<工作區>/.dsh-prompt-studio/prompt-studio.db
數據庫包含三張表:
* prompts:存儲提示詞版本(包含 parent_id 以維護版本鏈)。
* runs:記錄每次模型調用(優化或迭代)。
* templates:存儲模板(內置模板與用戶自定義模板)。
工具調用 API¶
Agent 可以直接調用 prompt_optimize 工具。函數簽名如下:
prompt_optimize(prompt, mode?, direction?, provider?, model?)
→ { optimized, provider, model, elapsedMs }
參數說明:
* prompt:必填,原始提示詞。
* mode:system 或 user,默認 user。
* direction:提供則按迭代模式走(在上一版基礎上調整),不提供則爲通用優化。
* provider / model:不傳則使用會話當前路由。
返回值:
* optimized:優化後的提示詞。
* provider / model:實際使用的 provider 和 model。
* elapsedMs:耗時。
中斷:調用過程中可以通過 exec.signal 中斷。
常見問題排查¶
| 症狀 | 原因 |
|---|---|
| 插件完全沒出現 | cordis.patch.yml 的 insert 沒併入 profile,或者沒重載 DSH |
| 左欄有入口但面板打不開 | 客戶端 id 與左欄項的 id、主區的 key 不一致;或 exports.inject 少了 slots |
| 設置頁沒有本插件的分區 | Config 沒導出,或 schemastery 軟導入拿到的不是 builder |
tool "prompt_optimize" is already registered |
agent preset 裏重複聲明瞭這個工具 |
| LLM 調用報 503 / undefined | ctx.get('llm') 是空的 |
總結¶
dsh-prompt-studio 是一個專注於提示詞工程的 DSH 插件。它通過提供可視化的工作臺,讓提示詞的優化、迭代和對比變得系統化。對於需要頻繁調試提示詞的開發者或構建智能體的用戶,它提供了從手動操作到代碼調用的完整解決方案。