dsh-prompt-profiles:爲 DSH 會話按名組裝並封存 system prompt

前言

在 DeepSeek Harness(DSH)裏,Agent 預設通常決定「能用什麼工具、有哪些行爲」;真正落到模型前的 system prompt,往往仍要手改長字符串,或在多個會話裏重複粘貼同一段規範。同一套工具鏈想切換「 terse 審查員」和「按團隊文風寫文檔的專家」,缺少一個可複用、可排序、且與會話綁定的配置層。

@knopki/dsh-prompt-profiles(倉庫 knopki/dsh-prompt-profiles)在 DSH 的 profile 維度上再增加一條軸:prompt profile——把可複用的 system prompt 片段組成命名配置,在會話啓動時選定並封存進該會話的 prompt,之後不再改寫。維護者爲 knopki;在社區目錄中歸類爲模型推理相關插件。

這是什麼

插件全稱 npm 包名 @knopki/dsh-prompt-profiles,當前資料中的版本爲 0.2.5,許可證 MIT。它不改變 Agent 預設本身,而是決定「這個 Agent 被如何告知去工作」:profile 是有序的 section 引用列表,每個引用自帶順序與作用域(scope);會話開始時選定 profile(或顯式選 None),在組裝 session prompt 時解析並固定,恢復會話時復現啓動時的 prompt 組合。

不選 profile 時,prompt 組裝保持原樣(零默認侵入)。

核心功能

下面列出的能力均來自項目 README,可按需組合使用。

可複用 section 與命名 profile

  • Section:帶 id、標題與正文的片段,寫一次可在多個 profile 中引用。
  • Profile:section 引用的有序列表;同一 section 在不同 profile 裏可以有不同的順序與 scope。
  • 封存(sealed):profile 在 session prompt 組裝時解析並固定;已在跑的會話保留已封存內容,新會話才應用新選擇。

按引用的 scope

每個 section 引用可選 scope,資料中明確包括:

  • inherit
  • main-only
  • subagents-only

子 Agent 可以收到主會話看不到的指引;同一 section 在一個 profile 裏收窄、在另一個 profile 裏保持更廣範圍。

排序與容錯

  • Section 按 profile 順序輸出,並在平臺內置 prompt 材料中佔據穩定位置。
  • 未知、越 scope、已禁用、爲空或無法解析的 section 會被跳過,而不是導致會話失敗。
  • 顯式選擇 None 會記錄爲「主動不修改 system prompt」,同樣封存。

Web 端編輯與 Composer chip

  • 編輯入口在 Web GUI:Settings → Prompt profiles(Profiles / Sections / Preview 三個標籤),支持拖拽與鍵盤排序、搜索、used-in 與來源信息、按 profile 預覽、防抖自動保存;併發編輯會檢測並 reload,避免靜默覆蓋。
  • 空白會話的 Composer 裏,在 permission、plan 旁出現 profile chip;至少存在一個 profile 時才顯示。選擇按工作區記憶。
  • 在 complete 模式(例如 preset 設置 config.complete: true 的 minimal)下,引擎會丟棄所有 prompt section,chip 會對觸發條件給出警告,profile 在該模式下無效。

Prompt 變量

Section 正文可使用 {{name}} 佔位(例如 {{cwd}})。運行時僅在封存時嚴格替換;未知或格式錯誤的引用會導致該 section 被丟棄。編輯器預覽較寬鬆,並在 Preview 中列出被跳過的 section 及原因。

配置與存儲位置

數據 位置
Section、profile 定義及行級覆蓋 本 bundle 寫入的 cordis.patch.yml 中的 patch 行
default 與 lastByWorkspace prompt-profiles 主行的 volatile 設置
每會話封存快照 $DSH_HOME/storages/prompt_profiles/sessions/<sessionId>.json

Web 客戶端經平臺 Remote channel 訪問宿主,無需額外獨立傳輸層。界面語言支持 English、Russian、Chinese。

安裝與啓用

安裝前請確認 DSH 版本在插件聲明的 peer 窗口內:>=0.1.7-rc.2 <0.2.2-0;資料註明在 0.2.1-alpha.2 上驗證。Node 引擎要求見 package.json:^22.19.0 || >=24.0.0。

官方 npm 安裝命令:

dsh plugin --profile web add @knopki/dsh-prompt-profiles

從本地路徑或 git URL 安裝(資料原文示例爲本地路徑):

dsh plugin --profile web add /path/to/dsh-prompt-profiles

lib/ 爲預構建產物,安裝不會觸發構建。首次安裝可通過 HMR 生效;替換已安裝副本需要重啓 DSH。

卸載:

dsh plugin --profile web remove @knopki/dsh-prompt-profiles

典型用法

按 README Quick start,可按下面步驟走通一條最小鏈路。

  1. 打開 Settings → Prompt profiles → Sections,新建 section:填寫 id、標題與希望進入 prompt 的正文。
  2. 切換到 Profiles,新建 profile 並向其中添加 section;用拖拽手柄或方向鍵調整順序,併爲每一行選擇 scope。
  3. 打開空白會話。Composer 裏 permission、plan 旁的 chip 選擇本 session 使用的 profile;同一工作區下次開新會話會沿用該選擇。

已在運行的會話不受後續 profile 或 section 編輯影響,除非是針對「從現在起的新會話」。

在 Preview 標籤可查看選定 profile 與內置 section 的相對位置,以及被跳過的條目與原因,便於對照運行時封存行爲。

適用場景與注意

適合誰

  • 需要在同一 Agent 預設下切換多種「工作方式 / 文風 / 審查規範」,且希望配置可 diff、可 review(落在 cordis.patch.yml)。
  • 團隊希望把 system prompt 拆成可複用塊,並對主會話與子 Agent 分別下發不同指引。
  • 依賴 DSH Web 界面管理 prompt,而不是手改單一巨型 system 字符串。

使用注意

  • 插件以當前 DSH 進程權限運行;安裝前請自行查看 GitHub 源碼 與 MIT 許可證,確認符合你的安全與合規要求。
  • 修改 section 的 id 不會自動改寫 profile 中的引用;若重命名 id,響應會列出仍引用舊 id 的 profile,需手工修正。
  • 來自其他 bundle 的 section 其 id 鎖定,只能禁用,不能隨意改 id。
  • DSH 社區插件目錄(如 SkillHub)爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;版本與星標以各站點與倉庫當時信息爲準(目錄線索中 GitHub 星標爲 0)。

結尾

dsh-prompt-profiles 把「怎麼告訴 Agent 工作」從 Agent 預設裏拆出來:section 複用、profile 排序與 scope、會話級封存,並在 Web 裏可視化編輯與選擇。若你在 DSH 裏已經用 profile 管工具與行爲,可以把它當作 system prompt 的平行配置軸。

  • 目錄頁:https://www.skillhub.cn/plugins/knopki/dsh-prompt-profiles
  • 倉庫:https://github.com/knopki/dsh-prompt-profiles
羽毛球分组比赛记分
小程序二维码

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

小夜