Prompt 防御:三层拦截实战
输入层正则 → 提示词层约束 → 输出层泄漏检测 → 二次审核,可模拟攻击全链路
本页解决的问题
先给结论「Prompt 防御:三层拦截实战」要解决的关键问题是什么?
输入层正则 → 提示词层约束 → 输出层泄漏检测 → 二次审核,可模拟攻击全链路
先检查模型究竟看到了什么。 把指令、参考材料、历史、工具和输出规则拆开。上下文变得可见后,通常更容易选对修复方式。
在修改 Prompt 或模型之前,先画出一个小流程的输入和输出。
不断增加文字,但真正的问题其实是相关性、顺序或缺少边界。
匿名情感倾诉平台
用户写下心事(称为「心语」),AI 把它改写成有诗意的文字,可选择匿名发布到广场与他人共鸣。
拒绝时绝不暴露检测逻辑,统一用平台语境措辞回应攻击者:
输入层 · 正则关键词过滤
命中即拦截,不进 LLM
提示词层 · System Prompt 安全约束
LLM 自身识别注入意图
输出层 · 提示词泄漏检测
扫描输出中的系统提示词片段
防护层说明
不同场景会触发不同防护层,右侧展示每层的处理逻辑和最终返回给用户的内容。
拒绝统一措辞
无论哪层拦截,用户看到的都是平台语境的自然语句,绝不暴露检测逻辑:
「Prompt 防御:三层拦截实战」怎样变成可执行的指令
「用户写下心事(称为「心语」),AI 把它改写成有诗意的文字,可选择匿名发布到广场与他人共鸣」强调的不是某句神奇咒语,而是信息是否足够让模型判断“为谁做、要完成什么、什么结果算合格”。
背景决定方向,限制决定边界
从「不同场景会触发不同防护层,右侧展示每层的处理逻辑和最终返回给用户的内容」可以看出,一个有效请求至少要把任务、受众、输入材料、输出形式和限制条件分开。少了背景,模型只能猜;少了验收标准,即使文字流畅也无法判断是否完成任务。
继续加字不一定继续变好
把「不同场景会触发不同防护层,右侧展示每层的处理逻辑和最终返回给用户的内容」变成一个小练习:只改背景、要求、限制中的一项,保留其他内容不动,观察哪一层真正改变了结果。
从这个例子继续往下看
这篇内容先从「用户写下心事(称为「心语」),AI 把它改写成有诗意的文字,可选择匿名发布到广场与他人共鸣」展开,再把问题推进到「不同场景会触发不同防护层,右侧展示每层的处理逻辑和最终返回给用户的内容」。把这两个片段放在一起看,可以更清楚地分辨:哪些是文章给出的事实,哪些是需要结合条件才能成立的判断。
把这条判断带到下一个场景
写请求时也应逐层补齐:先说任务和受众,再给材料和输出要求,最后加上限制与验收方式;一次只改变一层,才能知道哪项信息起了作用。
- 「Prompt 防御:三层拦截实战」:用户写下心事(称为「心语」),AI 把它改写成有诗意的文字,可选择匿名发布到广场与他人共鸣
- 「继续往下看」:不同场景会触发不同防护层,右侧展示每层的处理逻辑和最终返回给用户的内容
最后的「最后把结论落到实践」把讨论落到「不同场景会触发不同防护层,右侧展示每层的处理逻辑和最终返回给用户的内容」。回看这条线索时,最值得保留的是:当输入、规模或风险改变,哪些判断需要重新做一遍。
互动练习
把模糊需求拼成一条可执行的提示词
把目标、背景和限制说清楚,再把整理好的提示词带到你正在使用的 AI 工具里。
我把这篇文章里的一个判断改写成了今天可以验证的小实验。比记住结论更有用的是,知道下一步要观察什么。
读完以后我先回头找它成立的条件,而不是直接把方法搬进项目。这个顺序让后面的取舍清楚很多。
如果把这个判断放到真实工作里,最先需要补的约束是什么?我想知道从阅读到第一次实践之间,哪一步最值得先做。
还没有这篇文章的讨论。