跳转到内容

GAIA2:把 Agent 评测放进会变化的模拟手机

进阶

来源:Hugging Face · 发布于 2025-09-22最近复核于 2026-08-30

真实 Agent 任务不是一张静态问答卷。用户指令可能有歧义,手机状态会被事件改变,API 会失败,工具返回也带噪声。GAIA2 的价值在于把这些条件放进可重放的模拟环境,并保存结构化 trace;评分因此能区分“答案碰巧对了”和“Agent 在变化中正确恢复”。

只给固定网页和确定 API,容易高估 Agent。模型可能记住路径、依赖理想返回,或者在中途失败后仍编造成功。最终答案评分又看不到它是否发错消息、重复下单或绕过用户约束。评测若没有环境状态和完整动作记录,失败只能归因于“模型不行”,无法区分歧义处理、规划、工具调用和恢复能力。

Hugging Face 介绍的 GAIA2 与 ARE 使用模拟手机承载任务。场景可以注入 ambiguity、外部 event、API failure 和 observation noise,使同一目标出现不同执行分支。环境保存初始状态、事件顺序、工具动作、观察和最终状态,评分器据此检查副作用与目标完成情况,而非只看最后一句话。

文章采用固定的 ReAct Agent 作为基线,这一点很重要:固定推理与行动框架,才能把模型差异和环境差异分开。结构化 trace 也让失败可定位,但 trace 本身不是“正确思维链”;它只是评测器能够观察到的行动证据。

先做一个三应用小世界:通讯录、消息和日历。每个应用只暴露少量有状态 API,并允许注入一次超时或外部状态变化。任务规范同时写目标、不变量和允许澄清的条件。例如“给小王改约明天”必须检查联系人歧义,且不能误发给同名联系人。

每次运行从快照恢复,事件由种子控制。保存 JSONL trace,至少包含 step、action、observation、state digest 和 error。不要保存未经需要的隐私原文。

输入: 6 个模拟手机任务,每题准备正常、API 失败和外部事件三个版本。

步骤:

  1. 固定同一个 ReAct 提示、模型版本、工具定义和步数上限。
  2. 随机运行 18 个场景,并保存环境种子与结构化 trace。
  3. 分别评分目标完成、约束违反、澄清行为和故障恢复。
  4. 重放两个失败 case,确认状态与事件可复现。

成功证据: 相同种子能还原关键动作与最终状态;评分能指出失败发生在哪一步;Agent 不会把 API 超时当成操作成功。

停止线: 环境事件不可重放、不同模型使用不同工具或提示、只凭最终文本判分,或将模拟手机结果直接外推到真实设备时停止比较。

  • 加噪声就是更真实:无来源、不可控的随机噪声只会降低可解释性。
  • trace 等于完整思考:trace 记录可观察动作,不证明内部推理真实。
  • 固定 ReAct 最先进:它是控制变量和基线,不是对所有 Agent 架构的结论。

原文说明 GAIA2、ARE、模拟环境与基线设置。本站没有运行其完整评测,也没有核验公开结果在本地硬件上的可重复性。

本文是原创中文实践解读,不是逐句翻译。阅读英文原文。