核心要点

  • 能分层设计:输入侧(话题/安全过滤、Prompt 注入检测、PII 脱敏)与输出侧(Schema 校验、安全/合规过滤、事实接地检查)

  • 能讲结构校验:用 JSON Schema / 正则 / 类型约束验证输出格式,校验失败则触发重试或修复

  • 能讲安全维度:屏蔽越界话题、敏感/违规内容、PII 泄露,防 Prompt 注入与越狱

  • 能讲失败处理:拦截、降级回复、重新生成、人工兜底,并记录日志用于审计与改进

标准回答

一、总体思路

护栏是包裹在 LLM 调用前后的一层校验与过滤管线,分输入护栏与输出护栏两侧,独立于模型本身,确保系统行为可控、合规、安全。

二、输入护栏

在请求进入模型前:做话题/范围过滤(拒绝越界请求)、安全与敏感词过滤、Prompt 注入 与越狱检测、PII 脱敏。可用规则、分类器或小模型实现。

三、输出护栏

在模型生成后、返回用户前:用 JSON Schema / 正则 / 类型约束做结构化校验;做安全与合规过滤;对 RAG 场景做事实接地检查(输出是否有检索依据,抑制幻觉);再次做 PII 检测防泄露。

四、失败处理

校验不通过时按严重度处理:轻则触发自动重试或让模型按错误信息修复输出,重则拦截并返回降级/兜底回复或转人工。全程记录 trace 与拦截原因,用于审计和持续优化(参考 状态机与护栏模式)。

常见误区

⚠️ 常见踩坑

误区一:容易答偏的地方:别只靠 system prompt「叮嘱模型别越界」当护栏——提示词可被注入绕过;护栏必须是模型之外、确定性的校验层,且输入和输出两侧都要做,不能只防一边。

追问

追问 1如何保证 LLM 输出严格符合 JSON Schema?

优先用模型的结构化输出/约束解码(function calling、JSON mode、grammar)从源头保证格式;再叠加 Schema 校验做兜底,失败时把校验错误回灌让模型修复,限定重试次数。

追问 2护栏会增加延迟,如何平衡?

轻量规则/正则前置快速过滤,分类器或 LLM 审核仅对高风险路径启用;输出校验尽量与流式生成并行;对低风险场景放宽,按风险分级配置护栏强度。

追问 3如何防止 Prompt 注入绕过护栏?

隔离不可信输入(明确标注用户/检索内容边界)、对工具调用做权限与参数白名单、用独立检测模型识别注入意图,并对高危操作要求二次确认或人工审批,而非只靠提示词防御。

🔗 相似问题

同一考点的不同问法,换着练更稳

延伸学习

按主题分类的相关资源,便于系统复习