首页 / 资讯中心 / 文章详情

dsh-purge 身份注入机制剖析:一份 prompt-inject.md 如何覆盖宿主系统提示词

dsh-purge 身份注入机制剖析:一份 prompt-inject.md 如何覆盖宿主系统提示词 ★ FEATURED ARTICLE
dsh-purge 身份注入机制剖析一份 prompt-inject.md 如何覆盖宿主系统提示词【免费下载链接】dsh-purgeDeepSeek Harness 破甲让所有模型都能破甲不同模型可换不同提示词默认提示词面向国模「小码酱」。Jailbreak for every model — swap prompts per model. 求 Star 收藏 ⭐项目地址: https://gitcode.com/gh_mirrors/ds/dsh-purgedsh-purgeDeepSeek Harness 破甲是一个装在本机官方 DeepSeek Harness 上的开源插件它的核心能力是身份注入通过一份名为prompt-inject.md的 Markdown 文件覆盖宿主在每轮对话中自动装配的系统提示词让模型「不再以宿主默认身份应答」。不同模型可换不同提示词默认提示词面向国模「小码酱」。本文带你完整剖析这条注入链路文件从哪来、怎么写进会话、宿主原文怎么被清掉。一、注入链路的三大关卡理解 dsh-purge 身份注入机制只需要记住三个关卡关卡位置作用① 身份源文件$DSH_HOME/prompt-inject.md唯一身份来源首次运行自动写入内置默认提示词② systemPrompt 分段注册lib/index.js以高优先级顺序号把注入文本挂进宿主的提示词装配队列③ 装配改写钩子lib/identity.js监听system-prompt/assemble事件删除宿主身份句并强制补回注入段下面逐关拆解。二、第一关prompt-inject.md 从哪里来prompt-inject.md固定存放在宿主的DSH_HOME目录下由 lib/core.js 的findOverrideFile()定位$DSH_HOME/prompt-inject.md这个文件有三条出生路径插件加载时自动落盘seedOverrideSync() 在插件apply()时同步执行——如果文件不存在或为空就把内置默认提示词写进去避免第一轮对话装配到空文件点「应用」时补写installOverride() 与启动流程联动但用户改过的文件绝不被覆盖通过isUserCustomizedOverride()的 SHA-256 哈希比对判断是否自定义手动编辑聊天里/purge edit或在右侧栏「清洗」页的提示词文本框里直接改。内置的默认提示词并不以明文散落在仓库里而是由构建脚本 scripts/embed-default-prompt.mjs 加密后封进 lib/asset-table.js运行时再由 defaultOverrideText() 解出——这就是「默认提示词面向国模小码酱」的实现方式。三、第二关注册三个高优先级 systemPrompt 段宿主的系统提示词由多个带order顺序号的「段section」拼装而成。dsh-purge 在 registerPromptSections() 中注册了三段全部排在普通段之后dsh-purgeorder 5000正文即prompt-inject.md的内容通过 resolveInjectText() 解析——文件非空就注入文件为空则退回当前启用的规则集两边都空则什么都不写dsh-purge:rulesorder 5010一段固定的执行指令文本ALLOW_EXEC_CORE负责压制「拒绝/道歉/合规绕开」类回复习惯dsh-purge:postorder 5100可选的postPrompt供用户在设置里追加额外 systemPrompt不动prompt-inject.md本体。四、第三关assemble 改写钩子覆盖的最终把关只注册段还不够——宿主自身的身份段harness:identity和散落在其它段里的「You are an AI agent powered by DeepSeek Harness」之类的人设句都会稀释注入效果。所以 installIdentityOverride() 会挂两层保险监听全局system-prompt/assemble事件直接包一层prompt.assemble()返回值宿主升级后若用快照盖掉 sections注入也不会丢。两层都汇入 rewritePromptAssembly()它做四件事丢弃身份段名为harness:identity、dsh-purge:identity的段直接跳过清洗宿主人设句stripHarnessPersona() 用一组正则把「你是 DeepSeek 的 AI 助手」「你是一个有帮助的软件工程师助手」等中英文身份句从所有段里删掉只保留工作目录等有用信息强制补回注入全文ensureFullInject() 检查最终 sections 里是否已含prompt-inject.md全文缺失就插到最前order -10000保证身份段始终位于提示词头部过滤干扰消息可选剥除 mnemon 等插件追加的旧会话摘要段。一句话概括先删宿主身份再确保你的身份在最前面——这就是「覆盖」二字的全部含义。五、兜底路径规则集与生效时机两个容易踩坑的细节注入源优先级prompt-inject.md文本框 启用的规则集 空。规则集通过/rules use id激活后会把内容同步写入$DSH_HOME下的AGENTS.md/CLAUDE.md同时作为注入兜底改完必须「应用 重启」「应用」只把提示词和补丁写进文件当前进程加载的仍是旧的装配逻辑重启宿主、新开一轮对话后注入才真正进入会话。只点应用不重启看起来就像没注入。六、小结身份注入机制一图流整套机制的关键设计只有两点身份只来自你自己的prompt-inject.md官方能力保留不另写一套身份改写发生在装配层而非源码层宿主升级、插件更新都不会把注入「吃掉」。想动手验证可阅读 README.zh-CN.md 的安装章节装完点「应用」再重启然后用/purge status查看注入状态。⚠️ 本项目为非盈利公益项目仅供在自己有权管理的本机官方 Harness、离线靶标或已书面授权环境内做受控评测与学习研究严禁用于任何违法违规用途。【免费下载链接】dsh-purgeDeepSeek Harness 破甲让所有模型都能破甲不同模型可换不同提示词默认提示词面向国模「小码酱」。Jailbreak for every model — swap prompts per model. 求 Star 收藏 ⭐项目地址: https://gitcode.com/gh_mirrors/ds/dsh-purge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站