前言¶
在 DeepSeek Harness(DSH)裏調智能體行爲,很多人習慣改配置文件裏的 deployment 級 persona 前綴或後綴。改一次往往要重啓進程,而且同一配置會對所有會話生效,不利於「這一條對話先試一版 system prompt」的迭代。
dsh-system-prompt-studio 把查看和覆蓋 system prompt 的能力放到客戶端與會話粒度:在不重啓的前提下,針對當前對話(或全局默認)追加段落、替換某一命名的一手段落,或整體替換;改動在下一次模型請求時生效,並可在面板裏對照「實際上次請求發出的內容」與拼裝出的段落列表。
下面按定位、能力、安裝與用法、注意事項說明該插件。維護者爲 user-Mrz,分類爲客戶端插件;倉庫見 GitHub,目錄頁見 SkillHub。
這是什麼¶
插件以 scoped npm 包 @user-mrz/dsh-system-prompt-studio 分發(當前資料中的版本爲 0.2.0,許可證 MIT)。它面向 DSH Web / Desktop 共用的客戶端產物,在 Host 與 Client 兩側協同:Host 負責與會話相關的 system prompt 覆蓋邏輯,Client 提供標題欄(或歡迎區)裏的 System prompt 面板。
npm 上還存在未加 scope 的同名包 dsh-system-prompt-studio,由他人維護,不是本插件;安裝時必須使用 @user-mrz/ 前綴。
核心功能¶
看見「真實發出的」system prompt¶
面板底部只讀區域可展開查看:
- System prompt of the latest request:該對話上一次請求實際發給模型的 system prompt;
- Sections assembled for this conversation:本次拼裝所用段落的名稱、順序與字符數。
尚未完成過組裝的對話,列表會說明無法枚舉,而不是猜測。
三種覆蓋模式¶
| 模式 | 作用 |
|---|---|
| Append(默認) | 保留所有一手段落,在末尾追加你的文本,相對穩妥。 |
| Replace a section | 對某一命名的一手段落做 shadow 替換,例如 deployment:persona-suffix。 |
| Replace everything | 你的文本成爲完整 system prompt,風險最高(見下文注意事項)。 |
保存後無需 reload;下一條發往模型的消息即按新規則組裝。覆蓋規則按會話持久化,並可設置全局默認,使新建頂層對話自動繼承(子 agent 不適用全局默認)。
Fork 出的對話會沿 parentSession 鏈繼承父會話規則;面板提供 Pin,可把繼承結果固定在本會話。
編輯未保存時,Esc、點擊遮罩或關閉按鈕會提示確認,避免誤丟草稿。
插件實現僅依賴 Node 內置模塊,運行時無額外 npm 依賴,也不 import @deepseek-ai/* 包。
環境與安裝¶
要求¶
- DSH:
>=0.2.2-0且<0.3.0-0 - Node.js:
≥ 22.19.0
安裝命令¶
推薦從 npm 安裝(資料中的官方寫法):
dsh plugin --profile <profile> add @user-mrz/dsh-system-prompt-studio
將 <profile> 換成你的 profile 名;Web 構建通常爲 web。
需要固定版本時可加版本號,例如:
dsh plugin --profile <profile> add @user-mrz/dsh-system-prompt-studio@0.2.0
從 GitHub 跟蹤默認分支時,資料示例爲帶 ref 的安裝:
dsh plugin --profile <profile> add github:user-Mrz/dsh-system-prompt-studio#v0.2.0
卸載:
dsh plugin --profile <profile> remove @user-mrz/dsh-system-prompt-studio
卸載不會刪除你已保存的覆蓋內容。
安裝後¶
Host 側安裝後即生效;Client 側爲新注入的 JavaScript,刷新頁面一次後標題欄按鈕纔會出現。
可用 HTTP 檢查 Host 是否就緒(將 sessionId 換爲實際會話 ID):
curl "http://127.0.0.1:3080/api/system-prompt-studio?session=<sessionId>"
返回含 "ok":true 與 capability 字段即表示可用。
若使用 pnpm 且構建腳本被攔截:本包 prepare 僅校驗入口文件是否存在,不編譯、不寫盤;按 README 說明在 profile 的 pnpm-workspace.yaml 裏將對應 allowBuilds 設爲 true 後重試 add。授予構建權限意味着安裝時該包代碼可在 DSH agent 沙箱外執行,應只對你信任的源碼開啓。
典型用法¶
- 在任意對話標題欄點擊 System prompt(若本會話已有覆蓋,按鈕上會帶點)。全新對話時標題欄可能被 Harness 隱藏,則在歡迎區使用 Set system prompt。
- 選擇作用範圍:this conversation 或 global default(全局默認僅作用於頂層對話,不含 subagent)。
- 選擇模式、填寫文本並保存;下一條消息起生效。
- 展開底部兩個只讀塊,對照實際上次請求內容與段落列表。
尚未發過第一條消息的對話也可以先設好覆蓋:Harness 在對話創建時即創建 agent,第一條消息的組裝就會帶上你的規則。
適用場景與注意¶
適合:需要在單條對話裏快速試驗 persona、替換 deployment 後綴、或對照「模型到底收到了什麼 system prompt」的開發者;與配置文件級 persona 相比,更適合運行時、按會話迭代。
Replace everything 須謹慎:該模式會去掉全部一手指導(工具說明、結構化輸出、plan 模式策略等),工具調用質量可能明顯下降;運行時上下文(工作目錄、沙箱策略、審批策略等)仍以 user 側快照發送,不會被你的文本替換。同時會移除其他插件註冊的所有 prompt 段落——工具 schema 可能仍在,但告訴模型何時、如何調工具的說明消失,表現往往是「模型變笨」而非明確報錯。保存前面板會列出將被丟棄的段落名與字符數,並單獨標出屬於其他插件的段落數量。
若 profile 上還有會註冊 prompt 段落的第三方插件,README 建議在插件行配置中設置 allowComplete: false,從而禁用「整體替換」:面板會灰掉該模式,保存時若仍爲 complete 會返回 COMPLETE_BLOCKED;已有 complete 覆蓋不再生效並回退到一手默認(數據保留不刪)。
同一 session 裝配層只允許一個活躍的 complete 段落;若另一插件也註冊了 complete,裝配會失敗並報 multiple complete prompt sections,該對話後續模型請求可能全部失敗且界面僅顯示 request failed,需改回 Append 或 Replace a section 恢復。
安全與信任:插件隨當前 DSH 進程權限運行;安裝前應閱讀源碼與 MIT 許可證,確認 scope 包名與來源。社區目錄 SkillHub 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-system-prompt-studio 把 system prompt 的可見性與可編輯性收到會話內:三種覆蓋粒度、下次請求即生效、對照真實拼裝結果,並支持全局默認與 fork 繼承。需要固定行爲時仍可用配置文件;需要單對話試錯時用本插件更合適。
- 目錄頁:https://www.skillhub.cn/plugins/user-Mrz/dsh-system-prompt-studio
- 倉庫:https://github.com/user-Mrz/dsh-system-prompt-studio