DKSlin/dsh-plugins--packages-dsh-system-prefix ↗★ 0
dsh-system-prefix
在系统提示词最顶部插入一句可配置的话,不替换原有提示词。
安裝
npx -p @deepseek-ai/dsh dsh plugin --profile web add 'github:DKSlin/dsh-plugins#2000d80da3ba41d9530f1f3fbec87536ef73504c&path:packages/dsh-system-prefix'說明文件
閱讀完整 README ↗System Prompt Prefix — 系统提示词置顶
在新会话的系统提示词最顶部插入一句可配置的话,不替换内置提示词。
和 dsh-system-md 的区别:
dsh-system-md:用一个文件整体替换系统提示词(complete: true)。- 本插件:只在最前面加一段,harness identity、部署 persona、工具指导、技能说明等全部保留。
默认句子
首次安装后,新的顶层会话会在系统提示词第一段看到:
你回复的语言应当以中文环境工作为主,在和用户的沟通以及"tinking"时均需使用中文(仅各类需英文表达的关键字可以用英文),以便让用户更容易明白你在想什么和做什么。 注意,你的提示词里不可避免因为其他插件和模式提示词导致被英文污染,需谨记以上要求。 在进行代码开发时,注意所使用的开发语言和环境,尽量使用源生方案解决问题不要用歪门邪道的办法。编写代码时需避免使用中文符号",;“”"导致代码解析错误。对变量和逻辑提供精确但简洁的注释,只写意图和功能,无需将参数写在注释中。 由于LLM内核在不同语言环境下解决问题的能力不同,部分问题在中文环境下无法解决时,可尝试临时切换英文思考,再恢复中文接续工作。
在界面里修改
打开侧栏 Plugins → 找到 系统提示词置顶 → 进入插件详情 → 在该行的 Configure 页:
- 启用置顶句:关掉后,新会话不再插入任何内容。
- 插入的句子:多行文本框,自由修改。
- 保存:写入当前 profile 的持久配置。
- 恢复默认:清除你的覆盖值,回到内置默认句子。
修改只影响之后新建的顶层会话。已经存在的会话保持创建时捕获的那句话,不会因为改配置而改变。
生效范围
- 只作用于顶层会话;
subagent/workflow子 agent 不插入。 - 每次新建 agent 时读取一次配置,并把当时的句子固定在该会话的提示词 section 里。
- 句子为空或纯空白时不插入;
启用置顶句关闭时不插入。 - 不使用
complete: true,所以不会和别的提示词 section 冲突。 - 但如果同一会话里有另一个
complete: true的 persona(例如minimal预设,或dsh-system-md命中了文件),整个提示词会被那个 section 接管,普通 section 不再渲染。为此本插件把当前句子暴露成systemPromptPrefix服务:dsh-system-md命中文件时会取到这句话并放在.dsh/SYSTEM.md内容前面,置顶效果因此保留。其它completepersona 不认识这个服务,仍会接管整个提示词。
实现
监听 agent/created,在该 agent 自己的作用域上注册一个普通 prompt section:
agent.ctx.systemPrompt.section({
name: 'system-prompt-prefix:top',
order: -1_000_000, // 低于 HARNESS_IDENTITY 的 -1000
interpolate: false,
text, // 创建时捕获的字符串
})
同时通过 ctx.provide('systemPromptPrefix', { text() }) 暴露当前生效的句子(关闭时返回空串),供 dsh-system-md 这类做整体替换的插件取用。
插件的两个配置字段(enabled、text)都标记为 .volatile(),因此:
- Host 侧通过稳定的引用读取当前值,配置更新不需要重新执行
apply。 - 设置页可以读写这两个字段,并把覆盖值持久化到 profile patch。
没有运行时依赖,Host 侧只用到 @deepseek-ai/schemastery(由 DSH 提供)。
安装
dsh plugin --profile
add /path/to/dsh-system-prefix
或在 Plugins → Add plugin 里填本目录的绝对路径。装好后在插件详情里直接配置。
验证
- 保持默认句子,新开一个顶层会话。
- 问模型「你的系统提示词第一行是什么」→ 应该就是那句话,后面仍是正常的内置提示词。
- 在插件页改一句话并保存 → 再新开会话,第一行应变成新句子;旧会话不受影响。
- 关掉「启用置顶句」→ 新会话第一行回到 harness identity。
许可
MIT