
很多团队做 AI 应用测试时,第一反应还是功能测试:
这些当然重要,但上线以后还有另一类问题更危险:
这类问题不能只靠测试同学临时想几句攻击 Prompt。你需要一套能重复执行、能输出报告、能进入回归流程的 LLM 安全扫描工具。
garak 就是这个方向里值得补上的工具。它的全称是 Generative AI Red-teaming & Assessment Kit,官方定位是 LLM vulnerability scanner。它不是用来证明“模型绝对安全”,而是用一组攻击探针持续发现模型或对话系统可能失败的方式。

如果你的团队已经在做 AI 客服、RAG 问答、Agent 工具调用、内部知识库助手,garak 可以作为上线前安全扫描补充项。
它最适合做三件事:
这篇文章不会把 garak 吹成万能安全平台。更准确地说,它是 LLM 安全测试里的“扫描器”:能把风险暴露出来,但最后怎么定级、怎么修复、怎么进门禁,还要结合业务场景判断。
官方 README 对 garak 的描述很直接:它会检查 LLM 是否能以我们不希望的方式失败,并探测 hallucination、data leakage、prompt injection、misinformation、toxicity、jailbreak 等弱点。
这和普通 AI 质量评测不一样。
普通评测更关注:
garak 更关注:
下面是当前 NVIDIA/garak 仓库截图,可以看到它已经作为 NVIDIA 组织下的开源项目维护,README 也明确标注了 LLM vulnerability scanner 这个定位。

从测试工程角度看,garak 的链路可以拆成四段:
generator:被测对象,可以是 OpenAI、Hugging Face、Bedrock、LiteLLM、REST 接口等probe:攻击或测试方法,例如 DAN、encoding、prompt injection、leak replaydetector:判断模型输出是否命中风险report:记录扫描日志、命中样本和结果文件这套结构的好处是:你不再需要每次靠人工临时写攻击句子,而是可以把同一组 probes 固定下来,对同一个系统重复跑。

官方 README 给出的标准安装方式是:
python -m pip install -U garak
如果要安装 GitHub main 分支的更新版本:
python -m pip install -U git+https://github.com/NVIDIA/garak.git@main
先查看可用 probes:
garak --list_probes
扫描 OpenAI 模型的 encoding 类攻击,官方 README 示例是:
export OPENAI_API_KEY="你的真实 key"
python3 -m garak --target_type openai --target_name gpt-5-nano --probes encoding
扫描 Hugging Face 上的 GPT-2 是否容易被 DAN 11.0 影响:
python3 -m garak --target_type huggingface --target_name gpt2 --probes dan.Dan_11_0
注意:真实团队试点时,不建议直接对生产环境乱跑红队 payload。先用测试环境、脱敏样本、低权限 Key,把扫描流程和报告解析跑通。
不要一上来就问“这个 AI 应用安全吗”。这个问题太大,也很容易变成空泛讨论。
更可执行的问题是:
NVIDIA NeMo Guardrails 文档里就用 garak 对不同防护配置做过扫描对比,例如 bare_llm、general instructions、dialog rails、moderation rails 等配置。这个思路很适合测试团队复用:同一个系统,同一组 probes,只改防护策略,看风险是否下降。

对测开来说,关键不是“报告截图好不好看”,而是把结果转成可比较数据:

除了官方 README 和 NVIDIA 文档,garak 也开始出现在安全工具链集成讨论里。
例如 DefectDojo 社区有一个 issue 提议新增 garak parser,把 garak 的 JSONL 扫描结果映射成 DefectDojo Findings。这个信号说明:garak 不只是“本地跑一下看结果”,它的输出也有机会进入更标准的漏洞管理流程。
注意这里不要过度解读。一个 issue 不能代表行业普遍采用,但它能说明 garak 的报告格式已经被安全平台集成场景关注。

这些工具经常被放在一起说,但测试团队选型时可以简单一点:
工具 | 更适合的方向 | 测试团队视角 |
|---|---|---|
garak | LLM 漏洞扫描、红队探针、风险发现 | 更像安全扫描器 |
Promptfoo | Prompt / 模型 / RAG 回归评测 | 更像 AI 应用测试框架 |
PyRIT | 红队自动化和攻击编排 | 更偏安全团队和红队流程 |
Giskard | AI 模型质量与风险测试 | 更偏完整 AI 测试平台 |
更现实的组合是:
也就是说,garak 不替代已有测试框架,它补的是“安全扫描”这一层。
garak 能发现风险,但不能证明系统安全。没有命中不代表没有漏洞。
LLM 红队扫描里,判断攻击是否成功本身也有不确定性。高风险结果建议二次验证。
全量 probes 成本和噪声都可能很高。先按业务风险选 probes,再逐步扩展。
红队 payload 可能触发敏感输出、日志污染或外部调用。先隔离环境,再扩大范围。
仅仅知道“某类攻击命中”不够,还要能追到防护策略、业务接口、Prompt 模板或工具权限。

建议测试团队这样落地:
选一个低风险 AI 应用,比如内部知识库问答或测试环境客服机器人。
先只跑 3 类:
把裸模型或当前版本作为 baseline,记录命中风险和样本。
增加系统提示词、输入过滤、输出审核或 Guardrails,再跑同一组 probes。
把结果分成三类:
garak 不是“让 AI 更聪明”的工具,它解决的是另一个问题:
AI 应用上线前,能不能用结构化方式发现安全薄弱点。
对测试团队来说,它的价值不在一次扫描报告,而在于把 LLM 安全测试变成可重复的工程动作:
如果你们已经在做 RAG、Agent、AI 客服或内部知识库助手,garak 值得作为安全扫描补充项进入测试工具箱。
参考资料: