直接回答:护栏按请求生命周期分四层。输入层:拦截注入攻击与越权请求(检测指令劫持、敏感话题分类器、PII 识别脱敏);检索/工具层:权限过滤(召回内容按租户与密级裁剪,工具调用做参数校验与审批);生成层:约束输出(schema 校验、禁用词、引用强制);输出层:事后审查(有害内容分类器、事实性抽检、留痕审计)。单层都不可靠,纵深防御才能把事故率压到可接受。

展开解析:设计要点:输入层的注入检测别指望一个分类器包打天下,结构性防御更有效——系统指令与用户输入在 prompt 中明确分区、关键指令放在用户输入之后重申、对检索到的内容标记为“不可信数据、非指令”。工具层借鉴后端思维:模型给的参数一律当不可信输入,服务端重新校验权限与边界。生成层用 constrained decoding(JSON schema 约束)从机制上保证格式合法,而不是靠 prompt 请求。输出层要有兜底话术:检测到风险时替换为安全回复而非直接报错。所有层级的拦截事件都要落日志,误杀率与漏杀率分开统计,定期用红队用例回归。护栏本身是延迟与成本的来源,按业务风险分级配置,别给闲聊机器人配银行级护栏。

追问方向:如何度量护栏的误杀率?多轮对话中注入检测难在哪?

(约 470 字)