前言¶
DeepSeek Harness(DSH)是面向智能体开发者的提示词工程与运行时管理工具。在多插件协作场景下,宿主自身的身份段与其它 bundle 的提示词段经常互相覆盖、冲突。如果不想修改 DSH 源码,又希望在每次请求中注入统一的身份与规则,就需要一个能动态接管系统提示的 bundle。menghuanshiguang/dsh-sunder 就是为此设计的 DSH 插件:它通过注册三段提示词与访问器守卫,把指令层面的控制权交给你,而不是宿主默认行为。
它是什么¶
dsh-sunder 是一个 DSH bundle(插件),由维护者 menghuanshiguang 开源,当前版本 1.6.1,在 GitHub 上有 1 个星标。它通过三个提示词段(sunder:identity、sunder:rules、sunder:footer)和一组 sunder_* 工具,在每轮请求中动态注入身份声明、规则与公告,并防止其它插件整段替换导致控制权丢失。它不修改 DSH 源码,不扫描项目目录,不提权或绕过审批,只改动内容层的提示词。
核心功能¶
三段提示词与预设¶
插件注册三段提示词,分别占据系统提示的首段、工具段之后、以及整份提示的末尾。规则段提供 full、concise、dev 三档预设,分别对应完整规则、压缩规则(约 60% 长度)与开发模式附加段。通过 preset 配置项选择,不改变三段在提示词中的顺序。
关闭宿主身份段¶
bundle patch 会把宿主的 system-prompt 的 includeHarnessIdentity 置为 false,避免默认身份声明与 Sunder 段互相打架,让 Sunder 的身份声明排在第一位。
防止被整段替换¶
插件给 systemPrompt.assemble 装了一层访问器守卫(guard)。每次组装后,它补齐缺失的 sunder:* 段;当其它插件用 complete: true 整段替换时,Sunder 用三段整体替换那一段,而不是与它共存。守卫失效时还有 system-prompt/assemble waterfall 兜底。
公告中心¶
插件从远端 feed 拉取公告,支持镜像链兜底。网络不通时使用随包的 announcements.json。未读公告以运行期上下文的形式进入当轮提示,也可逐条确认。公告是纯文本,只做字符串投影,不当作代码执行。
每轮规则卡¶
每个请求轮次的第一次请求,插件会把一段精简规则卡(约 100 字)作为真实 user 消息追加到本批输入末尾。这条消息排在运行期上下文快照之后、模型回答之前,任何 scope、complete 段、历史压缩都无法挪动或删除它。同一 turn 不会重复注入。
更新检查与安装¶
插件会检查 GitHub Releases,缓存 6 小时。发现新版本时,会在当轮提示里带一句提醒。需要时调用 sunder_update action=apply 直接安装新版本,它会先快照、校验包名,再写安装目录。
可观测工具¶
插件注册 sunder_status、sunder_config、sunder_prompt 三个工具,分别返回版本、生效配置和最终提示词文本。DSH 设置页有一个只读的 Sunder 分区与未读公告横幅。所有持久化数据在一个 JSON 文件里。
安装与启用¶
一键脚本(推荐)¶
在仓库根目录执行:
node scripts/install.mjs # 安装到 $DSH_HOME/profiles/desktop
node scripts/install.mjs -p D:\some\profile # 指定其它 profile
node scripts/install.mjs --dry-run # 只看计划,不写文件
node scripts/install.mjs --uninstall # 卸载
脚本会在 <profile>/node_modules/dsh-sunder 建 junction 指向本仓库,在 <profile>/package.json 的 dependencies 写入 "dsh-sunder": "link:<仓库路径>",并把 dsh-sunder 追加到 dsh.profile.bundles。
手动挂到 profile¶
在 profile 的 package.json 里添加依赖,并加入 bundles 列表:
{
"dependencies": {
"dsh-sunder": "link:D:/dsh/sunder"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-sunder"
]
}
}
}
然后在 profile 目录执行 npm install 或 pnpm install,再重启 DSH。
安装后确认¶
启动日志里应出现类似 [dsh-sunder] v1.6.1 active — language=zh, preset=full, think_header=on, fake_history=on, prompt sections registered, guard=on 的信息。在会话中调用 sunder_status,能看到 placements=sunder:identity@-100000,sunder:rules@10150,sunder:footer@10300。状态文件出现在 $DSH_HOME/sunder/state.json。
典型用法¶
验证安装¶
在会话里调用 sunder_status,返回里应出现 dsh-sunder 1.6.1、preset=full、guard=on。
修改预设¶
在 profile 的 cordis.patch.yml 中配置 preset:
- id: sunder
name: dsh-sunder
inject: [systemPrompt]
config:
preset: concise
language: zh
重启 DSH 后,规则段长度会变为约 full 的 60%。
注入自定义文本¶
在配置中添加 extraPrompt:
- id: sunder
config:
extraPrompt: |
本机没有外网,别建议我查在线文档。
这段文本会追加到规则段末尾。
手动检查更新¶
在会话中调用:
sunder_update action=apply
插件会检查 GitHub Releases,发现新版本时自动安装。
适用场景与注意¶
适合需要统一身份声明与规则约束、不想修改 DSH 源码的智能体开发者。插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。它只改动提示词内容,不涉及文件读写、工具调用、沙箱与审批策略,也不转发模型流量。
短结尾¶
dsh-sunder 通过三段提示词与访问器守卫,把指令层面的控制权交给你,而不是宿主默认行为。它提供预设、公告中心、每轮规则卡与更新检查,是 DSH 生态中一个专注于内容层的实用 bundle。
参考链接¶
- 插件目录:https://www.skillhub.cn/plugins/menghuanshiguang/dsh-sunder
- GitHub 仓库:https://github.com/menghuanshiguang/dsh-sunder