dsh-prompt-editor:在「更多設置」裏統一管理全局系統提示詞

前言

DeepSeek Harness(DSH)裏,每個 agent 的系統提示詞由預設和部署級配置組合而成。若你希望「所有會話、所有 agent(含子 agent)都按同一套習慣回覆」——例如先給結論、代碼用大白話、語氣乾脆少客套——在會話裏臨時說一遍可以,但新開會話就要重說,子 agent 也帶不上這些偏好。

更直覺的做法是去改 dsh-system-prompt 的 personaPrefix,但官方 Agent 預設會爲每個 agent 掛 @deepseek-ai/dsh-persona,其段落名與部署級人設同名,語義是「遮蔽」而非並列追加,因此那樣改往往不會生效且不會報錯:配置裏能讀到,模型卻收不到。

dsh-prompt-editor 是社區維護的 DSH 客戶端插件(維護者 AGImentu,MIT 許可證,當前 package 版本 0.1.0)。它在「更多設置」裏增加一頁,用來查看、修改並保存所有 agent 共用的全局系統提示詞;保存後由 Loader 立即重組,下一輪對話即生效。下文介紹它的定位、能力、安裝方式與使用注意。

這是什麼

一句話:dsh-prompt-editor 把「個人回覆偏好」做成一份全局設置——在設置頁寫一次,之後所有 agent、子 agent 與新開會話都會自動帶上,無需逐個交代。

插件純 JavaScript(ESM),無編譯步驟,不改 DSH 內核,只使用官方公開的插槽與服務。宿主側註冊獨立段落名 prompt-editor:global-instructions(order 10),插入位置在官方身份行與人設前綴之後、第一方工具說明之前;因名字唯一,不會被 Agent 預設遮蔽。

分類上屬於客戶端插件:瀏覽器半邊往 settings.section 插槽註冊設置頁(order 310),界面跟隨 --dsw-alias-* 主題變量,支持中英文文案。

核心功能

以下能力均來自倉庫 README 與 package.json 描述,安裝前可在 GitHub 自行覈對源碼。

  1. 打開即顯示當前保存的全局指令文本,讀取的是當前 profile 的真實配置。
  2. 保存即生效:寫入當前 profile 的 cordis.patch.yml,由 Loader 立即重組,下一輪對話使用新提示詞,無需重啓客戶端(僅改瀏覽器半邊 client.js 時刷新頁面即可)。
  3. 清空即取消自定義:輸入框清空再保存後,配置中的覆蓋項會被移除。
  4. 設置頁第一行腳註會顯示當前配置來源文件路徑,便於對照本機 profile 目錄。

安裝與啓用

前置條件:DSH 能正常運行(Electron 桌面客戶端或 dsh web)。

方式一:插件管理器(推薦,尤其桌面版)

側欄「插件」→「添加插件」→ 粘貼本倉庫的本地絕對路徑(例如 D:\Desktop\dsh-prompt-editor)→ 安裝。管理器會自動完成 pnpm 鏈接、把本包加入 dsh.profile.bundles,並通過 HMR 立即激活。

方式二:CLI

dsh plugin --profile <profile> add github:AGImentu/dsh-prompt-editor

Electron 桌面客戶端的 profile 由應用獨佔管理,CLI 會拒絕操作(例如提示 profile "desktop" is managed exclusively by the Electron application)。桌面版請用方式一。

方式三:手動 link(CLI 不可用時)

在 $DSH_HOME/profiles/<profile> 目錄執行:

pnpm add "link:<本倉庫的絕對路徑>"

然後把 dsh-prompt-editor 加入同一 package.json 的 dsh.profile.bundles 數組。

安裝後重啓客戶端(或等待 HMR 重組),「更多設置」中會出現全局系統提示詞頁面(README 截圖顯示其位置在「費用統計」等插件頁附近,具體以你本機側欄爲準)。

典型用法

  1. 打開客戶端「更多設置」,進入本插件註冊的全局系統提示詞頁。
  2. 在文本框中編寫或修改希望所有 agent 遵循的指令(例如回覆結構、語氣、代碼解釋方式等)。
  3. 保存;下一輪對話即帶上新段落。若需撤銷自定義,清空文本框後再次保存。

配置落盤形態示例(寫在當前 profile 的 cordis.patch.yml):

- id: prompt-editor
  name: "dsh-prompt-editor"
  config:
    text: |-
      ...你的提示詞...

可在設置頁通過「打開配置文件」類入口定位到上述文件(以插件實際 UI 爲準)。提示詞中可使用 DSH 渲染期變量,例如 {{model}}、{{cwd}} 由框架保證存在;寫錯變量名會導致提示詞組裝失敗,DSH 會明確報錯,不會靜默降級。

工作原理(簡要)

宿主半邊(index.js)通過 ctx.systemPrompt.section({ name, order, text }) 註冊段落,並通過 ctx.webServer.register 提供 GET /prompt-editor/prompt 與 POST 讀寫;寫入使用 ctx.configEditor.edit(),具備校驗、原子替換與立即重組,被更高層覆蓋時會明確拒絕而非寫入無效文件。

瀏覽器半邊(client.js)僅向 settings.section 註冊一頁 UI(React,無 JSX 構建步驟)。

文件 職責
index.js 宿主:註冊系統提示詞段落與 HTTP 路由
client.js 客戶端:設置頁 UI
cordis.patch.yml 向 profile 組合包插入宿主行
package.json 聲明 dsh.bundle.patch 與 dsh.client

適用場景與注意

適合誰:需要在 DSH 內長期統一 agent 行爲風格、且不想每個會話重複口述偏好的開發者或重度用戶。

權限與安全:插件以當前 DSH 進程權限運行;安裝前應閱讀倉庫源碼與 MIT 許可證,確認路由與配置寫入行爲可接受。README 註明:讀寫路由與其它本地插件路由一樣僅監聽本機,沒有額外的 cookie 校驗,本機其它程序理論上也可調用並改寫提示詞。

已知限制(來自 README):

  • 修改宿主 index.js 後需重啓客戶端(Node 側不參與熱更)。
  • 只作用於當前 profile:dsh web 與桌面客戶端是不同 profile,需分別配置。
  • 不要依賴直接改 personaPrefix 來達到同樣效果;本插件的設計目的就是繞過預設遮蔽問題。

DSH 生態理念是「一切皆插件」;社區插件目錄(如 skillhub.cn)爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。本插件在目錄頁與 GitHub 上的星標等信息以各站點當時展示爲準(抓取時 GitHub 星標爲 0)。

結尾

若你的痛點是「全局一次設定、所有 agent 與新舊會話一致生效」,dsh-prompt-editor 提供官方插槽之上的可維護路徑:設置頁編輯、cordis.patch.yml 落盤、保存後下一輪對話生效。

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

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

小夜