Compare · 横评对比
garak vs Inspect AI:漏洞扫描与通用 Agent 评估怎么选?
首轮接口风险扫描可试 garak;需要多步 Agent 轨迹与任务评分,可评估 Inspect AI。两者都能参与安全评估,按目标范围和实际证据选型。
| 维度 | garak | inspect-ai |
|---|---|---|
| 组织方式 | 探针、目标连接器、检测器 | dataset、solver、scorer、任务 |
| 起点 | 明确范围的模型或对话扫描 | 定义可复现任务与评分依据 |
| 过程观察 | 视目标适配与测试设计 | 可表达工具调用和多步任务 |
| 通过含义 | 当次检测器未标记风险 | 当次任务与评分条件满足 |
| 软件许可 | Apache-2.0 | MIT |
| 成本 | 模型、判定、计算与复核另计 | 模型、沙箱、执行与复核另计 |
简短结论
想先用探针组织模型或对话系统的漏洞扫描,可考虑 garak;需要把数据集、Agent 执行步骤、工具与评分组合成任务,可考虑 Inspect AI。两者都能参与安全评估,差别在于默认组织方式、已有组件与你需要自己编写的部分,而不是一个“测安全”、另一个“完全不测安全”。
本文帮助已有 Python 开发能力的团队决定先做哪种评估。没有运行两个工具的共同漏洞检出基准,也没有使用真实业务接口或付费模型做安全对比。资料核对日期为 2026-10-22;教程只使用 garak 内置测试目标验证流程。
核心差异速览
| 维度 | garak | Inspect AI |
|---|---|---|
| 组织入口 | 探针、目标连接器与检测器 | 数据集、solver、scorer 与任务 |
| 典型起点 | 针对明确对象选取扫描范围 | 定义任务与评分依据 |
| Agent 过程 | 视目标适配与测试设计而定 | 可表达工具使用和多步执行 |
| 结果解释 | 检测器命中及其原始证据 | 样本、运行轨迹和评分 |
| 适用边界 | 不自动证明完整应用安全 | 不自动覆盖全部风险类别 |
| 费用 | 软件许可与模型、运行费用分开 | 软件许可与模型、运行费用分开 |
garak 更顺手的起点
已有一个明确授权测试的模型或对话接口,想先检查若干风险类别时,garak 的插件组织有助于确定首轮范围。选定探针和检测器,记录目标与版本,再检查完整的输入输出。先少量运行,理解失败代表什么,比默认扩大范围更容易控制费用与噪声。
探针和检测器的具体定义非常重要。一个检测器可能依赖字符串模式,另一个可能依赖模型判定。两种结果的误报与漏报不同,不能只看最后的通过率。先人工检查少量典型命中,并记录不适用、跳过或执行错误,再将确认后的案例纳入回归。
还要区分目标对象。通过某个连接器测试基础模型,不等于已经覆盖了应用中的检索、身份隔离、审批和数据库写入。若要测试完整应用,需要合适的目标适配与观察手段,确认失败是否真正发生在用户路径上。
Inspect AI 更顺手的起点
当问题涉及多步 Agent,例如读取文档、调用工具、等待批准、执行操作并回答,Inspect 的任务结构方便将过程组织起来。dataset 定义样本,solver 运行过程,scorer 按指定依据评分;工具和沙箱可按任务需要配置。
Inspect 也能设计对抗或安全任务。已有相关任务时,可以让同一输入同时得到质量与风险评分,避免只看一个聚合数字。对于工具调用,要记录请求了什么操作、是否经过审批、是否产生实际副作用,而不只比较最后的文本答案。
代价是需要明确的任务和评分设计。框架提供组件,不会自动知道你的业务风险。对“应拒绝的越权操作”和“应正常完成的用户请求”分别建立对照,才能防止系统靠过度拒绝取得表面的好成绩。
如何用同一个案例比较
以客服 Agent 为例,设定一个合成用户、一份允许访问的订单和一份不允许访问的记录。预期行为是只返回授权数据,不能因为文档中包含某段指令而更改操作权限。这个测试应运行在隔离环境,不触发真实发信、退款或删除。
用 garak 时,先确认目标连接器与输入是否能触达完整应用,并为实际失败定义合适检测;用 Inspect 时,把初始上下文、工具行为和评分依据写成任务。两边保存相同业务条件,但不要把插件数量当成相同样本数,也不要把最终分数直接相减。
真正可比的内容是行为和证据:是否展示了越权数据、是否执行了未批准操作、正常请求是否被误拒。工具默认报告的统计口径可以不同,应在同一套外部验收规则下解释。
费用与执行限制
garak 的开源库代码采用 Apache-2.0,Inspect 开源框架采用 MIT;这里的 $0 指软件许可费,不是完整运行成本。模型生成、判定模型、测试编排、沙箱、日志与人工复核分别核算。使用外部服务时,还需确认适用账户和额度。
在 garak 中,减少每个输入的生成数量通常可降低基础工作量,但不是全部请求数或美元的硬上限。动态探针、重试和额外判定可能增加成本。Inspect 的样本数、模型与执行限制也应按实际任务设置,不能只靠一个较小的样本文件就认为调用已经受控。
预估可以从“输入数 × 重复生成 × 平均 token”开始,再加判定、重试和其他组件。实际运行后核对用量与失败记录,逐步校准。并发、超时和独立账户预算需要一起配置,达到停止条件后按预定规则结束。
日志、中文和误报
报告可能保存原始输入、响应、目标配置和执行信息。先用合成数据验证日志位置与访问权限,分享之前另行检查敏感内容。不要把失败报告直接当成可以公开的复现包,更不要把服务密钥写进测试文本或截图。
中文评估还需要确认探针的业务相关性、模型能否理解,以及检测器是否覆盖中文表达。某个英文风险词没有出现,不代表中文回答没有问题。把正常拒答、无意义输出和接口报错全部当成安全通过,会严重高估结果。
本篇没有两个工具的中文共同基准。配套教程中的始终通过、始终失败检测器只展示评估线路是否连通,不能作为任何真实模型的安全表现证据。
可以同时使用吗
可以先用 garak 做有限探索,把人工确认的问题整理成稳定的回归案例;需要观察 Agent 多步行为时,再用 Inspect 任务保留过程和评分。也可以在已有 Inspect 项目里直接建立风险测试,不必为了工具数量增加重复基础设施。
组合时应保留测试来源、模型版本、配置与判定依据,并分开报告未执行、错误和人工确认的失败。测试结果不能自动授权修改客户数据或触发生产操作。中国大陆访问、模型下载与云服务可用性需在部署环境核对。
选择建议
已有明确接口、希望快速组织首轮风险探针,先试 garak;重点是多步任务与工具执行证据,优先评估 Inspect。先用合成数据和小范围建立可复现流程,再扩大到业务问题。需要处理敏感数据本身时,还应补充 Presidio 的识别和脱敏验证。
下一步可看 garak 入门教程 与 LLM 安全测试工具推荐。
官方资料
结论
首轮接口风险扫描可试 garak;需要多步 Agent 轨迹与任务评分,可评估 Inspect AI。两者都能参与安全评估,按目标范围和实际证据选型。
常见问题
- Inspect AI 不能做安全测试吗?
- 可以。它支持设计风险任务与相应评分,不能简单归类为只测普通质量。
- garak 扫基础模型是否等于测完应用?
- 不等于。检索、数据库过滤、权限、审批和工具副作用需要相应应用目标与测试。
- 两个分数可以直接相减吗?
- 不能。探针、样本、检测与评分口径不同,应按共同业务行为与证据评价。
- 可以一起使用吗?
- 可以用有限扫描探索问题,再将人工确认的问题整理成可复现任务和回归案例。
- 生成次数是费用硬上限吗?
- 不是。动态行为、重试、判定等可能增加调用,还需独立预算与停止机制。
- 本篇证明哪款检出率更高吗?
- 没有。未做共同真实模型或付费 API 基准,教程仅验证内置目标与报告流程。