在 DeepSeek Harness (DSH) 的开发中,管理常驻的系统提示词或项目背景上下文往往比较麻烦。直接在官方配置页修改容易导致配置臃肿,而在代码中维护又缺乏灵活性。@gw/dsh-text-inject 插件提供了一个解决方案:在 DSH 官方设置页左侧栏新增「文字注入」分区,将文本注入到系统提示词或会话上下文中。内容存储在独立文件,支持热加载与历史备份。
核心功能¶
- 提示词注入:
## [system] 名称块会被追加进系统提示词,每轮对话生效。 - 上下文注入:
## [context] 名称块会被合成一条 user 消息注入会话。通过kind字段去重,通过trigger关键词门控(例如:trigger: 项目,需求)。 - 文件管理:内容全部存储在独立文件(默认
~/.dsh/text-inject/inject.md)中,与官方配置隔离。 - 热加载:修改文件保存后立即生效,无需重启 DSH。
- 历史备份:每次保存自动备份到
history/目录,保留最近 30 份,支持一键恢复。
安装与启用¶
- 复制插件目录到对应 profile 的
node_modules:
cp -r dsh-text-inject ~/.dsh/profiles/web/node_modules/@gw/
- 在 profile 的
cordis.patch.yml中追加 loader 入口:
- insert:
- id: gw-text-inject
name: '@gw/dsh-text-inject'
- 重启 DSH,打开设置页,左侧栏会出现「文字注入」分区。
配置文件格式¶
插件首次加载会自动创建默认的 inject.md 文件。文件内容支持 Markdown 格式,通过区块头区分注入类型:
## [system] 我的常驻规则
order: 40
这段会追加进系统提示词,每轮生效。
## [context] 项目背景
kind: gw-project
trigger: 项目,需求
当消息里出现「项目」或「需求」时,这段作为一条 user 消息注入会话。
- 区块头:
## [system] 名称或## [context] 名称(大小写不敏感)。 - 元数据:紧跟在块头之后,使用英文冒号。支持
order(排序)、kind(上下文去重)、trigger(关键词触发)、enabled(启用/禁用)。 - 正文:元数据之后的内容。
[context] 块必须有 kind(唯一,用于去重);trigger 留空则每轮注入。enabled: false 可临时禁用某块。
注意事项¶
- 隐私与安全:插件不访问网络、不读取凭据、不上报任何数据。读写仅限于指定的数据文件。
- 性能影响:注入的内容会进入每一轮请求,会放大提示词体积。建议
[context]块配合trigger使用,避免全量常驻。 - 依赖要求:依赖 DSH 的
systemPrompt和webServer服务。 - 兼容性:兼容 DSH 版本
>=0.1.2-rc.1。
总结¶
@gw/dsh-text-inject 通过将提示词和上下文管理从代码或官方配置中剥离,转向独立的 Markdown 文件管理,结合热加载和备份功能,为 DSH 用户提供了更灵活的配置方式。适合需要频繁调整系统指令或管理项目上下文的场景。
插件目录:https://www.skillhub.cn/plugins/1497105876/dsh-text-inject
源码地址:https://github.com/1497105876/dsh-text-inject