前言¶
DeepSeek Harness(DSH)在发送请求前会组装 system 与用户消息;若要在不同模型上使用不同的补充说明,常见做法是改全局配置或每次手动粘贴,难以按「注入位置 + 模型」精细控制。维护者 XuezuoYS 的 dsh-prompt-inject 是 DSH 社区插件(分类:模型推理),在 Web 设置里提供 GUI:按八个注入点配置规则,每条规则可单独开关、排序,并指定对哪些模型生效;改完自动保存,下一轮对话即生效。配置保存在本地,只影响当前环境。
下面介绍插件定位、能力与安装用法;事实以 GitHub 仓库 README 为准。
这是什么¶
dsh-prompt-inject 面向已在使用 DeepSeek Harness 的用户:在 设置 → dsh-prompt-inject 中,为「用户消息前后缀」和 system 内六个段位编写注入规则,并按 provider/model 作用域决定是否参与本次请求。插件当前版本 0.2.0,目标适配 engines.dsh 声明的 0.2.1-rc.2;许可证 MIT。
核心功能¶
八个注入点¶
规则分两组:用户消息(前置词、后置词)与 system 段(六项按在 system 中的出现顺序排列)。
| 设置页名称 | 键 | 行为概要 |
|---|---|---|
| 用户前置词 | user.prefix |
独立 user 消息,落在当前用户输入之前,每轮只注入一次 |
| 用户后置词 | user.suffix |
独立 user 消息,落在当前用户输入之后,每轮只注入一次 |
| system 头部 | system.personaHead |
替换官方 persona 头(order 0) |
| 工具说明之前 | system.beforeTools |
新加一段(order 950) |
| 工具说明之后 | system.afterTools |
新加一段(order 3050) |
| 结构化输出之前 | system.middle |
新加一段(order 9800) |
| system 尾部 | system.personaTail |
替换官方 persona 尾(order 10200) |
| system 最末尾 | system.last |
新加一段(order 10300) |
未配置规则的「新加」段位解析为空串,官方渲染时会丢弃,不会覆盖官方内容;「替换」侧未配规则时保持官方默认。
规则卡片与保存¶
每个注入点可有多条规则,同一点内从上到下拼接,中间空一行。每条规则包含:开关、模型作用域(全部 / 指定模型 / 无应用)、多行正文,以及顺序调整、复制、删除(删除后 Toast 可撤销一次)。编辑约 500ms 后自动提交,顶部显示 保存中 / 已保存 / 保存失败,无单独保存按钮。
模板字段¶
规则正文支持发送时替换:
| 字段 | 替换为 |
|---|---|
{{model}} |
本次请求实际模型 id,如 deepseek-flash |
{{provider}} |
模型所属 provider,如 deepseek-account |
{{cwd}} |
当前会话工作目录绝对路径 |
用户前后缀在注入时即渲染并写入历史;system 各项在每次组装 system 时渲染。无法识别的字段名会原样保留;若要字面量 {{model}},可写成 {{ model }} 等。
模型作用域¶
模型键格式为 <provider>/<model>,例如 deepseek-account/deepseek-flash。勾选「全部」表示对所有模型生效(含以后新增);仅勾选具体模型时,未勾选的模型不匹配。判定「本次用哪个模型」时,优先官方模型选择投影,其次会话最近一次请求路由,再退到 agent 建立时的选项。
安装与启用¶
插件以 DSH 自带命令从 GitHub 安装到指定 profile;--profile 与日常启动一致(Web UI 常用 web,桌面版为 desktop)。
dsh plugin --profile web add github:XuezuoYS/dsh-prompt-inject
需要钉死版本时,在仓库名后加 commit:
dsh plugin --profile web add github:XuezuoYS/dsh-prompt-inject#<sha>
本包为纯 JS 手写包,无 prepare / install 等构建脚本。装完后若 DSH 已在运行,按命令提示决定立即生效或重启。不启动进程也可检查配置层是否包含该插件:
dsh --profile web --dump-config # 应能看到一行 "# == dsh-prompt-inject"
卸载(不删除规则文件,重装后配置仍在):
dsh plugin --profile web remove dsh-prompt-inject
版本匹配:package.json 中 engines.dsh 为 0.2.1-rc.2。DSH 从 0.2.1 起会校验该字段;不满足时整个 bundle 会在启动诊断的 skippedBundles 里被静默跳过,表现像「插件不见了」,需改 engines.dsh 或对齐 DSH 版本。
典型用法¶
在设置页配置¶
- 打开 设置 → dsh-prompt-inject。
- 在目标注入点点击「+ 新增规则」,填写正文;需要时用顶部字段徽章插入
{{model}}等。 - 点击模型作用域胶囊,选择「全部」或具体
provider/model。 - 等待顶部显示「已保存」后,在新会话或下一轮发送中验证效果。
配置文件(供排查)¶
默认路径:~/.dsh/dsh-prompt-inject/rules.json(Windows 下一般为 C:\Users\<你>\.dsh\dsh-prompt-inject\rules.json)。结构示例:
{
"version": 1,
"revision": 12,
"slots": {
"user.prefix": {
"rules": [
{
"id": "r1",
"enabled": true,
"text": "总是用中文回答",
"models": { "all": true, "list": ["deepseek-account/deepseek-flash"] }
}
]
},
"system.beforeTools": { "rules": [] }
}
}
官方建议仅在设置页修改;文件损坏或版本不认识时会带时间戳重命名为 rules.json.<时间戳>.bad 并以空配置继续运行。
适用场景与注意¶
适合谁:需要在 DSH 里统一维护「按模型差异化」的系统说明、工具前后约束或用户侧固定前后缀,且愿意在 GUI 中管理规则列表的开发者。
用户前置词 / 后置词的设计代价(设置页在该两节顶部有说明):注入内容是独立 user 消息,写入会话历史后不会被压缩、清除或还原,会随轮次累积;上一轮后置词可能夹在上一轮原文与本轮输入之间,易被模型误读为补充发言。因此这两处宜写不易引起误解的固定要求;若只希望某段话只在 system 生效、不进入用户历史,应使用 system 相关注入点。
运行与信任:插件在 DSH 进程内加载,读写本地规则与参与请求组装;安装前宜自行查看 源码与 MIT 许可证。
其它已知限制(摘自 README):设置页不展示「当前模型」;无最终拼接预览;单注入点最多 200 条规则、单条正文最多 20000 字、单条规则最多 500 个模型键;直接改 DSH 配置文件或远端上下架模型时,需刷新页面以更新模型目录。
结尾¶
dsh-prompt-inject 把「发送前 Prompt 注入」收到设置页:八个注入点、按模型作用域、模板字段与自动保存,适合在 DSH 生态里做可复现的模型级提示词管理。社区目录页:SkillHub - dsh-prompt-inject;仓库:github.com/XuezuoYS/dsh-prompt-inject。