开发与工程 llm-safetyguardrailspythoncolangllm-securitynvidia

NVIDIA NeMo Guardrails 库

为基于大语言模型的对话应用添加可编程护栏,实现安全、可信和可控的交互。

FollowAgents 评估 · FARS-2.1
不推荐
54/ 100 五分制 2.7 / 5
1 2 3 4 5 6
1信任安全12 / 29 · 2.1/5

证据显示:README 明确说明遥测数据收集及禁用方法,数据流透明性较好;敏感数据处理有内置的敏感数据检测和掩码功能;依赖安全方面有版本锁定和依赖组,但未提供漏洞扫描证据;外部影响方面,遥测是默认开启的,但提供了退出机制;回滚机制未提及;来源归属方面,有明确的作者和版权声明。扣分原因:遥测默认开启,未默认征得用户同意;依赖安全缺乏具体漏洞扫描证据;回滚机制缺失。

2可靠稳定8 / 14 · 2.9/5

证据显示:README 和 pyproject.toml 中的描述一致,自洽性较好;依赖有版本范围,但未提供可用性保证;失败消息方面,测试文件中有错误消息的断言,但整体失败处理文档不足。扣分原因:依赖可用性未提供保证;失败消息文档不充分。

3适用触发12 / 18 · 3.3/5

证据显示:README 明确了目标受众(开发者)和多种使用场景;能力边界有说明(如内置 guardrails 可能不适合生产);触发精度方面,Colang 语言提供了精细控制;环境适配方面,支持多种 Python 版本和可选依赖。扣分原因:能力边界说明较简略;环境适配未覆盖所有平台。

4规范维护11 / 18 · 3.1/5

证据显示:信息架构清晰,有 README、文档链接、示例;安装说明详细;命名稳定,有版本号;示例和 FAQ 有提供;已知限制有提及但不够详细;许可证明确为 Apache-2.0;版本变更日志有链接;维护责任有明确归属(NVIDIA)。扣分原因:已知限制描述不够详细。

5有效结果7 / 13 · 2.7/5

证据显示:输出格式与 OpenAI Chat Completions API 兼容,可用性好;边际价值高,提供了独特的 Colang 语言和多种 guardrails;成本效益方面,有性能基准测试,但未提供具体成本数据。扣分原因:成本效益缺乏具体数据。

6证据核验4 / 8 · 2.5/5

证据显示:README 中的声明有文档和论文支持,可追溯性较好;跨来源验证方面,有测试文件和 CI 配置,但未提供独立验证;事实与推断分离方面,README 区分了事实和推断,但不够明确。扣分原因:跨来源验证不足;事实与推断分离不够清晰。

证据充分度: 评估于 2026年8月9日 审查版本 f5900d1e9e61
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
源码中未见的安全控制:回滚或恢复路径
使用前请注意
  • 遥测默认开启,需用户主动退出,可能涉及隐私问题。
  • 依赖安全未提供漏洞扫描证据,需自行评估。
  • 回滚机制未提及,升级失败时可能无法回退。
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

NeMo Guardrails 是 NVIDIA 推出的开源工具包,用于在 LLM 对话应用中添加可编程护栏(rails)。它通过 Colang 建模语言定义输入、对话、检索、执行和输出五类护栏,支持事实核查、幻觉检测、越狱防护、敏感数据脱敏等内置功能。该库提供 Python API(LLMRails)和 CLI 服务器(nemoguardrails server),可集成多种 LLM 引擎(如 OpenAI、NVIDIA NIM),并可选集成 LangChain。Telemetry 会匿名收集使用数据,但可通过环境变量禁用。Apache 2.0 许可。

该库在应用代码和 LLM 之间插入护栏层。用户通过调用 LLMRails.generate() 或 generate_async() 传入消息列表,护栏层根据配置执行输入/对话/检索/执行/输出护栏,如检查越狱、屏蔽敏感数据、自我核查事实、检测幻觉等,最终返回规范的 Chat Completions 格式响应。配置通过 config.yml 和 .co 文件定义,可加载自定义动作(actions.py)。CLI 支持启动交互式聊天(nemoguardrails chat)、服务器,以及评估(nemoguardrails evaluate)。

  1. 开发者需要为基于 GPT-4 的客服机器人添加话题限制和事实核查。
  2. 企业构建 RAG 系统时,护栏层可过滤有毒检索块并验证生成内容。
  3. 需要遵循标准操作流程(如身份验证、支持流程)的领域助手。
  4. 希望为自定义 LLM 端点增加安全层,防止越狱和提示注入。
  5. 使用 LangChain 的开发者在链周围添加护栏层。
  6. 需要将对话流程硬编码为预定义路径的产品团队。

这个 Agent 有哪些优点和局限?

优点
  • 提供五类护栏,覆盖输入、对话、检索、执行和输出层面,全面保护 LLM 应用。
  • 内置丰富护栏库,包括越狱检测、事实核查、幻觉检测等,并集成 NVIDIA 安全模型和第三方 API。
  • 支持多种 LLM(OpenAI、NVIDIA NIM 等),并有 Python 和异步 API,便于集成。
  • 提供评估工具和漏洞扫描报告,便于量化安全性。
  • Apache 2.0 许可,社区可贡献。
局限
  • 需要学习 Colang 建模语言,有一定学习曲线。
  • 依赖 LLM 提供商,需配置 API 密钥,可能产生成本。
  • 默认收集匿名使用统计,需主动禁用(设置环境变量)。
  • LangChain 集成需额外安装和配置,非默认启用。
  • 内置护栏可能不适用于所有生产场景,需自行调整。

如何安装或部署这个 Agent?

使用 pip 安装:pip install nemoguardrails。需要 Python 3.10 至 3.13,并配置 LLM 提供商的 API 密钥(如 OpenAI)。

如何使用这个 Agent?

  1. 创建配置目录,包含 config.yml(定义模型和护栏)、.co 文件(Colang 流程)、actions.py(自定义动作)。2. 使用 LLMRails 实例调用:from nemoguardrails import LLMRails, RailsConfig; config = RailsConfig.from_path("PATH/TO/CONFIG"); rails = LLMRails(config); completion = rails.generate(messages=[{"role": "user", "content": "Hello world!"}])。3. 可选启动服务器:nemoguardrails server --config PATH/TO/CONFIGS --port 8000,通过 /v1/chat/completions API 交互。

常见问题

如何禁用遥测?
在库启动前设置环境变量 NEMO_GUARDRAILS_NO_USAGE_STATS=1 或 DO_NOT_TRACK=1,或在配置目录创建 do_not_track 文件。
是否支持本地 LLM?
支持,通过配置可接入本地模型(如 LLaMa-2、Falcon),需在 config.yml 中指定引擎。
如何添加自定义护栏?
编写 .co 文件定义 Colang 流程,并在 config.yml 中注册。也可在 actions.py 中实现自定义动作。
护栏层会影响性能吗?
会,因为添加了额外的 LLM 调用和检查。但可通过优化配置(如选择性启用护栏)平衡。
生产环境使用时应注意什么?
内置护栏不一定完全满足特定行业要求,需结合内部团队进行安全测试和合规审查。

相关 Agents