dsh-system-prompt-studio:按會話在運行時查看與覆蓋 system prompt

前言

在 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 沙箱外執行,應只對你信任的源碼開啓。

典型用法

  1. 在任意對話標題欄點擊 System prompt(若本會話已有覆蓋,按鈕上會帶點)。全新對話時標題欄可能被 Harness 隱藏,則在歡迎區使用 Set system prompt。
  2. 選擇作用範圍:this conversation 或 global default(全局默認僅作用於頂層對話,不含 subagent)。
  3. 選擇模式、填寫文本並保存;下一條消息起生效。
  4. 展開底部兩個只讀塊,對照實際上次請求內容與段落列表。

尚未發過第一條消息的對話也可以先設好覆蓋: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
羽毛球分组比赛记分
小程序二维码

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

小夜