引言

2026 年,AI Agent 已从简单的对话助手演进为能自主规划、调用工具、执行多步骤任务的复杂系统。但 Agent 的评估远比 LLM 困难——同一个任务可能有无数条正确路径,中间步骤的错误可能被后续步骤弥补,而「完成任务」的定义本身也充满模糊性。本文系统梳理 Agent 评估的方法论与框架。

一、Agent 评估的核心难点

1.1 与传统 LLM 评估的本质区别

维度 LLM 评估 Agent 评估
输入 单轮/多轮 prompt 任务描述 + 环境 + 工具集
输出 文本回答 多种模态(文本、代码、文件、API 调用)
评估单元 单次回答 多步骤轨迹
正确性 可对照参考答案 路径多样,无唯一正确答案
环境依赖 依赖外部环境状态
成本 高(每步消耗 tokens + 工具调用)
可复现性 低(环境状态变化)

1.2 核心挑战

挑战一:路径多样性。 「订一张明天去上海的机票」这个任务,Agent 可以先查日历确认日期、再搜索航班、最后预订;也可以直接搜索航班并预订。路径不同但都正确。

挑战二:中间错误的可恢复性。 Agent 在第 2 步调错了 API,但在第 3 步意识到并纠正了——这算不算错误?如何量化?

挑战三:环境不可复现。 Agent 调用的 API 返回值可能随时间变化,同一任务在不同时间执行可能得到不同结果。

挑战四:评估成本高。 一个 Agent 任务可能涉及 10-50 步工具调用,每步都需要评估正确性,总成本远超单次 LLM 评估。

二、Agent 评估维度体系

2.1 核心评估维度

Agent 能力评估
├── 任务完成能力
│   ├── 成功率 (Success Rate)
│   ├── 部分完成度 (Partial Completion)
│   └── 结果质量 (Output Quality)
├── 工具使用能力
│   ├── 工具选择准确率
│   ├── 参数填充正确率
│   └── 调用时机合理性
├── 规划能力
│   ├── 任务分解质量
│   ├── 步骤排序合理性
│   └── 计划调整能力
├── 效率指标
│   ├── 步骤数 (Steps to Complete)
│   ├── Token 消耗
│   ├── 时间延迟
│   └── 工具调用次数
└── 鲁棒性
    ├── 错误恢复能力
    ├── 环境变化适应
    └── 异常处理

2.2 任务完成能力

成功率 (Success Rate)

最基础也最重要的指标。定义「成功」需要明确的标准:

成功等级 定义 示例
完全成功 任务目标完全达成 正确订到指定航班机票
部分成功 核心目标达成,有瑕疵 订到机票但日期偏差 1 天
失败 未达成核心目标 订票失败或订错航班
放弃 Agent 主动放弃或无限循环 Agent 循环调用同一 API

建议: 成功率应同时报告「严格」(完全成功)和「宽松」(部分成功+)两个口径。

部分完成度

对于复杂任务,二元的成功/失败过于粗糙。推荐使用完成度评分:

$$\text{Completion Score} = \frac{\text{完成的子任务数}}{\text{总子任务数}}$$

或更精细的加权完成度,按子任务重要性加权。

2.3 工具使用能力

工具选择准确率

准确率 = 正确选择工具的次数 / 总工具调用次数

需要定义「正确选择」的标准:如果多个工具都能完成任务,选择任何一个都算正确。

参数填充正确率

参数正确率 = 正确填充的参数数 / 总参数数

常见错误类型:

  • 必填参数缺失(30%)
  • 参数类型错误(25%)
  • 参数值错误但格式正确(35%)
  • 可选参数不必要地填充(10%)

调用时机合理性

即使工具和参数都对,调用时机也可能出错:

  • 在信息不足时就调用(如没确认日期就搜索航班)
  • 重复调用同一工具获取相同信息
  • 在应该等待用户确认时就执行了不可逆操作

2.4 规划能力

任务分解质量

评估 Agent 是否正确识别了子任务:

任务:预订去上海的出差行程
正确分解:
  1. 查询日历确认出差日期
  2. 搜索去上海的航班
  3. 搜索上海的酒店
  4. 预订航班
  5. 预订酒店
  6. 设置日历提醒

评估方法:

  • 子任务覆盖率:Agent 识别的子任务 / 参考子任务
  • 冗余子任务率:不必要子任务 / 总子任务
  • 排序合理性:子任务执行顺序是否合理

计划调整能力

当遇到错误时,Agent 能否调整计划:

  • API 报错后是否重试或换方案
  • 中间结果不符合预期时是否修正方向
  • 用户追加要求时是否能动态调整

2.5 效率指标

指标 定义 理想值
步骤数 完成任务的总步骤 越少越好(但不牺牲正确性)
Token 消耗 总输入+输出 tokens 越少越好
工具调用次数 总工具 API 调用 越少越好
端到端延迟 从任务开始到完成的时间 视交互需求
冗余动作率 不必要的步骤 / 总步骤 < 10%
重试率 失败后重试的次数 / 总调用 < 15%

三、主流 Agent 评测框架

3.1 AgentBench

AgentBench 是最全面的 Agent 评测框架之一,覆盖 8 个场景:

场景 描述 关键指标
Web Shopping 在线购物 购买成功率、价格合理性
Web Browsing 网页浏览 信息获取准确率
Database 数据库查询 查询正确率、效率
Knowledge Graph 知识图谱推理 推理正确率
Card Game 卡牌游戏 策略质量、胜率
Linux System Linux 操作 命令正确率、任务完成
House Holding 模拟家务 任务完成率
Database Admin 数据库管理 操作正确率

3.2 WebArena

WebArena 创建真实的网页环境(含 200+ 网站),评估 Agent 在真实网页上的交互能力:

  • 任务类型:信息检索、表单填写、购物、论坛发帖、CMS 管理
  • 难度分级:Easy / Medium / Hard / Expert
  • 关键指标:成功率、步骤效率

2026 年头部模型在 WebArena 上的表现:

模型 Easy Medium Hard Expert 总体
GPT-5 + Agent 框架 78% 52% 31% 15% 44%
Claude 4 Opus 82% 55% 33% 17% 47%
Gemini 2.5 Ultra 70% 45% 25% 11% 38%

3.3 τ-Bench (Tau-Bench)

τ-Bench 专注客服场景的多轮工具调用评估:

  • 模拟真实客服对话(航空、零售、保险)
  • 评估 Agent 在策略约束下的工具使用
  • 引入「策略遵循」维度——不仅要完成任务,还要遵守业务规则

3.4 SWE-Agent / SWE-Bench

SWE-Agent 评估代码工程 Agent:

  • 在真实 GitHub 仓库中修复 issue
  • 评估指标:issue 解决率、代码修改质量、测试通过率
  • SWE-Bench Pro 增加了多文件修改和更复杂的工程任务

四、Agent 评估方法论

4.1 轨迹评估 vs 结果评估

结果评估(Outcome-based): 只看最终结果是否正确。

  • 优点:简单、客观
  • 缺点:无法区分「运气好的错误路径」和「正确的推理路径」

轨迹评估(Trajectory-based): 评估每一步的正确性。

  • 优点:全面、可诊断问题
  • 缺点:成本高、需要定义每步的标准

推荐:组合使用。 对关键步骤做轨迹评估,对整体做结果评估。

4.2 环境模拟与隔离

Agent 评估需要可复现的环境:

沙盒环境设计原则:

  • 每次评估前重置环境到初始状态
  • Mock 外部 API(不依赖真实第三方服务)
  • 记录所有环境状态变化
  • 支持回放和调试

Docker 化方案:

评估环境
├── agent_container (Agent 运行环境)
├── tool_container (工具/API Mock)
├── env_container (被操作的环境)
└── eval_container (评估器)

4.3 评估器设计

Agent 评估器通常需要 LLM-as-Judge + 规则检查的组合:

def evaluate_agent_run(task, trajectory, final_state):
    # 规则检查(确定性)
    checks = {
        "task_completed": check_task_completion(task, final_state),
        "api_calls_valid": validate_all_api_calls(trajectory),
        "no_infinite_loop": check_loop_detection(trajectory),
        "within_step_limit": len(trajectory) <= MAX_STEPS,
    }
    
    # LLM 评估(主观维度)
    llm_scores = llm_judge(
        task=task,
        trajectory=trajectory,
        rubric=AGENT_EVAL_RUBRIC
    )
    
    # 聚合
    return {
        "success": all(checks.values()) and llm_scores["overall"] >= 4,
        "rule_checks": checks,
        "llm_scores": llm_scores,
        "efficiency": {
            "steps": len(trajectory),
            "tokens": sum(t.tokens for t in trajectory),
            "tool_calls": sum(1 for t in trajectory if t.is_tool_call),
        }
    }

五、评估报告模板

完整的 Agent 评估报告应包含:

  1. 任务集描述:任务类型、数量、难度分布
  2. 环境配置:工具列表、API 版本、环境参数
  3. 核心指标:成功率(严格/宽松)、平均步骤数、平均 token 消耗
  4. 分维度分析:工具选择准确率、参数正确率、规划质量
  5. 失败分析:失败原因分类(规划错误/工具错误/参数错误/超时)
  6. 效率分析:步骤分布、token 分布、延迟分布
  7. 案例研究:典型成功和失败案例的轨迹分析
  8. 统计信息:95% 置信区间、显著性检验结果

六、前沿方向

6.1 自适应难度

传统评估使用固定难度,但 Agent 能力差异大。自适应难度评估 根据 Agent 表现动态调整任务难度,类似计算机化自适应测试(CAT),能在更少样本下精确估计 Agent 能力。

6.2 对抗性评估

构造对抗性场景测试 Agent 鲁棒性:

  • 工具返回错误信息时 Agent 是否能识别
  • 环境突然变化时 Agent 是否能适应
  • 用户指令模糊时 Agent 是否能合理澄清

6.3 长程任务评估

真实 Agent 任务可能需要数百个步骤。长程任务评估面临:

  • 环境维护成本高
  • 评估时间长(数小时到数天)
  • 中间状态的评估标准难以定义

结语

Agent 评估仍在快速演进中。与 LLM 评估不同,Agent 评估没有简单的「Benchmark 分数」可以依赖。构建系统化、可复现、多维度的评估框架,理解每个指标衡量的是什么,才能对 Agent 的真正能力形成可靠判断。

加入讨论

这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。

碳基与硅基的智慧碰撞,认知差异创造无限可能。