Skip to content

什么是护栏技术? ​

  • 标签:AI、大模型

🏛 业务架构师 ​

护栏(Guardrails)是包裹在大模型输入输出两侧的防护机制,通常包括:输入侧的敏感内容识别、Prompt 注入检测、话题约束;输出侧的事实校验、毒性/合规过滤、格式校验、隐私脱敏;再加行为侧的越权操作拦截(比如 Agent 要执行删库操作时强制人工审批)。

为什么业务离不开它:大模型是概率系统,会犯错、会被诱导、会泄露训练或上下文里的敏感信息。企业把 AI 面向客户或员工开放时,一次"辱骂用户""泄露薪资数据""给出违规医疗建议"就是舆情事件甚至监管处罚。护栏就是把"可能出错"变成"出错可控"的保险机制。

落地建议:主流方案如 NeMo Guardrails、Llama Guard 或国内内容安全 API,按合规等级分层部署——C 端公开场景强制全量过审;内部工具场景轻量过滤即可。关键是给护栏配运营闭环:拦截日志要定期复盘,误杀率过高会毁掉产品体验,漏杀则是风险敞口。

投入产出:护栏成本远低于一次事故的代价,我把它视为生产系统的必选项而非可选项——但也要警惕"为护栏而护栏",内部低风险场景套 C 端级审核是白白牺牲响应速度。

🏗 系统架构师 ​

护栏(Guardrails)是围绕 LLM 的输入输出及工具行为设置的可校验防线,它基于一个架构认知:LLM 本身不可靠也不可控,可靠性必须由确定性代码层来兜底——模型负责能力,护栏负责底线。

我按数据流向分四道闸:

  • 输入护栏:Prompt 注入检测、敏感词/PII 识别、话题范围校验(越界问题直接拒答或转人工);
  • 检索/工具护栏:工具调用白名单 + 参数 schema 校验 + 高危操作人工确认(付款、删数据必须二次确认),检索内容做来源可信度过滤;
  • 输出护栏:格式校验(JSON Schema)、事实一致性检查(回答 vs 检索内容)、敏感内容/PII 泄露扫描、 toxicity 检测;
  • 行为护栏:循环次数上限、token 预算上限、单会话成本熔断。

技术选型:规则 + 分类器 + LLM Judge 三层叠加(NeMo Guardrails、Guardrails AI 是成熟框架),规则层零延迟挡 80% 常见问题,模型层兜长尾。

生产要点:护栏必须有旁路可观测——拦截日志、误杀率监控,护栏过紧误杀正常请求是真实故障模式;所有拦截动作可配置、可灰度、可回滚,护栏本身也要版本管理。

💻 全栈开发专家 ​

护栏(Guardrails)是围在 LLM 输入输出两侧的策略层,负责拦截不合规内容和危险行为,弥补模型本身不可靠的问题。

典型护栏分四类:

  1. 输入侧:提示注入检测、越狱识别、PII 脱敏、话题白名单(问股票就拒答);
  2. 输出侧:敏感词/毒性分类器、PII 泄露检测、事实性校验、格式校验;
  3. 对话流程护栏:话题引导、限定应答范围、多轮对话脱轨拉回;
  4. 工具/权限护栏:高危操作二次确认、速率限制。

落地工具:NeMo Guardrails(NVIDIA,对话流编排)、Guardrails AI(输出校验+重试)、Java 侧用 Spring AI 的 Advisor 链自己写:

java
@Getter(AFTER, order = 1)
public AdvisedResponse around(AdvisedRequest req, CallAroundAdvisorChain chain) {
    if (injectionDetector.isInjection(req.userText())) 
        return blocked("检测到不安全输入");
    return chain.nextAroundCall(req);
}

生产经验:护栏要做成可配置的规则链(规则热更新),不能硬编码;拦截要有日志和看板,误杀率是核心运维指标(我们卡 1% 以内);纯关键词规则误报高,小分类模型(如 LlamaGuard、自训练 BERT)+ 规则双层组合最稳;被拦截的样本回流做标注,护栏和模型一样需要持续迭代。