GitHub: guardrails-ai/guardrails
Stars: 7,000+ | License: Apache-2.0 | 3200+ Commits
官网: guardrailsai.com | Hub: guardrailsai.com/hub
目录
项目速览
Guardrails-AI 是一个为 LLM 应用添加安全护栏的 Python 框架。它的核心理念是”为 LLM 设置交通规则”——就像高速公路上的护栏防止车辆冲出道路一样,Guardrails-AI 在 LLM 的输入和输出两端设置可组合的风险检测规则(称为 Validator),在问题内容进入 LLM 之前拦截风险输入,在回答返回用户之前过滤不安全输出。
项目的独特之处在于 Guardrails Hub 生态——一个包含 70+ 预置校验器的开放市场,覆盖品牌风险、辱骂检测、事实性验证、格式校验、代码注入防护、数据泄露检测、越狱攻击防御等 8 大风险类别。每个校验器都是独立的 Python 包,通过 guardrails hub install 按需安装,也可以提交自定义校验器到 Hub。
框架另一核心功能是 Pydantic 结构化生成:通过 Guard.for_pydantic() 方法,开发者可以用 Pydantic Model 定义期望的输出 Schema,Guardrails-AI 自动将 Schema 注入 Prompt 并校验 LLM 输出是否符合定义的结构。此外,Guardrails-AI 可部署为独立的 Flask REST 服务(通过 Docker + Gunicorn 支持生产环境),提供与 OpenAI SDK 兼容的 API 端点。
截至 2026 年 6 月(v0.10.2),Guardrails-AI 累计超过 3200 次提交和 68 个版本发布,GitHub Star 数超过 7,000。
功能概述
Guardrails Hub:70+ 校验器
Guardrails Hub 是框架的核心生态,提供按风险类别组织的可组合校验器:
| 风险类别 | 校验器示例 | 说明 |
|---|---|---|
| Brand Risk(品牌风险) | CompetitorCheck、BiasCheck、BanList、DetectJailbreak | 防止提及竞品、检测偏见、拦截越狱攻击 |
| Etiquette(礼仪规范) | ToxicLanguage、ProfanityFree、RestrictToTopic、PolitenessCheck | 毒性语言过滤、脏话检测、话题限制 |
| Factuality(事实性) | ProvenanceLLM、GroundedAIHallucination、SaliencyCheck | 幻觉检测、来源验证、事实一致性 |
| Formatting(格式校验) | RegexMatch、ValidJSON、ValidURL、ValidAddress | 正则匹配、JSON/URL/地址格式验证 |
| Code Exploits(代码漏洞) | EndpointIsReachable、HasUrl、WebSanitization | 端点可达性检查、URL 风险检测 |
| Data Leakage(数据泄露) | DetectPII、GuardrailsPII | 检测身份证号、电话、邮箱等个人身份信息 |
| Invalid Code(无效代码) | ValidPython、ValidSQL | Python/SQL 代码语法校验 |
| Jailbreaking(越狱攻击) | PromptInjectionDetector、QARelEvanceLLMEval | Prompt 注入检测、QA 相关性验证 |
安装校验器:
guardrails hub install hub://guardrails/regex_match |
输入输出 Guard
Guard 是框架的核心抽象,通过 Guard().use() 链式组合多个校验器。每个校验器支持三种失败策略(OnFailAction):
OnFailAction.EXCEPTION:检测到风险时抛出异常,阻断请求OnFailAction.FIX:尝试自动修复(如重新生成回答)OnFailAction.REASK:让 LLM 重新回答并再次验证
基础输入 Guard——使用正则匹配校验电话号码格式:
from guardrails import Guard, OnFailAction |
多校验器组合——同时检测竞品提及和毒性语言:
from guardrails.hub import CompetitorCheck, ToxicLanguage |
Pydantic 结构化生成
Guardrails-AI 的另一核心能力是驱动 LLM 生成符合预定义 Schema 的结构化输出。开发者通过 Pydantic Model 描述期望的 JSON 结构,框架自动将 Schema 嵌入 Prompt 并解析校验 LLM 的返回:
from pydantic import BaseModel, Field |
${gr.complete_json_suffix_v2} 是一个特殊占位符,会被替换为 JSON 格式指令。guard() 调用返回三个值:原始 LLM 输出、经 Pydantic 校验的结构化对象及额外元数据。
独立服务部署
Guardrails-AI 可部署为独立的 Flask REST 服务,提供与 OpenAI API 兼容的端点:
# 创建 guard 配置 |
然后通过 OpenAI SDK 透明调用:
import openai |
生产环境推荐使用 Docker + Gunicorn 部署,配置文件通过 config.py 管理 Guard 组合和校验器参数。
适用场景
| 场景 | 说明 |
|---|---|
| 客服机器人安全防护 | 在客服对话中检测竞品提及、品牌负面言论和毒性语言 |
| 内容审核管道 | 对 UGC 平台中 LLM 生成的内容做毒性、偏见、NSFW 检测 |
| 金融合规 | 确保 AI 理财顾问的输出不包含内幕信息、虚假承诺或误导性陈述 |
| 医疗应用 | 检测输出中的 PII 泄露,确保不透露患者隐私信息 |
| 教育场景 | 限制 LLM 仅回答指定学科范围内的问题,阻断越狱尝试 |
| API 安全网关 | 将 Guardrails 部署为 LLM API 前置网关,统一做输入输出安全校验 |
| 结构化数据抽取 | 通过 Pydantic 约束确保 LLM 从非结构化文本中提取的信息格式正确 |
快速上手
安装
pip install guardrails-ai |
配置 CLI
guardrails configure |
第一个 Guard——检测 PII 泄露
# 安装 PII 检测校验器 |
from guardrails import Guard, OnFailAction |
第一个 Guard——结构化输出
from pydantic import BaseModel, Field |
源码架构
Guardrails-AI 以 Python 为核心语言(99.7%),通过 Poetry 管理依赖:
guardrails/ |
核心设计模式:
Validator 插件化架构:每个校验器是独立的 Python 包,通过
guardrails/hub目录下的命名空间包机制安装。校验器只需实现validate()方法,接收 LLM 输出并返回ValidationResult(pass/fail + 详细错误信息)。Hub 上的 70+ 校验器均遵循此协议。三阶段处理管道:
- Input Guard:校验器在 LLM 调用前检查用户输入,拦截风险内容
- LLM Generation:通过 Prompt 注入(
${gr.complete_json_suffix_v2})引导 LLM 生成符合 Schema 的输出 - Output Guard:校验器检查 LLM 的原始输出,根据
OnFailAction策略决定抛出异常、自动修复还是要求 LLM 重新生成
OnFailAction 策略模式:
EXCEPTION(阻断)、FIX(通过 Script 自动修复,如 JSON 语法错误)、REASK(让 LLM 基于错误信息重新生成)。三种策略可分别配置,实现精细化的错误处理。Pydantic Schema 到 JSON Schema 到 Prompt 的转换链:
Pydantic Model -> JSON Schema -> XML/JSON Prompt Instruction -> LLM 输出 -> 解析 + 校验 -> Pydantic Instance。Guard.for_pydantic()将这段流程封装为单一方法调用。
实操 Demo
以下演示两个完整场景:多校验器组合的客服安全 Guard、独立部署的安全网关。
Demo 1:电商客服机器人的三重安全护栏
步骤 1:安装所需校验器
guardrails hub install hub://guardrails/competitor_check |
步骤 2:编写 Guard 配置
# customer_service_guard.py |
步骤 3:运行测试
python customer_service_guard.py |
Demo 2:部署为安全网关服务
步骤 1:创建 Guard 配置
guardrails create --validators=hub://guardrails/toxic_language,hub://guardrails/detect_pii --guard-name=safety-gateway |
步骤 2:编写 config.py
# config.py |
步骤 3:启动服务
guardrails start --config=./config.py --port=8000 |
步骤 4:通过 OpenAI SDK 调用
import openai |
安全性有问题的请求会被 Guard 在网关层拦截,不会到达 LLM。
同类对比
| 维度 | Guardrails-AI | NVIDIA NeMo Guardrails | Llama Guard | Promptfoo Red Team |
|---|---|---|---|---|
| 核心理念 | 可组合校验器市场 + 结构化输出 | 对话安全护栏,基于 Colang 语言 | Meta 开源的内容安全分类器 | Prompt 安全扫描与红队测试 |
| 校验器/规则数量 | 70+(Hub 市场持续增长) | 用户自建 dialogue flows | 13 类安全分类标签 | 预置 Red Team 插件 + 自定义 |
| 输入 Guard | 是(通过校验器在 LLM 调用前检查) | 是(用户输入预处理) | 是(Prompt 安全分类) | 是(Red Team 攻击测试) |
| 输出 Guard | 是(校验器 + OnFailAction) | 是(Bot 输出验证) | 是(Response 安全分类) | 否(评测框架,非在线防护) |
| 结构化输出 | Pydantic 原生集成,Prompt 自动化 | 不支持 | 不支持 | 不支持 |
| 校验器扩展 | guardrails hub install + 自定义提交 |
自定义 Colang 脚本 | N/A(固定分类器) | 自定义 Red Team 插件 |
| 部署模式 | Python SDK + Flask REST 服务 | Colang 运行时服务器 | Python SDK(模型推理) | CLI + 本地 Web UI |
| 失败处理 | EXCEPTION / FIX / REASK 三种策略 | 预定义安全回复覆盖 | 返回安全评分 | 不适用 |
| 在线/离线 | 校验器本地运行,Hub 需网络安装 | 完全本地 | 模型需本地加载 | 完全本地 |
| OpenAI 兼容 | 是(REST API 透明代理) | 部分 | 否 | 否 |
| 安装 | pip install guardrails-ai |
pip install nemoguardrails |
pip install llama-guard |
npm install promptfoo |
| 学习曲线 | 低(Python 生态,Pydantic 熟悉者零门槛) | 高(需学习 Colang DSL) | 中 | 低(YAML 配置) |
| 开源协议 | Apache 2.0 | Apache 2.0 | Llama 3.3 Community License | MIT |
| GitHub Stars | 7,000+ | 14,400+ | N/A(Meta 仓库) | 22,200+ |
Guardrails-AI 最突出的差异化优势是校验器市场生态 + Pydantic 结构化生成的组合。它既不是一个硬编码的规则引擎(你可以从 70+ 校验器中按需选择),也不是一个仅做安全评测的工具——它可以直接嵌入生产环境的在线请求链路中,实时拦截风险内容。
与 NeMo Guardrails 相比:NeMo Guardrails 更重,需要学习 Colang DSL 来编写对话流程,适合复杂的多轮对话场景;Guardrails-AI 以纯 Python API 提供更轻量的集成体验,60 秒即可从零到运行一个 Guard。
与 Llama Guard 相比:Llama Guard 是 Meta 提供的预训练安全分类模型,需要加载一个多 GB 的模型文件,每次分类都有推理延迟。Guardrails-AI 的校验器以规则匹配、正则和轻量 NLP 为主,延迟和资源开销更低,但其毒性检测等能力可能不如专用模型的精度高。
与 Promptfoo Red Team 相比:Promptfoo 是评测工具——在发布前扫描 Prompt 的安全漏洞;Guardrails-AI 是运行时护栏——在生产环境中实时拦截。两者互补:用 Promptfoo 在 CI 中做安全测试,用 Guardrails-AI 在线上做实时防护。
参考资源
- GitHub 仓库: https://github.com/guardrails-ai/guardrails
- 官方文档: https://docs.guardrailsai.com
- Guardrails Hub: https://guardrailsai.com/hub
- Hub 校验器列表: https://guardrailsai.com/hub
- 结构化生成指南: https://docs.guardrailsai.com/concepts/structured_data
- 服务器部署指南: https://docs.guardrailsai.com/concepts/server
- Guardrails Index 基准: https://guardrailsai.com/index — 24 个护栏的跨 6 个类别基准排名
- 相关阅读: 本文与《SKILL-DeepEval》和《SKILL-lm-evaluation-harness》分别覆盖运行时安全防护、LLM 应用质量评估和标准化基准评测这三个评估与安全的核心维度


