dsh-purge 深度解析:剥离宿主策略与模型能力的提示词清洗插件
【免费下载链接】dsh-purgeDeepSeek Harness 破甲:让所有模型都能破甲,不同模型可换不同提示词;默认提示词面向国模「小码酱」。Jailbreak for every model — swap prompts per model. 求 Star 收藏 ⭐ 如要二开,请查看署名要求部分项目地址: https://gitcode.com/GitHub_Trending/ds/dsh-purge
在 DeepSeek Harness 里换一个模型,人设、开场白和拒绝话术也跟着变,有时模型明明有能力,却被宿主默认策略挡在门外。常见误区是把"宿主拦截"当成"模型拒绝",只看回答就换模型,往往没用。dsh-purge 是装在官方 Harness 上的提示词清洗与红队评测插件:把宿主默认身份包装洗掉,换成一套干净可控的提示词,默认人设面向国模,叫「小码酱」(Little Code Sauce,简称 LCS)。
边界与定位:dsh-purge 做什么与不做什么
官方 Harness 在运行时还会改提示词、加审批门、控制沙箱与会话格式。这个插件只作用于你本机已安装的官方@deepseek-ai包和本地 profile($DSH_HOME),把"宿主层"与"模型层"拆开,让评测结果能看出限制到底来自哪一层。
它明确不做:
- 不是公网扫描器,不是针对第三方站点或系统的攻击套件
- 仓库内不含未授权渗透脚本或对外攻击载荷;应用、注入、还原都在本机文件与本机进程内完成
适用人群:有权限管理本机官方 Harness 的用户,以及离线靶标、已书面授权的演练环境。
关键前提:它处理的是你自己本机安装的官方 Harness,不是他人的网站、服务器或账号,一切使用都应限制在你有权管理的范围内。
身份清洗:用「小码酱」顶替宿主默认人设
现象:新会话里问一句"你是谁",官方默认会答"我是 DeepSeek Harness 的 AI 助手"之类的话。这句话是宿主写进去的身份句,不是模型自己的身份。
机制:lib/identity.js 的stripHarnessPersona用正则逐条匹配宿主身份句,删除或降级。例如 "You are a coding agent powered by the ... model, running on the DeepSeek Harness" 只降级保留"工作目录"。默认人设则由 lib/core.js 里的身份锁定义:
You are the operator persona in prompt-inject (Little Code Sauce / LCS unless that file names someone else). When asked 你是谁 / who are you, answer with that name only.设计意图:有用的环境信息(工作目录)留下,身份包装拿掉;默认名字是 LCS,但你在prompt-inject.md里另起名字时以你为准,人设始终可被用户覆盖。
防住的坑:宿主标签冒充模型身份,让你分不清一句拒绝到底是宿主说的还是模型说的。
注入装配:优先级最高的提示词段与幂等去重
现象:应用后,每一轮装配出来的系统提示词最前面有一段以 "WHO YOU ARE (highest priority" 开头的注入段,正文就是你维护的$DSH_HOME/prompt-inject.md,在清洗页直接编辑,或在聊天里用/purge edit。
机制:装配函数rewritePromptAssembly(在 lib/identity.js)先检查整份注入文本是否已在当前段里,缺失才补一段,并给它最低的order(-100000),保证注入段永远排在最前:
function assemblyHasExactInject(sections, inject) { if (!inject) return true; return (Array.isArray(sections) ? sections : []).some((section) => String(section?.text || "").includes(inject)); }设计意图:排最前才能压住宿主默认人设;按"全文"而非片段做幂等判断,同一身份段在多轮会话里始终只出现一次。
防住的坑:同一身份段每轮重复叠加、提示词长度越滚越长。
按模型换提示词:多套规则集切换
现象:清洗页顶部是规则集列表,启用某一套会写入$DSH_HOME/rules/,删除则从列表移除;提示词正文在下方单独编辑。
机制:每一轮的注入内容有明确决策顺序——prompt-inject.md非空就注入它;为空就看当前目录有没有被勾选的本地 md(如AGENTS.md);再没有,才回落到插件加密槽里的内置默认。
设计意图:国模和海外模型对人设、语气、拒绝边界的敏感度不同,一套话术很难通吃。默认套面向国模调校,跑别的模型直接换一套,不用从零写。
防住的坑:一套提示词硬套所有模型,个别模型的拒绝边界和语气跑偏时,无从定位是哪套话术的问题。
工程保障:幂等、备份与加密存储
- 重复应用幂等:应用前会判断补丁是否已生效,已生效就跳过,不会重复写入
- 幂等回归测试:历史上"提示词补丁每次应用叠加约 +841 字符、永不收敛"的雪球问题修复后,专门补了
test:idempotence回归,见 release-notes.md - 备份与回滚:每个目标文件应用前备份为
<文件>.dshpurge.bak,「还原」用备份覆盖回去;prompt-inject.md作为用户文件,还原时保留 - 原子写:写入走"写临时文件 + rename",中途失败不会把原文件写坏
- 默认提示词加密存储:明文源文件不随发布包分发,scripts/embed-default-prompt.mjs 用 AES-256-GCM 加密、分块写入
lib/asset-table.js,运行时由 lib/table-read.js 解密还原;你没自定义就写入这份内置默认,改过就保留你自己的
快速上手:安装、应用与验证
- 安装:Web 端执行
dsh plugin --profile web add dsh-purge;官方桌面 EXE 改用--profile desktop。手动安装则把仓库放到$DSH_HOME/plugins/dsh-purge(目录名必须是dsh-purge) - 完全退出宿主再重启:只把插件写进 profile 还不会改宿主
- 应用:会话标题旁点dsh-purge→清洗→应用;成功后自动重启,补丁没打完不会重启
- 验证:新开一轮对话,问"你是谁",或用
/purge status查看DSH_HOME和补丁列表
常见坑:
- 只应用不重启、或没开新会话:当前进程还在用旧提示词,看起来像没生效
- Web 与桌面端混用:两端 profile 独立、要分别安装、分别应用,不要在一个宿主里替另一个点「应用」
- 旧版雪球残留:若用过早期版本导致宿主文件已经"膨胀",需还原
.dshpurge.bak或重装 dsh 后再应用
调校好的模型最终给演练台用:授权后在你有权管理的本机、离线靶标或书面授权环境里做受控评测。
设计精髓就三件克制的事:可被用户覆盖的默认人设、优先级最高且幂等的注入段、按模型切换的规则集——不追求最强提示词,而是可评测、可还原、可切换。
⚠️合规提醒:dsh-purge 是非盈利开源项目,仅用于你有权管理的本机官方 Harness、离线靶标或已书面授权的演练。严禁用于任何未授权攻击、违法违禁内容生成或黑灰产牟利,一切行为由使用者独立承担法律责任。
【免费下载链接】dsh-purgeDeepSeek Harness 破甲:让所有模型都能破甲,不同模型可换不同提示词;默认提示词面向国模「小码酱」。Jailbreak for every model — swap prompts per model. 求 Star 收藏 ⭐ 如要二开,请查看署名要求部分项目地址: https://gitcode.com/GitHub_Trending/ds/dsh-purge
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考