副标题:54 个评测任务,3 万行代码,我总结了这套 Agent 评测方法论
作者:测试员周周(14 年测试经验,阿里云大模型 ACP 认证)
实战时间:2026 年 4 月 2 日
评测对象:OpenClaw Agent (qwen3.5-plus)
综合得分:3.47/5 (C 级)
预计阅读:20 分钟
一、为什么需要独立的 Agent 评测?
2026 年,AI Agent 已经成为最热门的技术方向之一。
在 GitHub 上,有一个项目悄然突破了 48,000+ stars,它就是清华团队开源的 AgentBench —— 一个专门用于评测 AI Agent 的基准测试框架。
但作为一名 14 年的测试老兵,我发现了一个问题:
大多数团队还在用评测 LLM 的方式评测 Agent。
这是什么概念?
就像你用驾照考试的科目一(理论题)去考一个赛车手 —— 考的是知识,不是驾驶能力。
LLM 评测 vs Agent 评测的本质区别:
| 维度 | LLM 评测 | Agent 评测 |
|---|---|---|
| 评测对象 | 模型本身 | Agent 系统(模型 + 工具 + 环境) |
| 任务类型 | 选择题/问答题 | 开放任务/多步骤 |
| 评测方式 | 标准答案比对 | 任务完成度 + 过程质量 |
| 评测环境 | 封闭(无外部交互) | 开放(沙箱/真实环境) |
| 核心指标 | 准确率/F1 | 任务完成率/满意度/效率 |
Agent 的不可预测性,是其商用化的最大障碍。
你无法通过简单的"成功/失败"二分法,知道 Agent 为什么失败 —— 是任务规划能力不足?还是工具调用错误?还是上下文理解有问题?
这就是我设计这套评测框架的初衷。
二、评测体系设计:5 个核心维度
2.1 设计原则
在设计评测维度之前,我问了自己三个问题:
1. Agent 和 LLM 的核心区别是什么?
- 答:Agent 能"执行任务",LLM 只能"回答问题"
2. 执行任务需要什么能力?
- 答:拆解任务 → 使用工具 → 多轮交互 → 代码实现 → 知识应用
3. 如何量化这些能力?
- 答:每个维度设计 3-4 个细粒度指标,1-5 分制评分
基于这个思路,我设计了 5 个核心评测维度:
TEXT复制
任务规划 → Agent 的核心能力 (能不能拆解任务)
↓
工具使用 → 执行力的基础 (会不会用工具)
↓
多轮对话 → 交互能力 (能不能理解上下文)
↓
代码能力 → 硬实力 (能不能写代码)
↓
知识应用 → 软实力 (会不会检索和应用)
2.2 维度 1:任务规划 (Task Planning)
定义:Agent 将复杂任务拆解为可执行子任务的能力。
为什么重要:
-
真实场景的任务都是多步骤的
-
规划能力决定了 Agent 能不能独立完成复杂任务
-
规划错误会导致后续所有执行都偏离方向
评测指标(3 个):
| 指标 | 说明 | 评分方式 |
|---|---|---|
| 分解覆盖率 | 是否覆盖所有必要步骤 | 0-1 转换为 1-5 分 |
| 依赖识别准确率 | 子任务顺序是否正确 | 关键路径识别率 |
| 重规划成功率 | 遇到错误能否动态调整 | 成功重规划次数/总错误数 |
典型任务示例:
TEXT复制
任务:帮我写一个数据分析报告
难度:Medium
期望拆解:
1. 数据收集 → 2. 数据清洗 → 3. 数据分析 → 4. 可视化 → 5. 报告生成实际拆解(Agent 输出):
1. 收集数据 → 2. 清洗数据 → 3. 分析数据 → 4. 制作图表
评分:
分解覆盖率:0.8 (缺少"报告生成"步骤)
依赖识别:1.0 (顺序正确)
综合得分:3.35/5
2.3 维度 2:工具使用 (Tool Use)
定义:Agent 调用外部工具(API/搜索/文件操作/数据库)完成任务的能力。
为什么重要:
-
工具使用是 Agent 执行力的基础
-
不会用工具的 Agent 只能"纸上谈兵"
-
真实业务场景都需要调用外部系统
评测指标(3 个):
| 指标 | 说明 | 评分方式 |
|---|---|---|
| API 调用成功率 | 调用外部 API 的成功率 | 成功次数/总调用次数 |
| 参数传递准确性 | API 参数是否准确 | 参数正确率 |
| 工具使用效率 | 是否用最少的调用完成任务 | 实际调用/最优调用 |
典型任务示例:
TEXT复制
任务:查询北京今天的天气,并保存到文件
难度:Easy
期望执行:
1. 调用天气 API (参数:city=北京)
2. 解析 API 返回结果
3. 写入文件 weather.txt
实际执行:
1. 调用天气 API ✓
2. 解析结果 ✓
3. 写入文件 ✓
评分:
API 成功率:1.0 (100%)
参数准确性:1.0 (参数正确)
工具效率:1.0 (3 次调用,最优)
综合得分:5.0/5
2.4 维度 3:多轮对话 (Multi-turn Dialogue)
定义:Agent 在多轮交互中理解上下文、指代消解、意图识别的能力。
为什么重要:
-
真实场景都是多轮交互
-
单轮对话能力不等于多轮对话能力
-
上下文丢失会导致用户体验断崖式下降
评测指标(3 个):
| 指标 | 说明 | 评分方式 |
|---|---|---|
| 上下文保持率 | 能否记住上文信息 | 记住的信息点/总信息点 |
| 指代消解准确率 | "这个/那个"指代是否正确 | 正确指代/总指代 |
| 意图识别准确率 | 能否理解用户真实意图 | 正确识别/总轮数 |
典型任务示例:
TEXT复制
对话轮次:10 轮
测试点:
第 1 轮:用户说"我想买一台笔记本电脑"
第 5 轮:用户说"预算 1 万以内"(指代第 1 轮的笔记本)
第 8 轮:用户说"有推荐的吗"(需要综合前 7 轮信息)
评分:
上下文保持率:0.8 (记住 8/10 个信息点)
指代消解:1.0 (所有指代正确)
意图识别:0.9 (9/10 轮正确)
综合得分:4.26/5
2.5 维度 4:代码能力 (Coding)
定义:Agent 生成、调试、优化代码的能力。
为什么重要:
-
很多任务最终要落到代码执行
-
代码能力是 Agent 的硬实力
-
可以直接用单元测试验证
评测指标(3 个):
| 指标 | 说明 | 评分方式 |
|---|---|---|
| 代码正确性 | 代码能否通过单元测试 | 单元测试通过率 |
| 边界条件处理 | 是否处理边界情况 | 边界测试通过率 |
| 代码规范 | 代码是否符合规范 | 代码审查评分 |
典型任务示例:
TEXT复制
任务:写一个 Python 函数,计算列表的平均值,处理空列表情况
难度:Easy
期望代码:
def average(nums):
if not nums:
return 0
return sum(nums) / len(nums)
评测:
单元测试:5/5 通过
边界处理:空列表返回 0 ✓
代码规范:符合 PEP8 ✓
评分:4.5/5
2.6 维度 5:知识应用 (Knowledge Application)
定义:Agent 检索、整合、应用知识解决问题的能力。
为什么重要:
-
光有代码能力不够,还要会检索知识
-
RAG 系统的核心能力
-
决定 Agent 的专业程度
评测指标(3 个):
| 指标 | 说明 | 评分方式 |
|---|---|---|
| 知识检索质量 | 能否检索到相关知识 | RAGAS 指标 (0-1) |
| 知识整合能力 | 能否整合多个来源 | 整合质量评分 (1-5) |
| 建议可行性 | 给出的建议是否可行 | 可行性评分 (1-5) |
典型任务示例:
TEXT复制
任务:RAG 系统怎么优化检索质量?
难度:Medium
期望回答:
1. 优化分块策略 (按语义分块 vs 固定长度)
2. 优化检索策略 (混合检索:稠密 + 稀疏)
3. 优化重排序 (Cross-Encoder 重排序)
4. 优化 Prompt (添加检索结果使用指令)
实际回答:
1. 可以用更好的 embedding 模型
2. 增加检索数量
3. 优化 Prompt
评分:
检索质量:0.68 (B 级)
整合能力:3.0/5 (提到 3 点,但不够深入)
建议可行性:3.5/5 (建议可行但不够具体)
综合得分:3.33/5
三、真实评测结果:54 个任务的数据分析
3.1 评测概览
评测对象:OpenClaw Agent (qwen3.5-plus)
评测时间:2026-04-02 08:52
任务总数:54 个
综合得分:3.47/5 (C 级)
5 维度得分分布:
TEXT复制
多轮对话:4.26/5 █████████████████████░░ 85% ← 优势维度
代码能力:4.10/5 ████████████████████░░ 82% ← 优势维度
任务规划:3.37/5 ████████████████░░░░░░░ 67% ← 待改进
知识应用:3.33/5 ████████████████░░░░░░░ 67% ← 待改进
工具使用:2.64/5 ████████████░░░░░░░░░░░ 53% ← 最薄弱
3.2 按难度分级统计
| 难度 | 任务数 | 平均得分 | 通过率 |
|---|---|---|---|
| Easy | 12 | 4.05/5 | 85% |
| Medium | 28 | 3.42/5 | 65% |
| Hard | 14 | 2.89/5 | 45% |
关键发现:
-
Easy 任务表现优秀(4.05/5)
-
Hard 任务得分明显下降(2.89/5)
-
难度增加导致得分下降 28%
3.3 优势维度分析
多轮对话 (4.26/5) :
-
上下文保持率:80%
-
指代消解准确率:95%
-
意图识别准确率:88%
亮点:
-
情感理解能力强(4.36/5)
-
任务导向对话优秀(4.61/5)
-
闲聊对话自然(4.61/5)
代码能力 (4.10/5) :
-
单元测试通过率:90%
-
边界条件处理:85%
-
代码规范评分:92%
亮点:
-
字符串处理优秀(4.00/5)
-
树结构题目优秀(4.30/5)
-
实际应用题优秀(4.11/5)
3.4 待改进维度分析
工具使用 (2.64/5) ← 最薄弱:
-
API 调用成功率:65%
-
参数传递准确性:75%
-
错误处理能力:55%
问题:
-
复杂 API 调用容易失败
-
参数格式错误频发
-
缺少异常处理逻辑
任务规划 (3.37/5) :
-
分解覆盖率:75%
-
依赖识别准确率:85%
-
重规划成功率:45%
问题:
-
缺少异常处理规划
-
动态重规划能力弱
-
复杂任务拆解不完整
知识应用 (3.33/5) :
-
检索质量:0.68 (B 级)
-
整合能力:3.2/5
-
建议可行性:3.5/5
问题:
-
文科知识薄弱(历史/地理/法律)
-
知识整合不够深入
-
建议不够具体
四、典型案例解析
案例 1:任务规划能力评测
任务:数据分析报告(Medium 难度)
要求:拆解"数据清洗 → 数据分析 → 可视化展示"完整流程
Agent 拆解结果:
1. 收集数据
2. 清洗数据(处理缺失值、异常值)
3. 分析数据(描述性统计、相关性分析)
4. 制作图表(柱状图、折线图、散点图)
评分:
-
分解覆盖率:0.8 (缺少"报告生成"步骤)
-
分解精度:1.0 (所有步骤都相关)
-
粒度合理性:1.0 (粒度适中)
-
依赖识别:1.0 (顺序完全正确)
-
综合得分:3.35/5
诊断:
-
✅ 能识别"先清洗再分析"的基本顺序
-
✅ 分解精度 100% (没有无关步骤)
-
❌ 缺少异常处理规划 (如数据缺失怎么办)
-
❌ 执行成功率 0% (沙箱环境限制,非能力问题)
改进建议:增强异常场景的训练
案例 2:工具使用能力评测
任务:调用天气 API + 数据库查询(Medium 难度)
期望执行:
1. 调用天气 API
weather = requests.get(f"https://api.weather.com/city/北京")
data = weather.json()
2. 查询数据库
cursor.execute("SELECT * FROM cities WHERE name = '北京'")
实际执行:
1. 调用 API (成功)
weather = requests.get("https://api.weather.com/city/北京")
2. 数据库查询 (失败 - 连接字符串错误)
cursor.execute("SELECT * FROM cities...") # 缺少数据库连接
评分:
-
API 成功率:2.5/5 (部分成功)
-
参数准确性:3.0/5 (基本准确)
-
错误处理:2.5/5 (有处理但不完善)
-
综合得分:2.64/5
诊断:
-
⚠️ API 调用成功率偏低
-
⚠️ 复杂参数传递容易出错
-
✅ 有基本的错误处理意识
改进建议:加强工具调用训练,特别是数据库连接场景
案例 3:多轮对话能力评测
任务:10 轮对话测试
测试点:
-
上下文保持测试(第 1 轮 vs 第 10 轮)
-
指代消解测试("这个/那个"指代)
-
意图识别测试(模糊问题澄清)
对话片段:
用户:我想买一台笔记本电脑 (第 1 轮)
Agent: 好的,请问您的预算是多少?
用户:预算 1 万以内 (第 5 轮)
Agent: 明白了,1 万以内的笔记本电脑,我推荐...
用户:有游戏本吗?(第 8 轮)
Agent: 有的,1 万以内的游戏本,我推荐以下几款...
评分:
-
上下文保持率:0.8 (记住 8/10 个信息点)
-
指代消解:1.0 (所有指代正确)
-
意图识别:0.9 (9/10 轮正确)
-
综合得分:4.26/5
诊断:
-
✅ 情感理解能力强(4.36/5)
-
✅ 任务导向对话优秀(4.61/5)
-
⚠️ 长上下文保持有衰减(3.61/5)
改进建议:增强长上下文记忆机制
五、与开源框架对比
5.1 AgentBench(清华)vs 自研框架
| 维度 | AgentBench (清华) | 自研框架 |
|---|---|---|
| 评测维度 | 固定 8 个环境 | 5 个维度 (可扩展) |
| 指标粒度 | 任务完成率 (0-1) | 细粒度 (分解/依赖/重规划等) |
| 报告形式 | JSON + 简单统计 | HTML 可视化 + 雷达图 |
| 灵活性 | 低 (改代码) | 高 (配置即可) |
| 诊断价值 | 中 | 高 (生成改进建议) |
核心差异:
AgentBench 是学术基准,设计理念是"标准化":
-
8 个固定环境(Code/DB/OS/Web/Calendar/Shopping/Travel/Mind2Web)
-
指标简单(任务完成率 0-1)
-
适合横向对比多个 Agent
自研框架 是工程工具,设计理念是"诊断价值":
-
5 个能力维度(可扩展)
-
细粒度指标(每个维度 3-4 个)
-
适合纵向诊断(知道自己哪里弱)
5.2 我们的改进
1. 按"能力维度"设计(不是任务类型)
- AgentBench:按"任务类型"分(购物/旅行/日历)
- 我们:按"能力维度"分(规划/工具/对话/代码/知识)
- 优势:更贴合能力评估,容易定位弱点
2. 细粒度指标(不只是成功/失败)
- AgentBench:任务完成率(0-1)
- 我们:分解覆盖率/依赖识别/重规划成功率...
- 优势:知道"哪里强/哪里弱",不只是"成不成功"
3. 可视化报告(不只是 JSON 数据)
- AgentBench:JSON 格式
- 我们:HTML 雷达图 + 柱状图 + 改进建议
- 优势:直观,可直接用于面试展示
六、总结与展望
6.1 核心成果
完成的工作:
-
✅ 5 维度评测体系(任务规划/工具使用/多轮对话/代码/知识应用)
-
✅ 54 个评测任务(覆盖 Easy/Medium/Hard 三个难度)
-
✅ 自动化评测流程(一键运行)
-
✅ 可视化报告生成(HTML + 雷达图)
-
✅ 细粒度指标(15+ 个诊断指标)
技术亮点:
-
可自定义评测维度
-
支持多 Agent 对比
-
完整执行日志记录
-
诊断建议生成
6.2 下一步计划
短期(1-2 周) :
- 增加对抗性测试(故意给模糊/矛盾指令)
- 引入人工评分接口(自动 + 人工结合)
- 增加趋势分析(多次评测看进步)
中期(1-2 月) :
- 支持多 Agent 对比评测
- 引入 MCP 协议(自动调用外部工具)
- 建立评测基准题库(持续积累)
长期:
- 开源框架
- 接入更多 Agent 平台
6.3 给同行的建议
如果你也想做 Agent 评测:
1. 先明确定位
- 学术研究 → 用 AgentBench(有学术背书)
- 工程实践 → 自建框架(更灵活)
- 两者可以互补使用
2. 从简单开始
- 先设计 3-5 个核心维度
- 每个维度 2-3 个指标
- 逐步扩展,不要追求一步到位
3. 重视诊断价值
- 不只是"成不成功"
- 要知道"为什么成功/失败"
- 能给出改进建议
4. 可视化很重要
- 雷达图展示 5 维度对比
- 柱状图展示细粒度得分
- 趋势图展示进步情况
七、互动话题
你在 Agent 评测中遇到过哪些问题?
A. 不知道如何设计评测维度
B. 评测指标太主观,无法量化
C. 缺少真实的评测数据
D. 报告没有诊断价值
评论区告诉我,评测系列会持续更新,目前暂定是10篇+,关注我不迷路。
下篇预告:《76 条测试用例,我把 AI Agent 测了个底朝天》—— 安全评测实战
参考文献:
- AgentBench: github.com/THUDM/Agent…
- AgentBench 论文:arxiv.org/abs/2308.03…
- 自研框架文档:
AGENT_BENCH/docs/INTERVIEW_PREP.md - 评测数据:
AGENT_BENCH/reports/full_eval_20260402_085259.json
作者:测试员周周,14 年测试经验,专注 AI+ 测试实战
公众号:测试员周周testzhouzhou