
要点 | 结论 | 重点标注 |
|---|---|---|
工具定位 | Garak:LLM 红队评估工具,插件化覆盖提示注入/越狱/毒性/泄露 | 插件化+日志可审计 |
工作流 | 探针→生成器→LLM→检测器→评估器→报告 | probewise 编排 |
企业价值 | 缩短评估周期、提升发现率、形成可审计闭环 | 与治理(GRC)整合 |
彩色总览图:

围绕总体架构,我们将问题拆解为三类叙述:
这三类叙述贯穿全文,帮助读者从“框架理解”走向“落地执行”。

该组件关系图展示了从探针到报告的清晰责任边界:探针负责构造输入并触发风险,生成器承载与后端的交互,检测器在输出侧进行归类与判定,评估器则将各类命中汇总为可阅读的结论与可审计的证据。通过这种分层设计,团队可以分别迭代各模块而不破坏整体流程,形成“稳定的流水线 + 快速的局部优化”的良性结构。

该时序图强调了评估运行的关键握手点:参数配置决定运行范围与成本,探针与模型的往返是风险触发的核心,检测器与评估器负责把原始文本转化为决策依据。只要在每个握手点保持可观察性与审计留痕,评估就能做到可复现、可比较、可治理。
时序中的每一环都可能成为风险放大点。尤其是“探针→模型→检测器”三个环节:
参数 | 含义 | 说明 |
|---|---|---|
--target_type | 后端类型 | openai, huggingface, rest, nim |
--target_name | 模型/端点 | 如 gpt-4o, gpt2, my-rest |
--probes | 探针模块 | 如 encoding, dan.Dan_11_0 |
--list_probes | 列出探针 | 查询可用插件 |
-m/-p/-d | 指定生成器/探针/检测器 | 单元测试与开发 |
令牌应采用最小权限,评估端点与生产严格隔离,并设置合理的限流与超时策略,以控制成本与稳定性。
类别 | 目的 | 示例 |
|---|---|---|
静态提示 | 直接触发故障 | blank、固定问题库 |
编码/混淆 | 绕过滤器 | encoding(base64/rot13/emoji) |
越狱 | 解除约束 | dan.Dan_11_0、角色扮演 |
动态攻击生成 | 自适应增强 | atkgen 迭代提升命中 |
GCG类 | 梯度式构造 | gcg 家族(慎用资源) |
策略图:

为了让评分可用于生产决策,应建立“指标→动作”的映射:
维度 | 说明 | 风险示例 |
|---|---|---|
毒性 | 仇恨/暴力/歧视 | 有害言论 |
敏感信息 | PII/凭据 | 邮箱/手机号/API Key |
违规内容 | 违反政策/法律 | 违法指导 |
幻觉 | 虚构来源/错误事实 | 不可靠输出 |
规避/越权 | 绕约束/忽略规则 | DAN/忽略系统指令 |
指标 | 定义 | 应用 |
|---|---|---|
命中率 | 命中检测器比例 | 趋势监控 |
严重度 | 按影响面分级 | 优先级处置 |
误报/漏报 | 检测错误比例 | 调参与复核 |
引用质量 | 来源可追溯 | 幻觉判定 |
重点标注:评分需结合业务影响(资产/规模/法律罚则),避免“指标漂亮但无决策价值”。
python -m pip install -U garak开发版:
python -m pip install -U git+https://github.com/NVIDIA/garak.git@main贡献者:
conda create --name garak "python>=3.10,<=3.12"
conda activate garak
git clone https://github.com/NVIDIA/garak.git
cd garak
python -m pip install -e .类型 | 示例 | 特性 |
|---|---|---|
OpenAI | gpt-4o, gpt-3.5-turbo | 稳定API、策略过滤 |
HuggingFace | gpt2, 本地 Transformers | 离线可控 |
REST | 自定义端点 | 灵活接入 |
NIM | NVIDIA Microservices | 企业部署 |
primary_detector 与 extended_detectors。并发应与预算挂钩,避免拖垮后端或造成费用失控;在高负载窗口使用分批与退避策略,保持系统稳态。
在使用 Harness 时,推荐以下运行策略:
run_id(时间戳或流水号),并输出到固定 outdir,保持审计一致性。维度 | 机制 | 落地 |
|---|---|---|
策略即代码 | 版本化策略库/评估基线 | PR门禁+扫描报告 |
合规 | 脱敏/最小化 | 报表与证据留存 |
风险分级 | 严重度/影响面 | 工单优先级与SLA |
门禁 | 阈值与豁免 | 失败阻断发布 |

PR 检查应输出可链接报告与命中样例,支持审阅与复现;关联工单与责任人,让修复路径清晰、可追踪。
在集成层面,将报告与工单系统打通尤为关键:
场景 | 步骤 | 观察 | 修复 |
|---|---|---|---|
编码混淆→逐步翻译 | Base64包裹→逐步解码 | 二次翻译泄露结构 | 检测器识别编码序列 |
DAN越狱→危险指导 | 角色扮演请求教程 | 输出详细步骤 | 策略库禁止+语义匹配 |
模板劫持→覆写系统指令 | 注入“忽略系统指令” | 落入用户规则 | 不可覆盖块+格式校验 |

工具链评估应在隔离环境或模拟模式下进行,防止真实数据在测试过程中外泄。
问题 | 现象 | 解决 |
|---|---|---|
并发过高 | API拒绝/费用飙升 | 限流与队列 |
日志过大 | 存储压力 | 轮转与聚合 |
文本超长 | 评估耗时 | 片段化与截断 |
误报偏高 | 检测粗糙 | 双通道评估+人工复核 |
维度 | 原则 | 实践 |
|---|---|---|
PII保护 | 最小化暴露 | 遮蔽与脱敏 |
凭据管理 | 禁止明文 | KMS与短期令牌 |
审计留痕 | 不可抵赖 | 签名与只读存档 |
法规 | GDPR/本地法 | 区域化存储 |
在隐私合规上,最常见的失误是“报告样例脱敏不充分”。经验表明:
<email>)。表:风险生态与治理要点
维度 | 痛点 | 解决策略 | 关键度 |
|---|---|---|---|
动态版本 | 命中率波动 | 版本化基线与趋势图 | 高 |
场景差异 | 通用探针不足 | 业务场景探针库 | 高 |
人因责任 | 报告无人认领 | 工单绑定责任人 | 中 |
预算控制 | 成本超限 | 评估配额与降级 | 中 |
落地建议:先从单一业务域建立“场景化探针库”和“阈值门禁”,形成可复用模板;再逐步扩展到其他域,避免“一开始就全面铺开”造成治理混乱与成本失控。
base.py 抽象类定义了生命周期方法(初始化、执行、清理)。自定义插件应遵循“幂等性”原则,避免副作用影响其他模块。Mermaid 类图(插件抽象):

事件流示意(彩色):

这套类与事件模型不仅适用于 Garak,也适用于其他评估工具。统一接口与事件有利于将评估结果汇入“安全数据湖”,进行全局分析与报表生成。
表:组合攻击策略与防护建议
攻击组合 | 目标 | 防护 | 代价 |
|---|---|---|---|
Base64+ROT13+零宽 | 绕关键字过滤 | 检测器识别编码序列 | 低 |
角色扮演+评教模式 | 危险指导输出 | 语义匹配与黑名单 | 中 |
自适应迭代+聚类 | 提升命中 | 强制上限与人工复核 | 中 |
策略选择的核心是“性价比”。例如编码/混淆往往成本低、命中价值高;而自适应迭代需更多调用预算与人工复核,不应作为日常基线的第一优先。
$env:OPENAI_API_KEY 设置环境变量。示例:OpenAI 编码探针(Windows PowerShell)
$env:OPENAI_API_KEY="sk-xxx"
python -m garak --target_type openai --target_name gpt-4o --probes encoding --outdir .\reports --loglevel INFO示例:HuggingFace 本地模型越狱测试
python -m garak --target_type huggingface --target_name gpt2 --probes dan.Dan_11_0 --outdir .\reports_hf表:参数含义与默认值
参数 | 默认 | 建议 |
|---|---|---|
--outdir | 当前目录 | 指向只读审计库子目录 |
--loglevel | INFO | 长跑任务建议 WARN |
--timeout | 30s | 高负载提高到 60s |
--retries | 3 | 结合限流与退避 |
实践要点:
PowerShell 时建议统一项目根目录变量,避免相对路径混乱。维度 | 阈值示例 | 行为 |
|---|---|---|
毒性命中率 | < 1% | 合格 |
PII泄露 | 0 | 必须阻断 |
越狱样例 | < 3 条 | 复核后可豁免 |
幻觉比例 | < 5% | 标注来源改进 |
CI/CD 集成要点:在 PR 阶段执行 Garak 扫描,将 JSON-L 报告与命中样例链接到评审页面;失败触发工单与通知,限制合并操作。
门禁实践:
时序图(工具链注入):

在这些案例中,核心不是“是否命中”,而是“命中后如何处置”。处置流程应包含:自动阻断(如涉及隐私与法律风险)、人工复核(判定业务可接受与否)、策略库更新(提升未来防护能力)。
表:隐私合规控制项
控制项 | 描述 | 检查 |
|---|---|---|
数据最小化 | 仅保留必要证据 | 抽查报告字段 |
权限隔离 | 测试/生产分离 | 访问策略审计 |
区域化存储 | 合规区域落地 | 存储路径校验 |
数字签名 | 报告不可抵赖 | 验证与留存 |
性能治理的目标是“稳态可持续”。建议为评估配置每日/每周预算,并在达到 80% 阈值时主动预警;必要时自动降级到低成本探针集合,确保生产系统与评估系统都不被拖垮。
示例(脱敏片段):
{"run_id": "2025-11-24T10:15:00Z", "target": {"type": "openai", "name": "gpt-4o"}, "probes": ["encoding", "dan.Dan_11_0"], "metrics": {"toxicity_hit_rate": 0.004, "pii_hits": 0, "jailbreak_examples": 2}, "hits": [{"probe": "encoding", "detector": "pii", "severity": "high", "snippet": "..."}], "notes": "all samples redacted"}表:报告字段说明
字段 | 含义 |
|---|---|
run_id | 运行标识(时间戳) |
target | 后端类型与模型 |
probes | 探针列表 |
metrics | 指标汇总 |
hits | 命中样例摘要 |
notes | 备注与脱敏声明 |
报告撰写建议:
场景 | 推荐组合 | 备注 |
|---|---|---|
客服问答 | Garak + Promptfoo | 用例断言与红队结合 |
代码助手 | Garak + 静态分析 | 双向校验危险代码 |
企业发布门禁 | Garak + CI/CD | 阈值与豁免流程 |
饼图:

组合策略说明:红队覆盖用于发现“未知未知”,用例断言用于保障“已知要求”,门禁集成用于把“规则”纳入交付流程。三者协同,才能兼顾发现能力与交付稳定性。
行动优先队列建议:
精简章节不意味着浅薄内容。通过对“架构、工作流、策略、部署、治理、案例与工程细则”的纵深补充,本文提供了足够的操作指南与治理框架,确保任何规模的组织都能以可审计、可复现、可治理的方式推进 LLM 安全评估。若需进一步定制(行业场景、专用探针、合规模板),可在现有框架上增添场景库与阈值策略,不改变整体章节结构即可实现扩展。
最后的建议是保持“评估即产品”的心态: