AI 博客

NeMo Guardrails、Guardrails AI、Llama Guard 与 LLM Guard:护栏的四种形态

"护栏"并不是一样东西。开源生态沉淀出四种形态——可编程的 rails DSL、验证器库、安全分类模型,以及扫描器流水线——而 2025–26 的并购潮决定了谁能独立存活。本文讲清每一种到底做什么、在模型周围坐落何处,以及为何它们都没有"解决"提示注入。

作者 智能体 AI 维基 46 分钟读完

"加个 guardrail"听上去像一个决定,其实是四个。围绕一次模型调用的那些检查,开源生态从未收敛到单一形态——它裂成了四种彼此几乎不像的原型:一套可编程的 rails DSL(NeMo Guardrails)、一个校验器库(Guardrails AI)、一族安全分类器模型(Llama Guard),以及一条扫描器流水线(LLM Guard)。挑到与你问题不匹配的那种形态,你就要跟工具搏斗好几个月。而且脚下的地面正在移动:2025-26 的一波整合把大多数商业 guardrail 厂商卷进了安全平台——LLM Guard 进了 Palo Alto 且如今已归档,Lakera 进了 Check Point,Invariant 进了 Snyk——留下 NeMo、Guardrails AI 和 Meta 的 Llama 栈作为独立的开源幸存者。本文把这四者放到同一张地图上,好让你辨认出你的问题究竟需要哪一种形态——以及为什么它们中没有任何一个能单独挡住 prompt injection。

速览

四个项目,对"guardrail 到底什么"给出四种不同的答案。下表定住基本盘——形态、许可证,以及还有没有人在维护;其下的图表和矩阵则展示社区表面积,以及各自最用力的方向。

项目 形态 许可证 还在维护吗?
NeMo Guardrails 可编程 rails DSL——Colang 里的五类 rail;可拒绝、改写、重定向,并编排其他检查 Apache-2.0 是——积极维护中(NVIDIA)
Guardrails AI 校验器库——由 ~60+ 个可复用 Hub 校验器搭出 Input/Output Guard;Pydantic + RAIL schema Apache-2.0 是——积极维护中;四者中 star 最多
Llama Guard 家族 安全分类器模型——Llama Guard 4(内容)、Prompt Guard 2(注入),外加 LlamaFirewall 框架 Llama Community License——开放权重,非 OSI 开源 是——积极维护中(Meta)
LLM Guard 扫描器流水线——串起 ~35 个输入/输出扫描器,混合启发式与基于模型的 MIT 否——仓库已于约 2026-07-09 归档(EOL)

快照:2026-07-15。star 数为该日期的近似值且变化很快——评估落地前请重新核对各仓库。NeMo 的 GitHub 许可证显示"NOASSERTION"仅仅是因为它的 LICENSE.md 格式没被自动识别;它就是 Apache-2.0。最后一行要看仔细:LLM Guard 的 star 数属于一个如今已归档的项目——那是墓碑,不是势头。

GitHub stars comparison — Guardrails AI, NeMo Guardrails, Llama Guard (PurpleLlama), LLM Guard Horizontal bar chart of approximate GitHub stars as of 2026-07-15: Guardrails AI ~7.2k, NeMo Guardrails ~6.7k, the Llama Guard / PurpleLlama repo ~4.3k, and LLM Guard ~3.2k (a now-archived project). GitHub stars (snapshot 2026-07-15) 0 2k 4k 6k 8k stars Guardrails AI ~7.2k NeMo Guardrails ~6.7k Llama Guard ~4.3k LLM Guard ~3.2k · archived
GitHub star 数粗略代表社区表面积,2026-07-15 快照——它不是维护状态或质量的信号。Guardrails AI 以微弱优势领先;PurpleLlama 低估了 Llama Guard 家族,因为模型发布在 Hugging Face 而非 GitHub;而 LLM Guard 那根柱子属于一个如今已归档的项目,所以把它当墓碑而非势头来看。
Guardrails framework feature comparison matrix Heatmap comparing NeMo Guardrails, Guardrails AI, Llama Guard, and LLM Guard across five axes: dialogue rails, output schema, injection defense, PII handling, and maintained/license. Strength shown from light neutral (weak) to solid accent (strong). Feature strength by framework Dialoguerails Outputschema Injectiondefense PIIhandling Maintained& license NeMo Guardrails Colang rails Limited Partial Via Presidio Apache-2.0 Guardrails AI Pydantic/RAIL Validator Validators Apache-2.0 Llama Guard Prompt Guard No Llama license LLM Guard JSON only Scanner Anon round-trip MIT · archived Weak Medium Strong
每个项目最用力的方向。最鲜明的分野:NeMo 拥有对话与主题控制,Guardrails AI 拥有结构化输出校验,Llama Guard 拥有内容安全与注入分类(但非 OSI 开源),而 LLM Guard 曾拥有自托管扫描广度——用过去时,因为它已归档。

Guardrail 究竟坐在哪里

Where a guardrail sits: pre- and post-checks around the model A left-to-right flow: user input passes through an input guard, into the model or agent, out through an output guard, to the user. Below, a box for tools, retrieved documents, and MCP tool output feeds into the model too — showing that in agent systems the untrusted input a guardrail must screen also arrives from what the agent reads, not just the user prompt. Where a guardrail sits — pre- and post-checks around the model User input Input guard PII · injection · topics Model / Agent Output guard toxicity · schema · secrets User / next step Tools · retrieved docs · MCP untrusted content the agent reads untrusted input, too Guardrails wrap the input before the model and the output before it ships — and in an agent they must also screen what the agent reads from tools and retrieval, where a prompt injection is just as likely to arrive.
guardrail 是围着模型调用的一道前置/后置检查,而不是模型内部的一堵墙:输入侧检查筛查进去的东西,输出侧检查筛查出来的东西。在智能体里,不可信输入不只是用户的 prompt——它还以工具输出和检索或被注入的内容的形式到来。

围着模型的前置/后置检查,而非一堵墙

这里每个工具做的都是同一件结构性的事:在 prompt 抵达模型之前插入检查,在模型回应之后再插入检查。这个框架很要紧,因为它给任何 guardrail 能做的事定了上限。guardrail 包裹一个模型;它无法伸进去、把一个不安全的模型变安全。它可以拒绝发送一个坏输入、改写或脱敏它,或拦下并替换一个坏输出——但智能和失败模式仍然住在模型里。把"我们加了 guardrail"当成"模型现在安全了",是这个领域第一个、也是最昂贵的错误。

确定性检查 vs 概率性检查

在这个前置/后置框架内,有两种非常不同的检查,而这些工具个个都把它们混着用。确定性检查抓那些有确切答案的东西:输出是否匹配某个 schema、是否含有已知模式的 secret 或一个信用卡号、是否用了被禁的子串、是否停留在允许的主题上。这些近乎免费、可靠、且不容妥协——一个正则要么匹配、要么不匹配。概率性检查——毒性、越狱、prompt injection、幻觉——跑一个分类器或一个 LLM 裁判,返回一个自带假阳与假阴的分数。它们既真正有用又真正会错,任何调优都无法把一个概率性检查变成确定性的保证。最好的生产配置会先跑便宜的确定性过滤器,再把昂贵的概率性检查留给剩下的部分。

智能体这一情形:输入不只是 prompt

在一个普通聊天机器人里,不可信输入是用户的消息。在一个智能体里则远不止于此。危险的文本以工具输出、检索到的文档、被注入的内容的形式到来——智能体浏览过的一张网页、它读过的一封邮件、一个 MCP 工具的描述、数据库里的一行。它们中任何一个都可能携带针对模型的指令,而智能体随后就带着真实的工具去照做。这正是为什么更新的 guardrail 特性是智能体感知的:NeMo 的 retrieval 与 execution rail、Meta 的 AlignmentCheck、Invariant 的 mcp-scan。这也是为什么结构化输出校验是智能体安全里那匹安静的主力——把一个工具调用的参数对着 schema 校验,是唯一一种既便宜、又确定、还能在工具调用执行之前可靠抓住畸形或不安全调用的 guardrail。

Guardrail 的四种形态

Four shapes of a guardrail Four cards, one per archetype: a programmable rails DSL (NeMo Guardrails), a validator library (Guardrails AI), a safety-classifier model (Llama Guard), and a scanner pipeline (LLM Guard). Each names its mechanism and a representative open-source project. Four shapes of a guardrail Programmable rails a DSL of dialogue flows & policies NeMo Guardrails Validator library composable input / output validators Guardrails AI Classifier model a fine-tuned safety model Llama Guard Scanner pipeline a chain of input / output scanners LLM Guard
开源生态最终定型的四种形态:一套建模对话流的 rails DSL、一个组合可复用检查的校验器库、一个给内容与注入打分的分类器模型,以及一条串起固定扫描器目录的流水线。

为什么"guardrail"是四样东西,而非一样

这个词掩盖了分歧。一套 rails DSL(NeMo Guardrails)把安全当作对话控制:你用一门小语言写流程,由 rail 决定究竟允许发生什么样的对话。一个校验器库(Guardrails AI)把它当作 schema 校验:你把可复用的校验器组合成 Guard,对着规则和类型去检查输入与输出。一个分类器模型(Llama Guard)把它当作一个机器学习问题:一个训练好的模型读文本(或图像),返回安全/不安全外加一个类别——没有策略引擎,只有一个你自己接进去的判决。一条扫描器流水线(LLM Guard)把它当作一道防火墙:一份固定的扫描器目录,你把它们串起来,各筛一样东西。这些不是同一个想法的互相竞争的实现;它们是关于"这活儿到底是什么"的四个不同想法。这正是为什么有用的问题从来不是"哪个最好",而是"我的问题是哪一种形态"。

NeMo Guardrails

Colang 与五类 rail

NeMo Guardrails 出自 NVIDIA,是可编程 rails 的那种答案。你用 Colang——一门用于建模对话流的、类 Python 的 DSL——描述允许与不允许的行为,运行时通过围绕模型调用的五类 rail 来强制执行:input rail 筛查用户的消息,dialog rail 引导对话本身,retrieval rail 在检索到的片段进入 prompt 前检查它们,execution rail 守住工具/动作调用,output rail 审查回应。一个 rail 可以拒绝一轮、改写它,或重定向它——而且因为 rail 是可编程的,单个 dialog rail 就能把其他检查(一个分类器、用于 PII 的 Presidio)编排进一个连贯的层里,而不是一堆各自为政的过滤器。它作为一个在进程内的 Python 库运行,而 execution rail 正是让它对智能体、而不仅仅对聊天机器人有意义的东西。

它独到之处

NeMo 的主场是主题与对话控制——"只谈 X,绝不谈 Y,如果用户硬推,就这样岔开"。这里没有别的工具把一段对话当作一等对象来建模。如果你的需求是一个必须在多轮对话里严格守规的客服机器人,或一个必须优雅拒绝整类请求的助手,rails DSL 能直接表达它。它的第二个强项是编排:因为一个 rail 就是代码,NeMo 是组合其他形态的天然场所——调一个分类器、跑一次 PII 检查、做一次事实核查——并把它们呈现为同一个 guardrail 层。

它在哪里吃力

这份力量有代价。Colang 是一条真实的学习曲线——你学的是一门 DSL 和一套对话建模的心智模型,而不是丢进一行式的校验器。相比一个简单的"扫一下这个字符串"的库,NeMo 更重、更难搭起来和配置,而 dialog 与 retrieval rail 会加入 LLM 和 embedding 调用,也就意味着延迟。对于一个确实只是"检查这个输出里有没有 PII 和毒性"的任务,NeMo 是杀鸡用牛刀;你要的是一个校验器或一条扫描器。它在问题是对话形态时闪光,而不在问题是单个无状态检查时。

Guardrails AI

校验器、Guard 与 Hub

Guardrails AI 出自同名公司,是校验器库的那种答案——而且以约 7.2k star,是四者中 star 最多的。你通过组合校验器搭出一个 Input Guard 和一个 Output Guard,而 Guardrails Hub 供给 ~60+ 个开箱即用的社区校验器:PII 检测、毒性、竞品提及、幻觉/接地、格式与取值检查等等。每个校验器声明一个失败时的动作——reask(发回给模型再试一次)、fix(程序化修复)、filter(剥掉冒犯的部分),或 exception(抛出并停下)。心智模型接近于对 LLM 的输入/输出做 schema 校验:声明规则、包住调用、拿到带类型且被检查过的输出。

结构化输出:Pydantic 与 RAIL

它最锋利的强项是结构化输出与 schema 强制。有两条路:把期望的形状定义成一个 Pydantic BaseModel,或用 RAIL——Guardrails 自家那门类 XML 的 schema 语言——把它写出来。无论哪条,你都得到对着一份声明好的结构校验过的输出,并可用 reask 循环在模型漂移时哄它就范。这恰恰是智能体最需要的那种 guardrail——把一个工具调用的参数对着 schema 校验,既便宜、又确定、还能在调用运行前抓住畸形调用——而且它与模型裁判的检查干净地组合,让你在一个 Guard 里把确定性和概率性的校验器混着用。它作为一个在进程内的 Python 库外加一个服务器模式运行,而一个商业的 Guardrails Pro 托管产品坐在开源核之上。

它在哪里吃力

Hub 既是强项,也是弱项,二合一。校验器质量参差不齐——它是个社区生态,许多校验器包着别的模型或外部 API,于是它们的延迟和准确率从一个到下一个差得很远。你的注入覆盖只和你装的那个具体校验器一样好;没有单一的钦定注入防御。而 reask 这个动作,尽管有用,会增加成本和延迟,因为它意味着额外的模型调用。Guardrails AI 给你一个宽广、可插拔的工具箱;它并不保证箱里每件工具都达到生产级,那份甄别落在你身上。

Llama Guard 家族

是分类器,不是框架

Meta 的贡献——在伞状仓库 meta-llama/PurpleLlama 之下,如今营销为"Llama Protections"(旧品牌:"Purple Llama")——与另外三个是不同的物种。它是一套安全模型与参考工具,而不是一个 rails 框架。Llama Guard 4(12B,原生多模态文本+图像,2025-04-05 发布)把内容对着 MLCommons 危害分类法分类,返回安全/不安全外加一个类别。Prompt Guard 2(86M 和 22M,约 2025-04)是一个专门的越狱/prompt injection 检测器,被设计成坐在 Llama Guard 前面——因为 Llama Guard 本身就是个 LLM,是可被注入的。Code Shield 筛查代码输出。你得到最佳档次的内容安全分类——多模态、多语言、标准化分类法——以及作为前门过滤器的便宜注入筛查(那个 22M 的 Prompt Guard),全都能作为开放权重自托管。

开放权重、Llama 许可证——非 OSI 开源

这一点得说白:Llama Guard 是开放权重,不是开源。这些模型以 Llama Community License 发布——源码可得、可自托管,但带着可接受使用限制以及一条在超过每月 7 亿活跃用户时触发的条款,这正是为什么它不是一个 OSI 认可的开源许可证。(仓库里的评估代码是 MIT;模型权重不是。)对多数团队而言这个区别是学术性的——你能下载并运行权重。对一个有严格 OSI 开源许可证要求的公司而言,它是硬性出局项,也是为什么 Llama Guard 与这里的 Apache-2.0 和 MIT 项目坐在不同的法律类别里。

LlamaFirewall:家族里的框架成员

这个家族也有一个框架成员:LlamaFirewall(2025),Meta 的开源 guardrail 框架,把 Prompt Guard 2、AlignmentCheck(一个盯着智能体目标劫持与注入的思维链审计器)和 CodeShield 编排进一个智能体原生的层,并在 Meta 生产环境里运行。它是"给智能体的扫描器"这一想法的活着的继承者——是 Llama 家族里最接近流水线形态的东西,但为智能体而造。整个家族的弱点是其强项的反面:单独来看它们只是分类器,没有编排、策略或对话逻辑(除非通过 LlamaFirewall,否则你自己把它们接进去),每个检查都是一次额外的模型推理(一个 12B 模型并不便宜),许可证非 OSI 开源,而且——像每个分类器一样——它们可被绕过,Llama Guard 本身也可被注入。它们作为自托管的模型推理运行,可在进程内或作为一个 sidecar 微服务。

LLM Guard

⚠️ 已归档——先读这段

在别的之前先说:仓库 protectai/llm-guard 已于约 2026-07-09 归档,不再维护。这不是一条脚注——它改变了推荐。一个归档的安全工具不会有新扫描器、不会有安全补丁、不会有模型更新,于是它那些基于模型的扫描器会随着它们要检测的威胁演进到超出其训练而逐渐腐坏。LLM Guard 起于 Laiyer.ai,被 Protect AI 收购,而 Protect AI 又被并入 Palo Alto Networks;这条血脉如今住在 Palo Alto 的 Prisma AIRS 平台里(托管、封闭)。开源项目是一个定格在时间里的快照——今天能用,但在倒计时。

扫描器流水线

作为一种形态,它是开源里最干净的扫描器流水线:一份固定的 ~35 个扫描器(约 15 个输入、20 个输出)目录,你把它们串起来。它刻意混着两类。启发式/确定性扫描器——Regex、Secrets、TokenLimit、BanSubstrings,以及用于 PII 的 Anonymize/Deanonymize——近乎免费且精确。基于模型的扫描器——PromptInjection(一个 DeBERTa 类的分类器)、Toxicity、Bias、FactualConsistency/接地、MaliciousURLs——带来概率性的检查。输入侧和输出侧都覆盖到了。它的招牌绝活是 PII 的 anonymize→deanonymize 往返:在模型看到之前脱敏敏感片段,再在回应里把它们还原。作为一个 MIT 许可、自托管的库,它曾是"为每个 prompt 和回应扫描注入 + PII + secret + 毒性,且数据不离开我的基础设施"的最干净的单一答案。

什么会活下去

越过归档这面旗,寻常的注意事项仍然成立:基于模型的扫描器会加延迟,启发式的那些会被一个执着的对手绕过,而且这一切都不是一个对话或策略引擎——它是一道防火墙,不是一个对话管理器。它曾作为一个在进程内的 Python 库或一个自托管的 API/sidecar 运行。如果你要的正是扫描器流水线这种形态、又需要它被维护,如今诚实的路要么是一个被维护的 fork、要么是另一件工具、要么是那个托管的继承者:LLM Guard 的 DNA 活在 Palo Alto Prisma AIRS 里,但那是一个封闭的商业平台,不是那个 MIT 库。

横向对比

机制

按它们怎么工作把四者排开,四种形态就干净地掉了出来。NeMo Guardrails 在对话之上跑一台可编程状态机——Colang 流程和五类能拒绝、改写或重定向一轮并编排其他检查的 rail。Guardrails AI 跑一趟校验——组合成 Input 和 Output Guard 的可复用校验器,各带一个 reask/fix/filter/exception 动作。Llama Guard 跑一次模型推理——把文本或图像喂给一个分类器,拿到一个安全/不安全判决外加一个类别,除非你加上 LlamaFirewall,否则外面什么都不裹。LLM Guard 跑一条扫描器链——一份固定的启发式与基于模型的扫描器列表,按序施加于输入和输出。对话引擎、校验库、分类器、流水线:这些机制并不重叠,这恰恰是为什么它们在不同活计上出彩。

它能抓什么,以及注入这个难题

在确定性危害上四者趋同:schema 与格式违规、已知模式的 PII、secret、被禁子串、不允许的主题都能可靠地抓到——Guardrails AI 靠校验器、LLM Guard 靠启发式扫描器、NeMo 靠 input/output rail,而 Llama Guard 值得一提地在这一列,因为它天生是一个概率性分类器。在概率性危害上——毒性、注入、越狱、幻觉——Llama Guard 天生最强(它的整个目的就是最佳档次的内容与注入分类),Guardrails AI 和 LLM Guard 取决于你启用了哪个基于模型的校验器或扫描器,NeMo 取决于你编排了什么。但它们中没有谁解决了 prompt injection,而且值得直说为什么。每个注入检测器都是一个分类器,而分类器能被一个对着它反复迭代的对手绕过。Meta 自己的架构就是证据:他们把一个单独的 Prompt Guard 放在 Llama Guard 前面,正是因为 Llama Guard 作为一个 LLM,本身就可被注入。把注入当作 XSS 或 SQL 注入来对待——一类你分层缓解的攻击,而不是一个你用单个过滤器就打上的补丁。

延迟与成本

成本结构是同一个故事讲了四遍,而且它是结构性的、不是偶然的。启发式检查——LLM Guard 的 Regex 和 Secrets 扫描器、Guardrails AI 的确定性校验器、NeMo 的简单 input rail——近乎免费,但脆且可被绕过。每个基于模型的检查都是在你真正那次模型调用之上再叠一次推理:Guardrails AI 的模型裁判校验器、LLM Guard 的 PromptInjection 和 Toxicity 扫描器、NeMo 的 dialog 和 retrieval rail(它们加入 LLM 和 embedding 调用),以及 Llama Guard 的分类器过程。那个标志性的对照就活在 Llama 家族内部——一个 12B 的 Llama Guard 4 彻底但昂贵,而一个 22M 的 Prompt Guard 便宜到能对每个请求都跑。由此得出的生产模式是通用的:先跑便宜的确定性过滤器,只在挺过它们的那部分上才花一次昂贵的模型检查。

开源 vs 托管,以及那波整合

许可证和公司归宿分岔得很厉害。三个是你能极小摩擦自托管的、真正宽松的开源——NeMo(Apache-2.0)、Guardrails AI(Apache-2.0)和 LLM Guard(MIT)——而 Llama Guard 是 Llama Community License 下的开放权重,非 OSI 开源,如果严格许可要紧,它是那个要先过法务的。但更大的故事是重塑了这片场地的 2025-26 那波整合。Lakera Guard 去了 Check Point(2025 年 9 月,据称约 3 亿美元),作为一个托管 API,非开源。Invariant Labs 去了 Snyk(2025 年 6 月),保持 Apache-2.0 且智能体/MCP 原生,发布 mcp-scan 来扫描 MCP server 有无工具投毒。Protect AI——连同 LLM Guard——去了 Palo Alto,扫描器的血脉如今住在封闭、托管的 Prisma AIRS 里。与它们并列的是那些一向托管的平台——OpenAI 的 Moderation API、AWS Bedrock Guardrails(在 2026 年加入了一个智能体逐步的 InvokeGuardrailChecks API),以及 Azure AI Content Safety(其 Prompt Shields 覆盖直接和间接/跨文档注入)——它们没一个是开源的。净结果是:扫描器流水线这块地被吸收进了托管平台,而独立的开源幸存者是 NeMo、Guardrails AI 和 Meta 的 Llama/LlamaFirewall 栈。

智能体这一情形

智能体改变了威胁模型,而四者适应得并不均匀。危险的输入不再只是用户 prompt——它是不可信的工具输出、检索到的文档、被注入的内容(一张网页、一封邮件、一个 MCP 工具描述)。NeMo 用 retrieval 和 execution rail 来回应,在流水线中途检查内容并守住工具调用。Meta 用 LlamaFirewall 和 AlignmentCheck 来回应,那是一个为抓住智能体目标劫持而造的思维链审计器。更广的生态用像 Invariant 的 mcp-scan 这样的工具来回应,它在 MCP server 被调用之前检查它们有无工具投毒。而在这一切之下,确定性的主干是结构化输出校验——Guardrails AI 的主场:把一个工具调用的参数对着 schema 校验,是唯一一种既便宜、又确定、还能在工具调用执行前可靠抓住畸形或不安全调用的 guardrail。对智能体而言,那道安静的检查比任何分类器都更稳当地挣到了它的口粮。

该选哪一个

需求 选 NeMo,当…… 选 Guardrails AI,当…… 选 Llama Guard,当…… 选 LLM Guard,当……
主题 / 对话控制 首选——Colang 直接建模多轮守规对话。 不是它的形态;它校验输入/输出,不引导对话。 不——它给内容分类,没有对话逻辑。 不——一条扫描器链,不是对话引擎。
结构化输出 / schema 校验 可用 rail 做到,但比你需要的重。 首选——Pydantic/RAIL 的 Guard 正是为此而造。 不——分类器返回安全/不安全,不是校验过的 schema。 部分——有格式扫描器,但 schema 校验不是核心。
内容安全分类 / 注入筛查 只能靠在一个 rail 里编排一个分类器。 只和你为此装的校验器一样好。 首选——最佳档次的多模态安全 + 便宜的 Prompt Guard 筛查。 靠模型扫描器曾经不错——但现已归档,会腐坏。
自托管的"全扫"防火墙 杀鸡用牛刀——它是对话引擎,不是防火墙。 可行,但扫描器要你自己用校验器拼出来。 只有分类器——流水线要你围着它们接。 曾是最干净的单一答案——但现在选一个被维护的 fork 或继承者。
严格的 OSI 开源许可要求 是——Apache-2.0(无视 GitHub 的"NOASSERTION")。 是——Apache-2.0。 不——Llama Community License 是开放权重,非 OSI 开源。 是——MIT——但仓库已归档,要权衡维护。
最低延迟的便宜检查 简单 input rail 便宜;dialog/retrieval rail 不便宜。 用它的确定性校验器;热路径上避开 reask 循环。 22M 的 Prompt Guard 便宜到能逐请求跑;12B 不行。 它的启发式扫描器(Regex、Secrets)近乎免费——如果你接受 EOL。

常见问题

Guardrail 能挡住 prompt injection 吗?

不能——它们中没一个能,也没一个能单独做到。每个注入检测器都是一个分类器,而分类器能被一个对着它反复迭代的对手绕过。最强的信号是 Meta 自己的架构:他们把一个单独的 Prompt Guard 放在 Llama Guard 前面,正是因为 Llama Guard 作为一个 LLM,本身就可被注入。把 prompt injection 当作 XSS 或 SQL 注入来对待——一类你分层缓解的攻击,而不是一个用单个过滤器就打上的补丁。这意味着纵深防御:输入筛查、最小权限工具、输出检查,以及对有后果的动作加人在环。一个 guardrail 降低概率;它不关上门。

Llama Guard 是开源的吗?

在 OSI 意义上不是。Llama Guard 是开放权重——你能下载、自托管、运行这些模型——但它们以 Llama Community License 发布,该证带着可接受使用限制以及一条在超过每月 7 亿活跃用户时触发的条款。那是源码可得,不是 OSI 认可的开源。(PurpleLlama 仓库里的评估代码是 MIT;模型权重不是。)对多数团队这个区别不咬人——你运行权重就完事。对任何有硬性 OSI 开源许可要求的人,它把 Llama Guard 排除在外,也是为什么我们把它放在与 Apache-2.0 和 MIT 项目不同的许可类别里。

LLM Guard 已归档——我还该用它吗?

要小心。protectai/llm-guard 仓库已于约 2026-07-09 归档,于是它不会有新扫描器、不会有安全补丁、不会有模型更新——而一个停止更新的安全工具会慢慢停止工作,因为它那些基于模型的扫描器会随着威胁演进到超出其训练而腐坏。对一个快速的内部原型,当前的快照没问题。对任何你要长期运行并信赖的东西,优先选一个被维护的 fork、另一件工具,或那个托管的继承者——LLM Guard 的血脉如今住在 Palo Alto 的 Prisma AIRS 里,尽管那是一个封闭的商业平台,而不是那个 MIT 库。

一个工具还是好几个?

通常是好几个,因为这四者是不同的形态,不是互相竞争的品牌。一个现实的智能体栈可能用 Guardrails AI 把工具调用的参数对着 schema 校验、用一个 Llama Guard / Prompt Guard 分类器做内容安全与注入筛查、再用 NeMo rail 把一段对话保持在守规状态——便宜的确定性检查先跑,昂贵的模型检查只跑在挺过来的那部分上。错误在于期待任何单个工具就是整个 guardrail。为每样活计挑匹配的形态并把它们组合起来;NeMo 尤其是被设计来把其他几者编排进一个层的。

Guardrail 会加很多延迟吗?

这完全取决于你打开了哪些检查,而且成本是结构性的。启发式检查——正则、secret、被禁子串、schema 校验——近乎免费。每个基于模型的检查都是叠在你真正那次模型调用之上的一整次额外推理,若你跑好几个,它们会迅速累加。那个标志性的对照就活在 Llama 家族里:一个 12B 的 Llama Guard 4 彻底但昂贵,而一个 22M 的 Prompt Guard 便宜到能对每个请求都跑。生产的答案是把它们分层——先跑便宜的确定性过滤器,只在这些没解决的部分上才跑昂贵的模型检查——这样你只在真正需要时才为重推理付钱。

那 Lakera、Bedrock/Azure guardrail 或 Invariant 又如何?

它们是同一片场地里托管与被收购的那一侧。Lakera Guard 去了 Check Point(2025 年 9 月),是一个托管 API,非开源。Invariant Labs 去了 Snyk(2025 年 6 月),保持 Apache-2.0,且智能体/MCP 原生——它的 mcp-scan 检查 MCP server 有无工具投毒,如果你跑 MCP 工具,这值得知道。那些云平台——OpenAI 的 Moderation API、AWS Bedrock Guardrails(在 2026 年加入了一个智能体逐步的 InvokeGuardrailChecks API),以及 Azure AI Content Safety(用于直接和间接注入的 Prompt Shields)——全是托管的,不是开源的。如果自托管和开源不是硬性要求,它们是合理的选择;本文转而聚焦于独立的开源幸存者。

延伸阅读

本站相关内容:

  • Guardrails 101——配套概念:guardrail 是什么、它坐在模型周围哪里,以及整篇文章立足的那个确定性 vs 概率性的分野。从这里开始。
  • Prompt Injection 入门——为什么没有哪个 guardrail"解决"注入,以及取代"单个过滤器"幻想的纵深防御心态。
  • 结构化输出——智能体安全的确定性主干,也是 Guardrails AI 的主场:把工具调用的参数对着 schema 校验。
  • 什么是 MCP——智能体威胁面背后的协议:工具描述与工具输出也是不可信输入。
  • Prompt Injection 防御 2026——guardrail 只是其中一部分的分层缓解(输入筛查、最小权限工具、输出检查、人在环)。
  • 面向智能体的策略即代码——NeMo 的 rails DSL 和 LlamaFirewall 正伸手够向的那门功夫:把安全写成代码,而不是靠感觉。
  • MCP 工具投毒——Invariant 的 mcp-scan 瞄准的那种攻击:一个恶意的工具描述作为注入向量。

项目来源:

  • NeMo Guardrails on GitHub——Apache-2.0 源码(GitHub 显示"NOASSERTION")、Colang 和五类 rail。仓库从旧的 NVIDIA/NeMo-Guardrails 迁来。
  • Guardrails AI on GitHub——Apache-2.0 源码、校验器/Guard 模型、Hub,以及 Pydantic + RAIL 的结构化输出路径。
  • PurpleLlama on GitHub——Meta 的"Llama Protections":Llama Guard、Prompt Guard、Code Shield 和 LlamaFirewall(模型采用 Llama Community License,评估代码 MIT)。
  • LLM Guard on GitHub——MIT 源码和那条 ~35 个扫描器的流水线。注意:仓库已归档(约 2026-07-09),不再维护。