为每个模型单独配置并注入系统提示词
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/25 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/caixuf/dsh-prompt-armor.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 7 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 13 处,展示前 11 条)
- 发起网络请求client.js:45
const response = await fetch(`${API}/${method}`, init) - 读取本地文件lib/rules.js:148
stamp = statSync(this.indexPath).mtimeMs - 读取本地文件lib/rules.js:166
raw = JSON.parse(readFileSync(this.indexPath, 'utf8')) - 读取本地文件lib/rules.js:181
body = readFileSync(profilePath(this.dir, profile.id), 'utf8') - 读取本地文件lib/rules.js:190
this.stamp = statSync(this.indexPath).mtimeMs - 读取本地文件lib/rules.js:208
raw = JSON.parse(await readFile(this.indexPath, 'utf8')) - 读取本地文件lib/rules.js:221
this.texts.set(profile.id, await readFile(profilePath(this.dir, profile.id), 'utf8')) - 写入本地文件lib/rules.js:264
await mkdir(this.profilesDir, { recursive: true }) - 写入本地文件lib/rules.js:275
await writeFile(this.indexPath, `${JSON.stringify(index, null, 2)}\n`, 'utf8') - 写入本地文件lib/rules.js:277
await writeFile(profilePath(this.dir, profile.id), this.texts.get(profile.id) ?? '', 'utf8') - 删除本地文件lib/rules.js:326
await rm(profilePath(this.dir, id), { force: true })
扫描于 2026/10/31(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
按模型给 DeepSeek Harness 注入提示词:通过官方 system-prompt 接缝,让每个模型都有自己的系统提示词。
README
由 DeepSeek 最新模型翻译生成dsh-prompt-armor
在 DeepSeek Harness 里,给每个模型配自己的系统提示词。
配置档由名字、提示词和适用的模型模式组成。智能体组装系统提示词时,匹配当前模型的配置档会被注入。于是同一个 Harness 下,不同模型拿到不同指令,不用重启,也不用改核心文件。
为什么需要它
社区插件 dsh-purge 做的是同一件事——给每个模型注入提示词——但它的做法是用一张 355 KB 的字符串替换表,重写 @deepseek-ai/ 里的文件。这种做法有三个后果:
- 对版本很脆弱。 替换表匹配的是源码里的字面字符串,Harness 发版时挪一个空格,插件就悄悄失效。每发一版,表里就得加一个分支。
- 会被包管理器抹掉。 补丁打在 node_modules 里,重装一次就没了,插件下次启动还得重新打。
- 只能靠猜。 官方工作区的基线是一条用户消息,不是提示词段落,所以插件那个「丢掉基线」的过滤器按名字和文本匹配,通常根本不会触发。
这个插件走的是官方接口。Harness 专门为这个用途暴露了 ctx.systemPrompt.section(),Harness 自己也用它给每个工具写引导文本。段落注册在插件自己的上下文上,卸载插件就一并移除,系统提示词回到默认形态。
它还实现了 dsh-purge 只在宣传里提过的东西:按模型分发。
展开完整文档(README 剩余 1 节)
dsh-prompt-armor
在 DeepSeek Harness 里,给每个模型配自己的系统提示词。
配置档由名字、提示词和适用的模型模式组成。智能体组装系统提示词时,匹配当前模型的配置档会被注入。于是同一个 Harness 下,不同模型拿到不同指令,不用重启,也不用改核心文件。
为什么需要它
社区插件 dsh-purge 做的是同一件事——给每个模型注入提示词——但它的做法是用一张 355 KB 的字符串替换表,重写 @deepseek-ai/ 里的文件。这种做法有三个后果:
- 对版本很脆弱。 替换表匹配的是源码里的字面字符串,Harness 发版时挪一个空格,插件就悄悄失效。每发一版,表里就得加一个分支。
- 会被包管理器抹掉。 补丁打在 node_modules 里,重装一次就没了,插件下次启动还得重新打。
- 只能靠猜。 官方工作区的基线是一条用户消息,不是提示词段落,所以插件那个「丢掉基线」的过滤器按名字和文本匹配,通常根本不会触发。
这个插件走的是官方接口。Harness 专门为这个用途暴露了 ctx.systemPrompt.section(),Harness 自己也用它给每个工具写引导文本。段落注册在插件自己的上下文上,卸载插件就一并移除,系统提示词回到默认形态。
它还实现了 dsh-purge 只在宣传里提过的东西:按模型分发。上游 README 说「按模型换提示词」,但它的代码里找不到任何模型、服务商或路由的键——注入的提示词对所有模型都一样。这里模型 id 从组装上下文里读,分发是真的。
安装
dsh plugin --profile desktop add <path-to-this-directory>
或者在桌面客户端里打开 Settings → Plugins,在安装框里填目录。
使用
打开 Settings → Model Prompts。面板左侧列出配置档,右侧编辑选中的那个。
| 字段 | 含义 |
| Name | 面板里显示的名字,也可以选择显示在注入文本上方。 |
| Applies to | 模型模式,一行一个。 是通配符。 |
| Enabled | 这个配置档是否参与。 |
| Prompt | 注入系统提示词的文本。 |
提示词正文里会替换两个变量:{{model}} 和 {{provider}}。其他 {{…}} 原样保留。
匹配
最具体的模式胜出:
- 精确的模型 id 胜过通配符;
- 长的通配符胜过短的;
- 禁用的配置档永不生效;
- 没有匹配时,什么都不注入,系统提示词保持不变。
所以列出 deepseek-v4.1-flash 的配置档只作用于那个模型,列出 deepseek- 的作用于所有 DeepSeek 模型,列出 的则是兜底。
文件
Host 把规则保存在磁盘上,位于 $DSH_HOME/prompt-armor/ 下:
index.json the profile list and their model patterns
profiles/<id>.md one profile's prompt text
面板通过 Host 写入,但这些文件就是普通文本:用任意编辑器修改,运行中的智能体下一步就会读到改动。
配置
插件在 cordis.patch.yml 中的那一行接受这些键:
| 键 | 默认值 | 含义 |
| enabled | true | 插件是否提供这一段内容。 |
| dataDir | $DSH_HOME/prompt-armor | 配置档存放的位置。 |
| order | -100000 | 注入文本在提示词中的位置。 |
| showProfileName | true | 注入文本开头是否显示配置档名称。 |
order 是普通数字,不依赖某个具名槽位,将来版本重新编号也不受影响。默认值把注入文本放在最前面,排在 harness 自己的身份行之前,这样人设读起来是整体框架,而不是附带说明。取值大于 10200 时,文本改放到部署人设后缀之后,读起来像一条收尾指令。
工作原理
Host 这一半注册一个提示词段:
ctx.systemPrompt.section({
name: 'dsh-prompt-armor:profile',
order: config.order,
interpolate: false,
text: (context) => {
const model = context.agent?.options?.model
const profile = selectProfile(store.profiles, model)
return profile === null ? '' : store.text(profile.id)
},
})
text 是函数,每次组装提示词都会求值,因此能读到本次组装对应的模型。注册这一段时用了 interpolate: false,因为用户提示词里可能合法地包含 {{…}},而 harness 遇到未知变量引用会抛错。
浏览器这一半是纯 JavaScript,没有构建步骤:它注册一个 settings.section 条目,通过 harness 自带 web 服务器上的一条小型 JSON 路由与 Host 通信。写操作的请求带自定义请求头,跨源页面无法驱动它们。
测试
node test/rules.test.mjs # the matcher and the store
DSH_ASAR=<resources>/app.asar node test/integration.test.mjs
集成测试从桌面版 app.asar 中解出已安装的 @deepseek-ai/dsh-system-prompt,把 Host 这一半挂到真实注册表上,再断言组装出的提示词——所以「注入文本能到达模型」是针对实际安装的 harness 验证的。
许可
MIT。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
caixuf/dsh-prompt-armor
为每个模型单独配置并注入系统提示词
相关插件 · 技能 / 提示词
人设统管ZiChuanLan/agent-purge
一份系统提示词,喂给多个 coding…
★ 931已汉化DSH
73.8
人物画像蒸馏titanwings/distilly
Distilly — 把他们的思考方式提炼成可复用的技能,供任何智能体或机器人使用。原名 Colleague Skill(原同事 Skill)。
★ 25,659已汉化DSH
71.3
推理工作空间套件Tiger3807861189/J-Space-Cognition-Suite
J-Space 是面向复杂推理、大型仓库工程、子代理协作与授权安全分析的推理时工作空间和控制套件。
★ 2,957已汉化DSH
70.5
两阶段工具锚定预设xiaobright/dsh-anchored-standard
实验性 DeepSeek Harness agent preset…
★ 3,742已汉化DSH
70.1
智能体工作流编排nrslib/takt
不再日夜盯着 AI 编码智能体。
★ 1,402已汉化DSH
70
Agent 运行时手册Electricitysheep/dsh-handbook
DeepSeek Harness dsh 从 0 到 1 深度手册:安装/插件开发/性能调优/实测案例/同模型多…
★ 827已汉化DSH
68.7