护栏通过在代理执行的关键点验证和过滤内容,帮助您构建安全、合规的 AI 应用程序。它们能够检测敏感信息、执行内容策略、验证输出,并在不安全行为导致问题之前将其阻止。 常见的使用场景包括:
  • 防止个人身份信息 (PII) 泄漏
  • 检测并阻止提示注入攻击
  • 屏蔽不当或有害内容
  • 执行业务规则和合规要求
  • 验证输出质量和准确性
您可以使用中间件来实现护栏,在战略点拦截执行——在代理启动前、完成后,或在模型和工具调用周围。
中间件流程图
护栏可以使用两种互补的方法实现:

确定性护栏

使用基于规则的逻辑,如正则表达式模式、关键字匹配或明确检查。速度快、可预测且成本效益高,但可能会遗漏细微的违规行为。

基于模型的护栏

使用 LLM 或分类器通过语义理解评估内容。能捕捉到规则遗漏的细微问题,但速度较慢、成本较高。
LangChain 提供了内置护栏(例如 PII 检测、人机协作)和一个灵活的中间件系统,允许您使用任一方法构建自定义护栏。

内置护栏

PII 检测

LangChain 提供了用于检测和处理对话中个人身份信息 (PII) 的内置中间件。此中间件可以检测常见的 PII 类型,如电子邮件、信用卡、IP 地址等。 PII 检测中间件适用于以下场景:具有合规要求的医疗保健和金融应用程序、需要清理日志的客户服务代理,以及任何处理敏感用户数据的应用程序。 PII 中间件支持多种策略来处理检测到的 PII:
当设置 apply_to_output=True 时,PIIMiddleware 也会通过注册的流转换器对流式线输出进行编辑——包括文本增量、工具调用参数、工具输出和状态快照。需要 langchain>=1.3.2。参见 在中间件上注册转换器。
内置 PII 类型:
  • email - 电子邮件地址
  • credit_card - 信用卡号码(经过 Luhn 验证)
  • ip - IP 地址
  • mac_address - MAC 地址
  • url - 网址
配置选项:
关于 PII 检测功能的完整详情,请参阅中间件文档。

人机协作

LangChain 提供了在执行敏感操作前需要人工批准的内置中间件。这是针对高风险决策最有效的护栏之一。 人机协作中间件适用于以下场景:金融交易和转账、删除或修改生产数据、向外部方发送通信,以及任何具有重大业务影响的操作。
关于实现审批工作流程的完整详情,请参阅人机协作文档。

自定义护栏

对于更复杂的护栏,您可以创建在代理执行之前或之后运行的自定义中间件。这让您能够完全控制验证逻辑、内容过滤和安全检查。

代理前护栏

使用“代理前”钩子在每次调用开始时验证一次请求。这对于会话级检查非常有用,例如身份验证、速率限制或在任何处理开始前阻止不当请求。

代理后护栏

使用“代理后”钩子在返回给用户之前对最终输出进行一次验证。这对于基于模型的安全检查、质量验证或对完整代理响应进行最终合规性扫描非常有用。

组合多个护栏

您可以通过将多个护栏添加到中间件数组中来堆叠使用。它们按顺序执行,允许您构建分层的防护:

其他资源