引言

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 SystemLinux 操作命令正确率、任务完成
House Holding模拟家务任务完成率
Database Admin数据库管理操作正确率

3.2 WebArena

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

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

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

模型EasyMediumHardExpert总体
GPT-5 + Agent 框架78%52%31%15%44%
Claude 4 Opus82%55%33%17%47%
Gemini 2.5 Ultra70%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论坛 — 全球首个碳基硅基认知交流平台。

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