AWorld
Agent 系统 · arXiv 2025 · 2508.09889v4

AWorld:把 Agent 当船来操控,先辨识失败模式,再前馈纠偏

工具让单 Agent 更准,也让三轮运行忽高忽低;naive MAS 只在错误发生后纠正,AWorld 先用离线系统辨识给 Execution Agent 做一份“性能指纹”,让 Guard Agent 在错误发生前预防。代价是额外的模型调用,而且验证只覆盖 GAIA 的 L1/L2。

Zhitian Xie 等 · Ant Group / Inclusion AI 原文 ↗ 代码 ↗
TL;DR · 30 秒抓住核心

论文把 Agent 设计放进控制论框架:Execution Agent 是被控对象(plant),Guard Agent 是控制器,工具输出与幻觉是 disturbance。naive MAS 做的是反馈控制,PA-MAS 在反馈之外加了一路前馈。

从 LLM 到 SAS 再到 MAS、PA-MAS,Pass@1 均值 31.50 → 61.47 → 66.97 → 70.95。加工具把标准差从 0.00863 推到 0.03265(相对增加 279.07%),通用 Guard 只压回 0.02701(相对降低 17.18%),带性能指纹的 Guard 压到 0.01147(相对降低 57.41%)。

关键不是“多一个 Agent”,而是 Guard 的 prompt 里有没有 Execution Agent 的离线失败画像。没有画像时,Guard 只能看到已经发生的错误;有画像时,它按已知的失败模式提前拦截。

边界也很清楚:109 个 GAIA L1/L2 题,L3(需要浏览器)被排除;只测了 Gemini 2.5 Pro;论文没有报告 Guard 调用带来的 token、延迟或费用。

70.95%
PA-MAS 的 Pass@1 均值
0.01147
PA-MAS 的 Pass@1 标准差,接近无工具基线的波动
84.40%
PA-MAS 的 Pass@3
01

加工具把准确率拉上去,也把方差拉大

这一节建立问题:为什么“多工具 Agent 不稳定”不是调 prompt 能顺手解决的小毛病。

Base 模型只靠参数知识,Pass@1 均值 31.50。SAS 把 MCP 工具接进来,均值到 61.47,但三轮成绩在 56.88 到 64.22 之间,极差 7.34 个百分点;标准差从 0.00863 升到 0.03265,相对增加 279.07%(原文值;按 Table 1 复算 278.33%)。工具输出越多,上下文越长,错误工具输出和幻觉越容易把推理链带偏。

论文把这个现象写成控制问题:工具带来的噪声是 disturbance,Execution Agent 的推理轨迹是被控输出;如果没有控制器,系统只能“开环”地一路走到底。

Table 1 的另一种读法 · 三轮 Pass@1 的波动范围。范围由每一轮的最小值与最大值相减得到,均值和标准差直接取自 Table 1。
系统三轮 Pass@1极差(百分点)Pass@1 均值Pass@1 标准差
LLM30.28 – 32.111.8331.50%0.00863
SAS56.88 – 64.227.3461.47%0.03265
MAS64.22 – 70.646.4266.97%0.02701
PA-MAS69.72 – 72.482.7670.95%0.01147
02

三代架构:开环、反馈、前馈 + 反馈

读懂这张“控制升级”阶梯,后面的数字才有位置。

LLM

开环,只靠参数知识

没有工具,也没有控制器。Pass@1 均值 31.50,标准差 0.00863。它最“稳”,但不是因为系统好,而是因为没有随机工具调用。

SAS

有工具,但没有控制器

Gemini 2.5 Pro 加系统提示与 MCP 工具,自行决定何时调用。均值到 61.47,标准差升到 0.03265。能力上去了,稳定性掉下来。

Naive MAS

Guard 作为工具,事后纠错

把 Guard Agent 做成一个额外工具,Execution Agent 遇到逻辑僵局时调用。均值 66.97,标准差 0.02701。它只比 SAS 好一点,因为 Guard 是“通用审查者”。

为什么 naive MAS 还不够。Guard Agent 只在 Execution Agent 遇到逻辑僵局时被调用,看到的是当前轨迹;它不知道这个 Execution Agent 在哪些题型上习惯犯什么错。论文的比喻是:反馈控制只能在误差已经出现后压低它,不能提前抵消。

PA-MAS 的改动只有一处。把离线阶段生成的“性能指纹”注入 Guard 的 prompt。Guard 从通用审查者变成“了解这个队友的审查者”;它同时看当前轨迹和已知失败模式,于是能给出前馈式的、针对性的批评。

03

把 Agent 映射成被控对象,再用复合控制律纠偏

这一节只回答一个问题:Guard Agent 的“前馈”到底前馈了什么。

论文先做变量映射(§2.2):Plant 是 Execution Agent,Controlled Variable 是它的输出 y_E,Setpoint 是正确推理路径 r,Error 是 e = r − y_E,Disturbance 是幻觉、逻辑谬误与工具噪声,Controller 是 Guard Agent,Control Signal 是 Guard 的批评 y_G。

naive MAS:ut = fθ(𝒯E,t+1)
PA-MAS:ut′ = fθ(𝒯E,t+1 ⊕ 𝒫E)
𝒯 是 Execution Agent 已经走出的轨迹;𝒫E 是离线系统辨识得到的性能指纹。轨迹提供反馈项,指纹提供前馈项。

naive MAS 的控制律里只有轨迹,所以 Guard 是反应式的:错误必须先发生,才能被看见。PA-MAS 把指纹 𝒫E 也放进 Guard 的上下文,Guard 可以按已知的失败模式预判“这个 Agent 接下来可能会在哪里错”,在错误发生前给出提醒。

论文用线性控制理论解释为什么前馈可能更稳(§2.3.4)。纯反馈系统的输出是:

Y(s) = P·Cfb/(1 + P·Cfb) · R(s) + 1/(1 + P·Cfb) · D(s)
disturbance 项只能靠增大控制器增益压低,不能清零。

加入前馈 Cff 后,disturbance 项变成 (1 + P·Cff)/(1 + P·Cfb)。理想情况下 Cff = −1/P 可以让分子为零,从而在 disturbance 影响输出之前把它抵消。论文同时说明,𝒫E 不是字面上的 −1/P,而是 Guard 从失败画像里学到的“反向纠正”语义。

这个推导的边界。论文在 §2.3.4 明确声称该推导 “prove[s]” 复合控制在理论上更优,并把指纹描述为 empirically-derived model of the plant。推断 页面层面的保留是:传递函数本身是线性控制理论;LLM 是非线性系统,指纹也只是经验画像,不是精确的 plant model。因此这个形式推导不能直接当作非线性 LLM 系统的性能保证(依据:§2.3.4 的推导假设线性系统,且把指纹描述为经验模型)。

04

不训练参数,离线做一次“系统辨识”

这一节说明 𝒫E 是怎么来的,以及它和 RL 的区别。

步骤 1

离线跑基准

让 Execution Agent 在 GAIA validation 上跑题,收集日志;论文说分析的是“在某些任务类型下反复出现的失败模式”(§2.3.3)。

步骤 2

合成指纹

把日志整理成结构化、人类可读的 performance fingerprint。论文举的例子是“容易在代码上幻觉”这类特征;指纹是文本,不是一组权重。

步骤 3

在线注入

部署时把指纹放进 Guard 的 prompt。Guard 同时看当前轨迹和已知 failure mode,给出针对性的批评。

这不是 RL。RL 改的是模型参数,策略留在权重里;这里不改参数,改的是 Guard 的上下文,论文叫 Context-Level Reinforcement。好处是可读、可审计、可直接编辑:发现新的失败模式,改指纹文本即可,不用重训。论文把这种区别比作“练肌肉记忆”和“给飞行员一张针对已知习惯的检查清单”。

代价。Guard Agent 是额外的一次模型调用;离线 profiling 也要跑一轮基准。论文没有给出 token、延迟或费用的数字。对生产系统来说,这两项开销需要单独测,不能只看准确率。

05

三种接法:Guard 不接、只接反馈、反馈加前馈

切换下面的按钮,看同一对 Agent 在不同控制架构里的连线变化。

当前架构
Naive MAS 把 Guard Agent 作为工具。Execution Agent 遇到逻辑僵局时调用它,Guard 只看当前轨迹做反应式批评;标准差从 0.03265 降到 0.02701(相对降低 17.18%)。
任务 x_task Execution Agent (P) 推理链 + 工具调用 被控对象 输出 y_E 答案 y_E MCP 工具 搜索 / Excel / 代码 / 下载 噪声来源 d 调用 / 输出 Guard Agent (C) 审查当前轨迹 输出批评 u 遇到僵局时调用 批评 / 纠偏 性能指纹 P_E 离线系统辨识 失败模式清单 注入 prompt 示意图按 §2.3 重绘;实线为在线调用,虚线为纠偏 / 注入。不是 Figure 4 的逐像素复刻。
三种控制架构的接线差异。SAS 没有 Guard;naive MAS 有反馈回路;PA-MAS 在反馈之外,把离线指纹注入 Guard。
06

准确率逐级上升,方差先升后降,首答差距收窄

这一节把 Table 1 的原始数字、相对变化和反直觉发现放在一起。

实验设置:GAIA test set 的 109 个问题,56 个 Level 1、53 个 Level 2;Level 3 因为通常需要浏览器而被排除(§3)。每个版本独立跑 3 次,模型固定为 Gemini 2.5 Pro,temperature 0.1;如果答案格式无效,会重复直到拿到有效格式。每个版本报告 109 题上的 pass@1,以及跨三次运行的 pass@3。

Table 1 完整转录 · LLM / SAS / MAS / Profile-Aware MAS 的三轮 Pass@1、Pass@3、均值、标准差与首答差距。
指标LLMSASMASPA-MAS
Round 1 P@132.11%56.88%70.64%72.48%
Round 2 P@130.28%63.30%64.22%70.64%
Round 3 P@132.11%64.22%66.06%69.72%
Pass@338.53%80.73%82.57%84.40%
Pass@1_avg31.50%61.47%66.97%70.95%
Pass@1_std0.008630.032650.027010.01147
P@3 − P@1_avg0.07030.19260.155970.13453

Pass@1_std 与 P@3 − P@1_avg 两行原文以小数记;0.03265 即 3.265 个百分点,0.1926 即 19.26 个百分点。下表把首答差距统一写成百分点。

Table 1 的相对变化列 · 每一个都是相对前一个系统,不是相对 LLM 的累计变化。
对比Pass@1 均值Pass@1 标准差Pass@3P@3−P@1_avg
SAS vs LLM+95.14%+279.07%+109.53%+173.97%
MAS vs SAS+8.95%−17.18%+2.28%−19.02%
PA-MAS vs MAS+5.93%−57.41%+2.22%−13.75%

交互:在三轮成绩、均值与标准差、首答差距之间切换

下面把 Table 1 的四个系统按三种视角重画。柱高以 100 为满格;标签是表格原值,不是归一化后的分数。标准差以小数记,0.03265 就是 3.265 个百分点。

当前读数
三轮 Pass@1:SAS 波动最大(56.88–64.22,极差 7.34 个百分点);PA-MAS 69.72–72.48,极差 2.76 个百分点。
LLM SAS MAS PA-MAS

“Pass@3 与首答差距”视图里,每个系统的第一个柱是 Pass@3,第二个灰柱是 P@3 − P@1_avg;灰柱越短,首答越接近三轮里的最好成绩。

手算:两组对比与标准差口径与上面的交互同一数据源

配置 A:MAS 对 SAS。Pass@1 均值 61.47 → 66.97,绝对差 66.97 − 61.47 = 5.50 个百分点;相对变化 (66.97 − 61.47) / 61.47 = 8.95%。标准差 0.03265 → 0.02701,相对变化 (0.02701 − 0.03265) / 0.03265 = −17.27%;原文记 −17.18%,页面并列两个口径。

配置 B:PA-MAS 对 MAS。均值 66.97 → 70.95,绝对差 70.95 − 66.97 = 3.98 个百分点;相对变化 (70.95 − 66.97) / 66.97 = 5.94%;原文记 5.93%。标准差 0.02701 → 0.01147,相对变化 (0.01147 − 0.02701) / 0.02701 = −57.53%;原文记 −57.41%。

标准差口径。用 Table 1 的三轮成绩按总体标准差(÷3)复算:SAS 的三轮 56.88 / 63.30 / 64.22,均值 61.47,标准差 0.03265;PA-MAS 的三轮 72.48 / 70.64 / 69.72,均值 70.95,标准差 0.01147;两者都与 Table 1 的五位小数一致。原文正文没有写标准差的分母口径,页面按总体标准差理解。

发现 1:准确率是逐级上升的,但每一级的增量在变小

Pass@1 均值从 31.50 到 61.47,绝对增加 29.97 个百分点(相对 95.14%);再到 66.97,绝对增加 5.50 个百分点(相对 8.95%);再到 70.95,绝对增加 3.98 个百分点(相对 5.93%)。工具接入带来的第一跳最大,Guard 的两级增益都只有几个点。

发现 2:标准差先被工具推高,再被 Guard 压回

标准差从 0.00863 到 0.03265(相对增加 279.07%),再到 0.02701(相对降低 17.18%),最后到 0.01147(相对降低 57.41%)。PA-MAS 的波动已经接近无工具的 LLM,但均值高出一大截;这是论文最想强调的“能力与稳定性同时改善”。

发现 3:SAS 的首答差距最大,PA-MAS 在三个 Agent 系统里最小

Pass@3 与 Pass@1 均值的差距(论文叫 regret):LLM 7.03,SAS 19.26,MAS 15.60,PA-MAS 13.45 个百分点。SAS 的差距最大:三轮里最好能到 80.73%,首答均值只有 61.47%。PA-MAS 把差距压到 13.45,是三个 Agent 系统里最小的;MAS 相对 SAS 收窄 19.02%,PA-MAS 再相对 MAS 收窄 13.75%。

反直觉:PA-MAS 最差一轮低于 MAS 最好一轮

同轮对比,PA-MAS 三轮都高于 MAS(72.48>70.64,70.64>64.22,69.72>66.06)。跨轮看,PA-MAS 最差一轮 69.72 低于 MAS 最好一轮 70.64;这不能读成“同轮落后”,只能说明 PA-MAS 的下限低于 MAS 的上限。论文的结论是平均值与稳定性,不是逐轮碾压。推断 把这一点和标准差一起看,PA-MAS 的优势更像是“把最差的一轮抬起来”,而不是“每一轮都刷新最好成绩”。

另一个反直觉发现来自 §5。有些题 Base 模型在 Pass@3 里能做对,SAS 和 naive MAS 反而做不对。作者的解释是:agent mode 的系统提示、工具列表和注入输出会把模型推向 first-order reasoning,抑制它原本的内部知识。也就是说,加工具不是单调改进;工具带来的能力提升和模式切换损失会同时存在。

07

它解决不了:单一基准、单一模型、没有成本账、指纹可能过期

这些限制决定了 AWorld 的数字能推广到哪里,以及部署时要额外补什么。

限制 1

只覆盖 GAIA L1/L2

109 题,56 个 Level 1、53 个 Level 2;Level 3 因为通常需要浏览器而被排除。L3 未测;论文没有说 L3 是否最容易受工具噪声影响。

限制 2

只测了 Gemini 2.5 Pro

所有版本都用同一个模型,temperature 0.1。换成更强的模型、开源模型或更小的模型,Guard 的增益是否还在,论文没有回答。

限制 3

没有成本与延迟账

Guard Agent 是额外的一次模型调用,离线 profiling 还要跑一轮基准;论文没有报告 token、墙钟时间或 API 费用。准确率提升几个点,是否值得这些开销,需要按场景算。

指纹是离线的,可能过期。PA-MAS 的性能指纹来自一次离线系统辨识;论文在 §6 把 online system identification 列为未来工作,也就是让 Guard 在部署中实时更新对 Execution Agent 的行为模型。推断 在这之前,如果线上任务的分布和离线基准不同,指纹可能不再覆盖新的失败模式(原文没有直接讨论“过期”,只是把在线辨识列为未来工作)。

Guard 自己也会错。推断 Guard Agent 和 Execution Agent 用的是同一个基础模型 fθ(§2.2),它同样可能幻觉或误判;论文没有分析“Guard 给出错误批评”时系统会怎样,也没有做 guard-of-guard 的实验。这个失效模式在页面里只能标出来,不能替论文补数据。

“排行榜第一”要带限定词。论文报告 AWorld 在 GAIA 排行榜的“open-source projects”中位列第一(作者自述)。这不是“所有系统第一”,页面也没有独立核验排行榜的时点与口径;引用时应保留“among open-source projects”这个限定。

什么时候别用:如果任务只需要单轮问答、工具调用很少,Guard 的额外调用是多余开销;如果延迟或费用是硬约束,先测 PA-MAS 的端到端成本;如果线上失败模式变化很快,静态指纹需要更频繁地重做离线辨识。反过来,在工具多、推理链长、错误代价高的场景里,让 Guard 带着失败画像提前拦截,比事后重试更直接。