前言¶
在 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,资料中明确包括:
inheritmain-onlysubagents-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,可按下面步骤走通一条最小链路。
- 打开 Settings → Prompt profiles → Sections,新建 section:填写 id、标题与希望进入 prompt 的正文。
- 切换到 Profiles,新建 profile 并向其中添加 section;用拖拽手柄或方向键调整顺序,并为每一行选择 scope。
- 打开空白会话。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