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
羽毛球分组比赛记分
小程序二维码

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

小夜