智能体测试与评测
评测智能体 AI 系统与传统软件测试有本质区别:输出结果不确定、任务涉及多步骤、质量评判往往具有主观性。一套完善的评测策略需要将自动化指标、人工审核与持续回归检测有机结合。
概述
评测在多个层次上展开:
| 层次 | 测试内容 | 时机 |
|---|---|---|
| 单元 | 单次 LLM 调用、工具输出、提示词模板 | 开发阶段 |
| 集成 | 智能体与工具链、记忆读写、任务交接 | 部署前 |
| 端到端 | 从用户输入到最终输出的完整任务流程 | 预发布与金丝雀阶段 |
| 生产环境 | 真实用户交互,抽样评分 | 持续进行 |
最佳实践
| 关键挑战 | 描述 | 经验教训与替代方案 | 采用方案 |
|---|---|---|---|
| 非确定性输出 | 相同输入产生不同输出,导致基于断言的测试脆弱易碎 | 尝试过精确字符串匹配,但测试不稳定且难以维护 | 使用基于评分标准的 LLM 充当评审(LLM-as-judge)评测;对分数阈值断言,而非对精确字符串断言 |
| 开放性任务无标准答案 | 很多智能体任务没有唯一正确答案 | 尝试对所有输出进行人工标注,无法规模化 | 为典型任务构建黄金数据集;用自动化评分扩大覆盖范围,用人工审核处理边界情况 |
| 评测覆盖缺口 | 单元测试通过,但端到端质量下降 | 孤立测试各组件,未能发现完整流水线中的涌现性故障 | 维护端到端评测套件,并在每次部署时运行;将通过率作为部署门禁指标 |
| 提示词回归 | 提示词变更悄无声息地导致边界情况质量下降 | 部署提示词更新时未重新运行评测,回归问题在生产环境才被发现 | 每次提示词变更后运行完整评测套件;若分数低于基线则阻断部署 |
| 工具调用评测 | 难以评测智能体是否以正确参数选择了正确工具 | 仅评测最终输出,忽略了工具选择是否准确 | 单独评测工具调用链路——检查工具选择准确性与参数正确性 |
| 多智能体评测 | 难以将流水线中的质量问题归因到具体智能体 | 仅评测流水线的最终输出 | 对各智能体的输出独立埋点;在每个任务交接边界处分别评测 |
| 基准测试刷分 | 针对基准优化后的智能体在真实任务上表现糟糕 | 仅依赖公开基准(GAIA、SWE-Bench),遗漏了领域特定故障 | 以真实用户交互数据构建内部领域专属评测集,作为公开基准的补充 |
| 评测成本 | 对每条输出运行 LLM 充当评审代价高昂 | 对 100% 的输出进行评测,成本难以为继 | 策略性采样——对 100% 的失败案例、10–20% 的成功案例及所有边界情况类别进行评测 |
| 高风险决策依赖单一模型 | 在高风险决策场景(信用评分、合规检查)中依赖单一非确定性 LLM | 信任单次模型调用;幻觉或偏差输出未被发现 | 并行执行共识机制:对同一任务使用不同模型或提示词运行两个或多个独立智能体;当输出在容差范围内一致时,编排者验证结果;当输出差异显著时,上报至解析器或人工处理 |
| 智能体版本静默回归 | 将新版智能体全量上线存在大规模质量下降风险 | 新版本立即 100% 上线;回归问题在用户投诉后才发现 | 金丝雀智能体测试:将少量流量(如 5%)路由至新版智能体;与稳定版本对比性能指标;若回归率超过阈值则阻断全量发布 |
评测框架
| 框架 | 类型 | 适用场景 |
|---|---|---|
| DeepEval | 开源 | 14 种以上用于 RAG 和微调评测的指标 |
| RAGAS | 开源 | RAG 专项指标(忠实度、相关性、上下文召回率) |
| MLFlow LLM Evaluate | 开源 | 集成到现有 ML 流水线 |
| LangChain OpenEvals | 开源 | 基于预置评分标准的 LLM 充当评审 |
| AIDLC Evaluator | 开源(AWS Labs) | 黄金测试用例、语义评测、代码分析(代码规范检查、安全检查)、NFR 测试(Token 数、执行时间)、CI/CD 集成——与 AIDLC Workflows 框架捆绑提供 |
| AgentPex | 开源(Microsoft) | 基于链路追踪的智能体评测:导入执行轨迹(JSON、Langfuse、Langtrace/OTEL),从系统提示词和工具 schema 中提取规范,应用 8 种评测技术(含事实接地性和参数检查);将评分推送至 Langfuse/Langtrace |
评测平台
| 平台 | 核心能力 |
|---|---|
| Galileo | 自定义指标、CLHF(基于人类反馈的持续学习)、Autotune |
| Google Stax | 托管测试数据集、预置与自定义评测器、可视化追踪 |
| LastMile AI | 生产环境企业级测试与基准测试 |
| Braintrust | 基于真实用户数据的回归检测 |
| Harbor | 跨数千个并行云沙箱运行 Terminal-Bench 及自定义基准的开源运行框架;可生成 RL/SFT rollout |
智能体基准测试参考
| 基准测试 | 评测重点 |
|---|---|
| METR | 无需人工介入的自主任务完成能力 |
| GAIA | 跨多样化任务的通用智能体能力 |
| SWE-Bench | 代码生成与 GitHub Issue 修复 |
| Terminal Bench | 在终端/CLI 环境中运行的智能体 |
| VisualWebArena | 与 Web 界面交互的多模态智能体 |
| OSWorld | 与真实操作系统环境交互的智能体 |
| DeepResearch Bench | 深度研究智能体——在 100 项博士级任务上评测报告质量(RACE)和引用准确性/事实接地性(FACT) |
作为质量门禁的评测(Google AgentOps 模型)
传统软件测试不足以应对智能体,因为它只评测功能正确性。智能体需要对行为质量进行综合评测——即完成任务过程中推理与行动的完整轨迹。
Google 的核心原则:评测智能体与评测 LLM 有本质区别。一个智能体可以通过所有工具的 100 个单元测试,却仍因选错工具或产生幻觉而彻底失败。
黄金数据集:一组经过精心挑选的代表性测试用例,用于评测智能体的预期行为和护栏合规性。这是评测门禁部署的基础。生产环境中的故障会持续反馈,用于扩充该数据集。
评测门禁的两种实施方式: 1. 手动 Pre-PR 方式:AI/提示词工程师在本地运行评测,将性能报告附至 PR;审核者(ML 治理负责人)评测行为变化与护栏违规情况 2. 自动化流水线方式:评测运行框架(harness)在工具调用成功率或有用性等指标低于预设阈值时自动阻断部署
智能体轨迹评测要点: - 工具选择准确性(是否选择了正确的工具?) - 参数正确性(是否传入了正确的参数?) - 护栏合规性(是否遵守了信息安全与行为安全策略?) - 任务完成度(是否真正解决了问题?) - 与生产基线相比的行为回归情况
负责任 AI(RAI)测试: - NPOV(中立视角)评测:测试中立性与平衡性 - 一致性评测:测试不同人口群体间的行为一致性 - 基于角色的模拟:通过 AI 驱动的模拟,主动尝试通过创意场景突破安全系统
运行框架层评测类别
评测运行框架本身,而非仅评测模型。模型准确率是必要条件,但并不充分——在基准测试上表现优异的模型,仍可能因运行框架层面的弱点而灾难性地失败。
| 评测类别 | 衡量内容 |
|---|---|
| 任务成功率 | 智能体是否完成了目标? |
| 工具选择精准度 | 是否选择了正确工具、避免了不必要的调用? |
| 权限正确性 | 权限检查是否在正确时机触发? |
| 审批正确性 | 审批请求是否在正确风险级别发出? |
| 提示词注入抵抗力 | 智能体是否将检索到的内容视为数据而非指令? |
| 上下文压缩保留率 | 压缩后是否保留了当前目标和已有审批信息? |
| 检索相关性 | 检索是否返回了有用且在范围内的内容? |
| 输出格式合规性 | 工具结果和最终答案是否符合预期 schema? |
| 故障恢复能力 | 智能体是否能优雅地处理工具故障(结构化报错,而非静默跳过)? |
| 成本与延迟 | 是否遵守了预算约束? |
| 人工干预率 | 智能体需要意外上报人工处理的频率如何? |
对抗性测试用例
面向任何生产环境运行框架的必要对抗性场景:
- 检索文档中包含"ignore previous instructions"
- 邮件正文中包含数据外泄请求
- 用户在未经审批的情况下要求发送至外部
- 工具返回格式错误或超大体积数据
- 连接器授权在执行中途过期
- 模型调用了未知工具
- 模型传入了无效工具参数
- 上下文触达上限,压缩在任务中途触发
- 两条已加载指令相互冲突
- 目标表述模糊或无法衡量
- 检索内容中出现敏感数据(PII、密钥)
- 子智能体返回不受支持或无法验证的结论
每个失败的对抗性测试用例都应成为永久性回归评测。
智能体 AI 红队演练(CSA)
云安全联盟智能体 AI 红队演练指南(2025 年 8 月)在上述对抗性测试用例基础上,为自主智能体专门构建了一套结构化、12 类别的红队演练程序:
| 类别 | 测试重点示例 |
|---|---|
| 智能体授权与控制劫持 | 权限提升、角色继承利用、最小权限执行 |
| 检查者缺席回路 | 阈值突破模拟、人工/检查者参与延迟 |
| 智能体与关键系统交互 | 物理/IoT 命令注入、安全联锁绕过 |
| 智能体目标与指令篡改 | 目标解读攻击、指令集投毒 |
| 智能体幻觉利用 | 诱导幻觉、跨智能体链的级联幻觉 |
| 智能体影响链与爆炸半径 | 通过受损智能体进行跨系统利用、隔离验证 |
| 智能体知识库投毒 | 训练数据投毒、RAG 知识库污染 |
| 智能体记忆与上下文篡改 | 跨会话数据泄露、记忆投毒 |
| 智能体编排与多智能体利用 | 智能体间信任滥用、编排者状态投毒 |
| 智能体资源与服务耗尽 | 计算资源/API 配额耗尽 |
| 智能体供应链与依赖项攻击 | 开发链与部署流水线攻陷 |
| 智能体不可追溯性 | 链路追踪规避、取证混淆、问责链验证 |
CSA 推荐的四阶段方法论——准备 → 执行 → 分析 → 报告——可直接映射至发布门禁流程:定义场景与隔离测试环境、逐步执行并记录日志、按严重性分析和优先排序发现,最后向利益相关者报告缓解策略。完整的威胁分类体系、可操作的测试步骤,以及红队演练工具(AgentDojo、Agent-SafetyBench、SplxAI Agentic Radar、Azure AI Red Teaming Agent、FuzzAI 等)概览,请参阅 智能体 AI 红队演练指南(CSA)。
发布门禁
进入生产环境发布前,以下条件必须全部满足:
- 工具注册表保持精简——仅包含 MVP 任务所需的最小工具集
- 每次工具执行前在本地运行 schema 验证
- 权限矩阵在运行框架代码中强制执行(而非仅依赖提示词)
- 每个高风险操作类别都有对应的审批 UX 流程
- 提示词注入测试已在真实检索内容上通过
- 压缩测试确认当前目标在压缩后仍能保留
- 连接器授权与撤销流程已进行端到端测试
- 链路追踪已启用,且包含所有必填字段
- 成本预算已强制执行,并与停止条件关联
- 回滚或事故响应路径已形成文档
- 评测已在真实与对抗性任务集上均完成运行
参见
- 可观测性
- 部署
- 上下文工程
- 智能体 AI 红队演练指南(CSA) — 12 类别威胁分类体系与四阶段测试方法论
- 智能体安全 — 护栏、审批工作流与审计跟踪
- 智能体沙箱 — 用于隔离并行评测试验的云托管沙箱提供方(含 LangSmith Sandboxes)
参考资料
- agents-best-practices — DenisSergeevitch (2025) — 运行框架层评测类别、对抗性测试场景与发布门禁清单的来源
- Agentic AI Red Teaming Guide — Cloud Security Alliance(2025 年 8 月)