系统对比promptfoo、garak、Giskard、PyRIT、sentinel-scan-cli五款工具的测试层次与适用场景。
如果你的产品链路中有 LLM 参与(无论是客服机器人、调用工具的 Agent,还是读取不可信文档的 RAG 管道),迟早要面对一个问题:"我们真的测过提示词注入了吗,还是就瞄了一眼?" 开源社区有几款工具能帮上忙,但它们并不能互换——选错白费一天,选什么都不做代价远不止一天。
我逐一体验了这五个出现频率最高的工具,能跑的都跑了,跑不了的就仔细读源码和文档。以下是它们各自的能力、彼此重叠的部分,以及不重叠的部分。
大多数困惑来源于把两件不同的事混在一起测:
应用层测试:把提示词、护栏、工具调用逻辑、RAG 检索串起来后,你的应用能否抵御攻击。
模型层测试:底层模型本身是否存在可利用的行为,与外层包装无关。
promptfoo、Giskard 和 sentinel-scan-cli 主要是应用层工具。garak 是模型层。PyRIT 两者都行,取决于你怎么配置。搞清楚自己实际需要测哪一层,在你看功能列表之前就已经决定了大部分选择。
应用层,且采用率最高。npx promptfoo 免安装,内置 50+ 红队插件,开箱即映射到 OWASP LLM Top 10、NIST 和 MITRE ATLAS 的报告预设。据其官方 repo 称,OpenAI 和 Anthropic 内部也在用——这说明它经得起规模化验证,不只是玩具演示。
适用场景:想要对实际应用获得最完整的免费覆盖;愿意花时间把提示词和 Agent 配置接入;希望输出能直接对标合规框架(上级会来要的那种)。
代价:插件覆盖面广,想跑出有用的第一次结果不止五分钟。它需要投入才会回报——五分钟快检它帮不了你多少。
模型层。可通过 pip install 安装,50+ 探针,8.1k GitHub 星,NVIDIA 主动维护。它测的是模型本身的越狱、编码技巧、数据泄露等易感性,不针对你具体的提示词和应用逻辑。
适用场景:评估基于哪个基础模型构建,或者你维护一个模型,需要在有人包装成应用之前了解它的原始失败模式。它没有原生按 OWASP LLM Top 10 组织,如果你需要的交付物是一份合规映射,得自己做翻译工作。
如果你交付的实际上是一个带有系统提示词、工具访问和检索功能的应用,不要把它作为唯一的测试手段——因为模型层扫描不覆盖以上任何一项。
应用层,也有 OWASP 映射的检测器,与 promptfoo 思路相近。但关键在于:持续扫描 Hub——也就是让你能对线上应用反复运行测试的那部分——是付费功能。开源扫描器本身是真实可用的,但要预期免费版只是一个时间点检查,不是监控体系。
适用场景:想要 OWASP 映射的扫描,且对(或者已经在用)他们的商业工具来做持续监控持开放态度。
多轮攻击编排框架,为需要编写对话式攻击序列(多轮对话中逐步升级越狱、链接多种技巧)的红队人员设计。它更像一个框架而不是开箱即用的扫描器,而且相比其他四个工具,普通开发者的采用率明显低很多——因为目标用户是安全研究人员在执行结构化红队行动,而不是应用开发者在发版前做检查。
适用场景:你有实际的红队职能,需要构建和复用自定义多轮攻击序列。如果只是想快速得到常见注入模式的"是/否"答案,跳过它——为此付出的搭建成本不划算。
完整披露:我是这个项目的参与成员,请自行权衡,这里只说实话。
这是一个小型、应用层、无依赖的 CLI(Python 和 Node 双实现,输出字节级一致),覆盖 15 种攻击模式,每个都单独标注了 OWASP LLM Top 10 类别,输出到控制台和 JSON 全部带标签。核心卖点是"首次出结果的速度":--demo 零配置、零 API 密钥即可运行,一分钟内拿到带 OWASP 标注的通过/失败结果。
真正有用的场景:需要比重型工具更快的零配置初筛,或者想在 CI 阶段快速获得一个 OWASP 标注的信号,而不需要搭建一套红队框架。不适合的场景:只覆盖 15 种攻击,不是 50+。如果你需要广泛覆盖,或者已经过了"快速检查"阶段、在建立真正的持续红队实践,promptfoo 或 Giskard 覆盖更全面,应该用它们。
| 需求 | 推荐工具 |
|---|---|
| 测试应用的提示词/护栏/工具逻辑,想要最彻底的免费覆盖 | promptfoo |
| 测试原始模型行为,不针对具体应用 | garak |
| 想要 OWASP 映射且后续可能付费购买持续监控 | Giskard |
| 执行结构化多轮红队行动 | PyRIT |
| 想在引入重型工具之前做一个快速的零安装、OWASP 标注的冒烟测试 | sentinel-scan-cli |
这些工具并不互斥。真正在交付 LLM 应用的团队合理配置:sentinel-scan-cli 或 promptfoo 快速启动作为 CI 门禁,promptfoo 全套插件做发版前检查,如果同时在评估模型选择再加上 garak。根据你实际在测哪一层、以及有多少搭建时间来做选择,不要被谁的 README 最花哨带偏。