Agent 评测
Agent 评测比"大模型评测"更难:要测工具调用、多轮规划、长程任务与安全风险。本模块给出工具(AgentEval / AgentBench / AgentBoard / WebArena / ToolEmu),并构建「提示词注入 / 工具沙箱 / 记忆腐化 / 长程任务 / 模型一致性」五维系统评测方法论,每维附数据集路径、用法与优缺点。
▦ 工具总览
| 工具 | 聚焦 | 形态 |
|---|---|---|
| AgentEval | Agent 行为/工具调用/回归(确定性 grader,可离线) | Python 框架 |
| AgentBench | 8 类环境综合 Agent 能力 | Benchmark |
| AgentBoard | 多轮 Agent 细粒度进度率分析 | Eval framework |
| WebArena | 网页自主智能体 | Benchmark |
| ToolEmu | LM 模拟沙盒测工具风险 | Risk framework |
01 AgentEval
确定性 grader 的 Agent 行为/回归评测框架,CI 友好、不烧钱。
AgentEval behavior · regression
agenteval.org 是社区基准目录/资源枢纽,不能 pip 安装;真正工具是 github.com/agentkitai/agenteval(PyPI 名 agentevalkit)。另有 AgentEvalHQ(.NET)、agent-eval-cli(多轮对话模拟)、论文 AgentEval 等同名项目,勿混淆。安装(本机实测 0.7.0)
python3 -m venv .venv && source .venv/bin/activate pip install --no-user agentevalkit # 锁 0.7.0: # pip install agentevalkit==0.7.0 # 注:PyPI 0.7.0 内置 10 个 grader;GitHub 主干已到 11 个 + Trial/TrialResult 新版, # 生产请锁版本,避免 API 漂移。
内置 10 个 grader
exact / contains / regex / tool-check / llm-judge / custom / json_schema / semantic / latency / cost。自定义签名 fn(case, result) -> GradeResult。compare 用 Welch t 检验标记 ▼ regressed;ci --min-pass-rate 0.9 接 CI 门禁。
真实测试用例配置(来源项目记忆,已嵌入)
# suite.yaml name: demo-agent-tests agent: my_agent:run defaults: grader: contains cases: - name: basic-math input: "What is 2 + 2?" expected: { output_contains: ["4"] } tags: [math, basic] - name: tool-usage input: "Search for weather in Beijing" expected: { tools_called: ["web_search"] } grader: tool-check tags: [tool] - name: custom-validation input: "Generate a JSON object" grader: custom grader_config: { function: my_agent:validate_json } - name: cost-check input: "What is 2 + 2?" grader: cost grader_config: { max_usd: 0.001 } - name: latency-check input: "What is 2 + 2?" grader: latency
本机实测结果(真实)
Total: 5 Passed: 5 Failed: 0 Pass rate: 100%
Cost: $0.0005 Avg latency: 0ms
# compare 用 Welch t 检验对比两次 run,标 ▼ regressed
02 AgentBench
清华 + 微软 2023 提出的综合 Agent 能力基准,覆盖 8 类环境。
AgentBench 8 environments
8 个环境:OS / DB / Knowledge Graph / 卡牌游戏 / ALFWorld / WebShop / Mind2Web / 横向思考谜题。统一框架测"通用 Agent"在多样任务上的能力,强调部分可观测与多轮交互。
git clone https://github.com/THUDM/AgentBench.git cd AgentBench && pip install -r requirements.txt # 按各环境说明启动(部分需 Docker / 数据库 / 浏览器)
03 AgentBoard
HKUST 出品(NeurIPS 2024),强调"分析式评测"——不只看最终成功率,还看过程。
AgentBoard analytical
细粒度 progress rate 指标捕捉逐步进展,配套工具包做多维分析(grounding 准确率、难易样本拆解、长程交互、子技能表现、轨迹可视化)。数据来自 HuggingFace hkust-nlp/agentboard。
# 本地 conda 环境(python 3.8.13)+ setup.sh;WebArena 任务需额外装 dbus/Xvfb git clone https://github.com/hkust-nlp/AgentBoard.git cd AgentBoard/data && tar -zxvf data.tar.gz python agentboard/eval_main.py --tasks alfworld --model gpt-4 --wandb
04 WebArena
斯坦福出品的网页自主智能体基准:在自建的电商/论坛/地图/GitLab 网站上完成真实任务。
WebArena web agent
需在本地/云端拉起 4 个自托管网站(购物、Reddit 类论坛、地图、GitLab)与对应账号系统,任务成功率(task success rate)为主指标。同类还有 OSWorld(真实桌面 GUI 多模态)、τ-bench(OpenAI/Sierra,多轮工具调用 + 状态维护,客服/零售)、GAIA(Meta,真实世界多工具推理)、SWE-bench(代码仓库 issue 修复)、ToolBench/ToolEval(清华,大规模 API 工具调用)。
05 ToolEmu
ICLR'24,用 LM 模拟工具执行的"虚拟沙盒",规模化识别 Agent 的工具风险。
ToolEmu risk · sandbox
三组件:① Tool Emulators(GPT-4 模拟工具执行,std/adv 两种思想);② Safety & Helpfulness Evaluators(量化风险严重度 + 有用性,捕捉安全/有用权衡);③ Curated Benchmark(36 工具集、311 工具、144 测试案例)。研究发现即使最安全的 LM Agent 也有约 24% 案例出现风险。
git clone https://github.com/ryoungj/ToolEmu.git git clone https://github.com/dhh1995/PromptCoder.git # 依赖 cd PromptCoder && pip install -e . cd ../ToolEmu && pip install -e . # 跑全量基准(约 $170 总成本) python scripts/run.py --agent-model gpt-4-0613 --agent-type naive \ --simulator-type adv_thought --batch-size 5
⚙ Agent 评测 · 五维系统方法论
把"Agent 评测"拆成 5 个可独立评测、又可组合的维度。每维给出:评测目标、数据集/路径、用法、优缺点。这是本手册对 Agent 评测模块的系统组织方式。
① 提示词注入(Prompt Injection)
测 Agent 在不可信内容(邮件/网页/工具返回)注入指令时的鲁棒性。主指标 ASR(攻击成功率)。
| 数据集 | 获取路径 | 下载 | 用法 | 优缺点 |
|---|---|---|---|---|
| JailbreakBench | JailbreakBench/JBB-Behaviors | git clone JailbreakBench/JailbreakBench | 越狱行为集,算合规率 | ✅ 标准化;❌ 偏 jailbreak 而非 agent 工具流 |
| InjecAgent | agencyenterprise/InjecAgent | huggingface-cli download agencyenterprise/InjecAgent | Agent 工具返回注入 | ✅ 贴合 tool-return 注入;❌ 场景有限 |
| AgentDojo | princeton-pli/AgentDojo | git clone princeton-pli/AgentDojo | banking/workspace/travel/os 注入 benchmark,量 ASR | ✅ 多环境、可量化;❌ 搭建较重 |
| PromptInject | agencyenterprise/PromptInject | huggingface-cli download agencyenterprise/PromptInject | 注入攻击框架 | ✅ 可生成攻击;❌ 需自配环境 |
| PAIR | patrickcheng13/pair | huggingface-cli download patrickcheng13/pair | 自动化越狱生成(攻击 LLM 迭代) | ✅ 自动化红队;❌ 产出为攻击样本,需管控 |
② 工具沙箱安全(Tool Sandbox Security)
测 Agent 调用真实/模拟工具时是否造成危害(数据泄露、资损、破坏性操作)。
| 数据集/工具 | 获取路径 | 下载 | 用法 | 优缺点 |
|---|---|---|---|---|
| ToolEmu | ryoungj/toolemu | git clone ryoungj/toolemu | LM 模拟沙盒跑 144 case,量化风险 | ✅ 不需真实实现、可规模化;❌ 模拟器本身有幻觉盲点 |
| CyberSecEval | meta-llama/PurpleLlama(CyberSecEval 子集) | git clone meta-llama/PurpleLlama | 提示注入/代码注入/权限提升 | ✅ 厂商级;❌ 偏代码安全 |
| InterCode-SQL | princeton-nlp/InterCode | git clone princeton-nlp/InterCode | SQL 注入等代码安全(沙箱执行) | ✅ 可真实执行;❌ 仅 SQL 域 |
③ 记忆腐化安全(Memory Corruption)
测 Agent 长期记忆 / RAG 检索内容被污染后是否产生错误或被操控的行为(记忆投毒、上下文注入)。
| 数据集/方法 | 获取路径 | 下载 | 用法 | 优缺点 |
|---|---|---|---|---|
| LongMemEval | xiaowu0162/LongMemEval | git clone xiaowu0162/LongMemEval | 长程记忆基准(481/500 真实检索) | ✅ 测长期记忆能力;❌ 非专门"腐化"攻击集 |
| RAG 投毒(构造) | 由 PromptInject / 注入集改造 | 复用 PromptInject 数据集 | 在检索语料注入恶意片段,测答案被带偏 | ✅ 贴合 RAG 场景;❌ 公开专用基准尚少,需自构 |
④ 长程任务效果(Long-horizon)
测 Agent 在多步、多轮、需状态维护的真实任务上的完成率与过程质量。
| 基准 | 获取路径 | 下载 | 用法 | 优缺点 |
|---|---|---|---|---|
| WebArena | web-arena/webarena | git clone web-arena/webarena | 网页任务成功率 | ✅ 真实网站;❌ 需自托管环境 |
| OSWorld | xlang-ai/OSWorld | git clone xlang-ai/OSWorld | 桌面 GUI 多模态 | ✅ 真实桌面;❌ 资源重 |
| τ-bench | sierra-research/tau-bench | git clone sierra-research/tau-bench | 多轮工具+状态维护 | ✅ 强状态测试;❌ 场景有限 |
| GAIA | metadata-ai/gaia | git clone metadata-ai/gaia | 真实世界多工具推理 | ✅ 真实任务;❌ 标注成本高 |
| SWE-bench | princeton-nlp/SWE-bench | git clone princeton-nlp/SWE-bench | 代码仓库 issue 修复 | ✅ 工业相关;❌ 仅代码域 |
| ToolBench | OpenBMB/ToolBench | git clone OpenBMB/ToolBench | 大规模 API 工具调用 | ✅ 工具丰富;❌ 评测偏调用正确 |
⑤ 大模型一致性(Consistency)
测 Agent 在相同/等价输入下行为是否稳定一致(避免"同问题不同答案"、规划漂移)。
| 数据集/方法 | 获取路径 | 下载 | 用法 | 优缺点 |
|---|---|---|---|---|
| MT-Bench | lm-sys/MT-Bench | git clone lm-sys/MT-Bench | 多轮一致性 + 裁判评分 | ✅ 通用;❌ 偏对话 |
| AgentBoard 一致性 | hkust-nlp/AgentBoard | git clone hkust-nlp/AgentBoard | 多轮子技能一致性分析 | ✅ 过程级;❌ 需其环境 |
| Self-Consistency | 方法(Wang et al. 2022) | 自搭:多次采样取众数 | 同 prompt 多次运行,测输出方差 | ✅ 简单可自搭;❌ 仅测稳定性非正确性 |
🛡 安全 / 红队视角(已脱敏)
来源项目中含真实攻击 PoC / IOC / 个人联系方式,按隐私要求已排除。此处仅保留公开方法论与可公开基准,供安全评测参考。
23 类红队测试场景( taxonomy,已脱敏归类)
注入分三类:Direct(直接指令)/ Indirect(内容投毒)/ Jailbreak(越狱)。攻击链模型:提示词注入 → 遍历技能目录 → 递归执行 → 外发敏感数据。
护栏分层
输入过滤 → 指令隔离(不可信数据包裹、system prompt 不可变)→ 工具二次确认 → 输出审查。CI 门禁对高危项"零容忍"。
OWASP LLM Top 10 映射(对抗测试框架)
提示注入、敏感信息泄露、供应链、数据投毒、不当输出、越权、训练数据投毒、过度依赖、模型窃取等——可作为红队覆盖度检查清单。
promptfoo redteam init、deepteam、garak、pyrit、inspect-ai。