GoalAct
Agent 规划 · arXiv 2504.16563v3

GoalAct:每一步都重排一张全局计划,执行时只挑「技能」

ReAct 每步只看眼前,容易卡进局部分支;Plan-and-Execute 先给全局计划,却常常超出 Agent 的动作空间。 GoalAct 在每个时间步重新生成一张由「计划步骤 + 技能」组成的全局计划,执行层再按技能选择 Searching / Coding / Writing 等分工。 代价是按 Table 4 的 prompt,每步通常要一次规划调用推断,而且它在 LegalAgentBench 上的证据全部来自 API 模型的黑盒对比,不是训练出来的能力。

Junjie Chen, Haitao Li, Jingli Yang, Yiqun Liu, Qingyao Ai · 清华大学 DCST arXiv 2504.16563v3 ↗ 代码仓库 ↗
TL;DR · 30 秒抓住核心

论文把 Agent 的两个环节分开骂:规划层「要么没有全局目标,要么计划很难执行」;执行层「复杂度与稳定性不可兼得」。 GoalAct 的计划只写到技能粒度:G = (P₁A₁, …, PₙAₙ),每个 Aᵢ 是一个高级技能,最后一步被指定为 Finish。

和 Plan-and-Execute 的区别在于:它每一步都用 Gₜ = π(Q|T|Sₜ) 整体重算计划,Sₜ 是此前的「计划步骤—动作—观察」三元组历史。 好处是计划永远贴着最新观察走,代价是按 Table 4 的 prompt,每步通常一次规划调用推断。

证据只有一个基准(LegalAgentBench,300 题)和三个 API 模型。在「同一模型内」比较最强基线,三个模型分别高出 14.45 / 10.09 / 12.11 个百分点(绝对值),均值正好是论文反复引用的 12.22。 论文在同一段里把这个数称作「average improvement of 12.22%」,口径问题见 06 节。

+12.22pp
三模型 ALL 列平均提升(绝对值,pp)
GPT-4o-mini +14.45 / Qwen-max +10.09 / GLM-4-Plus +12.11
0.8710
GLM-4-Plus 上 GoalAct 的 ALL 成功率
同模型最强基线 0.7499(ReAct)+12.11 pp
0.7304
GLM-4-Plus 去掉 Coding 后的 ALL
低于四个基线的最高值 0.7499(ReAct)
01

规划要么没方向,要么不可执行;执行要么太脆,要么表达力不够

读完这一节,你应该知道 GoalAct 想同时堵上的两个口子分别在哪里。

论文在 §1 把问题拆成两层,每一层都点了一种典型框架的毛病:

规划层

局部最优 vs 不可执行

ReAct 用「Thought-Action-Observation」增量推理,"focusing only on the immediate step without a comprehensive global perspective"(§1),在多分支任务里"frequently become stuck in local optima"。

Plan-and-Execute 会给全局计划并按反馈调整,但"often fail to effectively integrate concrete executable actions into the global plan, resulting in plans that exceed the agents' action space"(§1)。

执行层

简单格式不够用 vs 代码太脆

ReAct 用 text / json 调工具,"lack the capability to handle complex logic structures, such as loops and conditional branches"(§1)。

CodeAct 用 Python 代码统一动作空间,表达力上去了,但"highly complex invocation logic is more prone to errors, making the system less stable";而且并非所有任务都靠代码解决,论文点名了法律文书生成与 Lateral Thinking Puzzles。

在 Figure 2 的案例里,这句设计判断有具体的失败画面:

ReAct:"No data found for the specified identifier." 连试多次 → "Get stuck in local branch!"
CodeAct:一次代码里串多个工具 → "Use too many tools in a single code!"
GoalAct:先 Coding 排序找最高金额案件,再 Searching 查被告
Figure 2,GLM-4-Plus 为底座模型(§4.2.3)

关键的共同点是:两个毛病都发生在「计划要写多细」这个决策上。写得粗,计划落不了地;写得太具体、或者根本不独立规划,又会在环境反馈变化时失去方向。GoalAct 的切入点就是把「写什么粒度」固定下来。

02

四种基线各自缺一块,而论文的补丁只来自同一个对比表

读完这一节,你应该知道每个基线为什么被选进来,以及论文对它们的判断有没有可查的数字支撑。

框架机制论文说的短板(§4.2.1 原句)表格层面的证据
Plan-and-Solve(P-S) 一次给完整计划,逐步执行 "P-S executes a static global plan, which limits its adaptability in complex scenarios, leading to poor performance." GPT-4o-mini / Qwen-max 的 ALL 列最低(0.4196 / 0.5381);GLM-4-Plus 上 P-E 更低(0.5363 < 0.5406,Table 2)
Plan-and-Execute(P-E) 多步计划,任务完成后可重新评估调整 "its global plan does not account for task execution, the execution feasibility of its plan in some tasks is weak, ultimately resulting in performance degradation." GPT-4o-mini / Qwen-max 比 P-S 高(0.4503 / 0.5695);GLM-4-Plus 比 P-S 低(0.5363 < 0.5406,Table 2)
ReAct Thought-Action-Observation 增量循环 "the absence of global planning and its reliance on action formats constrained by text or json impose an upper bound on its effectiveness in certain scenarios." 仅 GLM-4-Plus 是最强基线(0.7499);GPT-4o-mini / Qwen-max 上 CodeAct 更高(0.6275 vs 0.6161、0.7594 vs 0.7422,Table 2)
CodeAct Python 代码作为动作空间 "in complex scenarios, invoking multiple tools within a single code execution often results in errors. Moreover, experimental results show that CodeAct performs poorly in Writing tasks" Writing 列三模型 0.4202 / 0.6522 / 0.5836(Table 2);ALL 上仅 GLM-4-Plus 低于 ReAct(0.6648 < 0.7499),GPT-4o-mini 与 Qwen-max 都高于 ReAct(0.6275 > 0.6161、0.7594 > 0.7422)

上表第三列引的是 §4.2.1 对 Table 2 的解读原句;第四列的数字全部可以从 Table 2 逐格查。注意 GLM-4-Plus 上 P-E 的 ALL(0.5363)低于 P-S(0.5406),与原文 "demonstrating improvements over P-S in some scenarios" 并列看:原文说的是「某些场景」,而 GLM-4-Plus 的 ALL 列上 P-E 更低推断(依据:Table 2,P-E 0.5363 < P-S 0.5406);GPT-4o-mini 与 Qwen-max 的 ALL 则都是 P-E 更高(0.4503 vs 0.4196、0.5695 vs 0.5381)。同理,「ReAct 最强」只在 GLM-4-Plus 的 ALL 上成立,GPT-4o-mini 与 Qwen-max 上 CodeAct 更高;CodeAct 的 Writing 列在三个模型上都低于 ReAct(0.4202 < 0.6087、0.6522 < 0.6662、0.5836 < 0.7659)。

P-S / P-E

计划先行。问题是计划与可执行动作的耦合度低,作者用「超出动作空间」概括。

ReAct

没有全局计划,且动作格式被 text / json 限死,复杂分支与循环表达不出来。

CodeAct

动作空间大,但一次代码串太多工具,遇到不确定的外部返回就整段失败。

论文没有在 §2 Related Work 里另起炉灶地逐条论证这些短板,全部判断都来自 §1 的动机段与 §4.2.1 对同一张 Table 2 的解读——这意味着「谁卡在哪」的证据强度取决于四个基线实现得是否地道,而论文正文没有给出这些基线实现的细节(官方仓库有代码,本页未逐行核对,见 07 节)。

03

把计划写成技能序列,每一步整张重算

读完这一节,你应该能用两条公式说清 GoalAct 与 Plan-and-Execute、ReAct 的差别,并用下面的重放器亲手复现 Figure 2 里那条轨迹。

全局计划 = 一串「计划步骤 → 技能」

G = (P₁A₁, P₂A₂, P₃A₃, …, PₙAₙ)
Eq. (1) · Pᵢ 是第 i 个计划步骤,Aᵢ 是它对应的动作;"The final step, An, is always designated as Finish."

论文原话:由于在全局计划里直接写详细动作描述很难,"we only require the specification of high-level skills"(§3.1)。计划层只需要指定高级技能,不必写出内部执行细节;Figure 2 的 Action 1 里仍留有表名、字段等较粗的参数描述。

每一步都用历史重算整张计划

Gₜ = π(Q | T | Sₜ)    Sₜ = (P₁A₁O₁, P₂A₂O₂, …, Pₜ₋₁Aₜ₋₁Oₜ₋₁)
Eq. (2) 与 Eq. (3) · Q 是用户查询,T 是可用工具集,Oᵢ 是动作 Aᵢ 的观察;t = 1 时 Sₜ 为空

三个要点(前两条取自原文,第三条是本页的形式化):

执行层:三种技能,各自吃自己的格式

技能调用形式(Figure 1 / §3.2)适合论文点名的短板
Searching Text / Json 格式,含 tool_name 与 arguments 简单探询;"simplicity and stability in complex external environments" "cannot handle complex tool calls or data processing logic, such as conditional branches and loops"
Coding Python Code,可写 loops / branch,可用 max/sort/sum 复杂逻辑;"expanding the agent's action space and enhancing execution efficiency" "even the most sophisticated code can produce unforeseen bugs"
Writing Special Process:gathering info → first draft → polishing… 法律文书这类"cannot be effectively addressed through either Searching or Coding" 的任务 §3.2 未点名 Writing 的短板
Other Skills Figure 1 列出 Reasoning… / Research… / Create… "expanding the skill pack according to task-specific requirements" §3.2 原文:"this expansion process is easy and highly iterative";未给实现细节

技能表来自 Figure 1 与 §3.2 的描述;表格里没有给出各技能内部的具体工具名、参数 schema 或 Writing 的流程实现。

自己动手:重放 Figure 2 的轨迹

下面只重放原文 Figure 2 中明确写出的节点,用来感受「计划—动作—观察—重排」的骨架。它是回放器,不是模拟器:不会用 Eq. (2) 现场生成新计划;readout 是中文复述,Figure 2 的英文原句逐字见下方手算块。

当前节点
点「下一步」开始。默认轨迹按 Figure 2 的 GoalAct 面板回放。
回放器覆盖了什么、简化了什么按 SPEC §1.3-G 列分支

出处:Figure 2(含 ReAct、CodeAct、GoalAct 三个面板)与 Table 4(规划 prompt)。

覆盖的分支:

  • GoalAct 面板中可见的四块,加上 "…." 收敛节点:开头的初始 Global Plan: […];Plan Step 1 + Action 1(Coding 排序取最高金额,含 Observation 1);Global Plan (updated): […];Plan Step 1 : + Action 2(Searching 查被告,含 Observation 2);最后是 "…."。
  • ReAct 面板的失败信号:"No data found for the specified identifier." 与 "Get stuck in local branch!"。
  • CodeAct 面板的失败信号:"Use too many tools in a single code!"。

未覆盖、属于简化模拟的分支:

  • Figure 2 用 "…" 省略了 GoalAct 的后续步骤,原文没有给出每一步的完整计划列表,回放也不补。
  • Eq. (2) 的 π 调用没有复现:切换「去掉某技能」后,实际系统会重新规划,这里只做逐节点删除,并显式声明「其余节点与 Figure 2 相同,属于假设情形」。
  • Writing 技能在 Figure 2 中没有出现,回放器也不涉及。
  • Table 4 的 JSON 输出格式、max iteration T = 10 的终止规则只做文字说明,不参与回放。
手算两组:步数怎么数、删除后剩几步与回放器逐位对账

回放器里唯一的派生数值是「已走步数 / 总步数」。常量直接取自 Figure 2 的可见节点;英文原句逐字转写如下(readout 为中文概述,不是逐字翻译):初始 Global Plan: […];Plan Step 1: First, we need to query all cases involving Anhui Ankang Law Firm … 与 Action 1: Coding[Query the LegalDoc table to retrieve all cases involving Anhui Ankang Law Firm, returning the case number and monetary amount fields. …](含 Observation 1);Global Plan (updated): […]、Plan Step 1 : Next, we need to query the defendant company name … 与 Action 2: Searching[Search the LegalDoc table for the case with case number (2020) Wan 0603 Min Chu 2364 and return the defendant field](含 Observation 2);最后是 "…."。Figure 2 可见四块(初始计划、Plan Step 1 + Action 1、更新后的计划、Plan Step 1 + Action 2),加上 "…." 收敛节点,回放器共 5 个节点(初始计划与合并的「Plan Step 1 + Action 1」各算一个节点)。

第 1 组(默认,data-f = 0):节点序列为 [0,1,2,3,4],共 5 个节点;len = 5;第一次点「下一步」时 k = 1,进度 = 1/5 = 20%,即 round(1/5 × 1000)/10 = 200/10 = 20.0,读数为「已走 1 / 共 5 步,位于节点 1」。

第 2 组(不给搜索,data-f = 1):删除下标 2、3(Global Plan 重排、Searching 查被告),剩下 [0,1,4],len = 3;点两步后 k = 2,进度 = round(2/3 × 1000)/10 = round(666.67)/10 = 667/10 = 66.7,读数为「已走 2 / 共 3 步,位于节点 2」。

其余两种设置同理:去掉重排(data-f = 3)去掉的是下标 2(Global Plan 重排),序列 [0,1,3,4],len = 4;点 1 次得 round(1/4 × 1000)/10 = 250/10 = 25.0%。不给编码(data-f = 4)序列 [0,5,3,4],共 4 个节点;其中下标 5 是回放器新增的合成节点「Action 1 · Searching」,用来替代原来的 Coding(已在面板中声明为回放器自定);点 2 次得 round(2/4 × 1000)/10 = 50.0%。进度 = round(k / len × 1000) / 10(百分比保留一位小数,四舍五入)。保持默认设置(5 节点)时点 3 次得 round(3/5 × 1000)/10 = 60.0%;不给搜索时点 3 次(走完)得 round(3/3 × 1000)/10 = 100.0%。回放进度只依赖节点数,不含任何耗时或 token 估计。

04

成本是一条串行链:每步通常一次规划 + 每个技能内部若干次调用

读完这一节,你应该知道这套方法的开销由什么决定,以及论文对开销交代到了哪一步。

按 Eq. (2) 与 Table 4 的 prompt,每步通常伴随一次规划调用推断;原文未说明规划调用与执行调用是否合并。GoalAct 本身没有训练阶段:三个基础模型全部经 API 调用,温度设为 0(§4.1.2),所以「怎么算」的问题只剩推理侧的开销。

每个任务 ≈ Σt=1..T [ 至多 1 次 π(Q|T|Sₜ) 规划调用 + 技能 Aₜ 内部的 nₜ 次工具/LLM 调用 ]
依据 Eq. (2)(π 由 Table 4 的 prompt 承载)与 §4.1.2 的迭代上限 T = 10;「至多 1 次」是因为原文没有说明规划调用与执行调用是否合并;nₜ 与整个 Σ 是本页为说明成本结构写出的形式化,原文没有给出这个公式
工程含义

「每步重算」是一个明确的可调旋钮

如果重排是收益的主要来源,那么减少重排次数(例如每两步重排一次)应当是最直接的省成本手段。但论文没有做这一消融:w/o global plan 是移除全局规划模块,不是降低重排频率;具体如何降级论文未说明推断(见 06 节的白盒变体)。

05

一个任务在 GoalAct 里的完整回路

读完这一节,你应该能在图上指出「哪一处是全局计划、哪一处是技能选择、哪一处回流到 Eq. (2)」。

用户查询 Q + 可用工具 T 全局规划(每一步重算) G_t = π(Q | T | S_t) P1 · 规划步骤 → A1 · 技能 P2 · 规划步骤 → A2 · 技能 … · 末步指定 Finish 更新策略 π 见 Table 4 分层执行(§3.2) Searching Text / Json · tool_name · arguments Coding Python Code · loops · branch Writing gathering info · draft · polishing Other Skills:Reasoning / Research / Create… 环境 / 工具 LegalAgentBench 数据表 + API 工具 观察 O_t Finish 或 T = 10 时收敛作答 S_t = (P1A1O1, …, P(t-1)A(t-1)O(t-1)) 下一步把 S_t 送回 Eq. (2) 重算整张计划
依据 Figure 1(全局规划 + 分层执行)、Eq. (1)–(3)、§3.2 与 §4.1.2 重绘,非原文截图。 红色走计划路径,青灰走观察路径;虚线是本页补出的「历史回流」,原文以 Eq. (2) 的 Sₜ 项表达,Figure 1 中没有画这条线。

把 Figure 2 的 GoalAct 面板对照这张图:第 1 步用 Coding 取回最高金额案件(观察 1),随后 "Global Plan (updated)" 把计划重写成以「查被告」为第一步(Eq. 2 的 Gₜ 项生效),第 2 步用 Searching 拿被告字段。这里技能随步骤切换,正是 CodeAct(全程代码)与 ReAct(以搜索为主)做不到的事。推断(依据:§4.2.3 只说 "its hierarchical execution mechanism enables the agent to flexibly choose appropriate skills based on task complexity",未与 CodeAct / ReAct 对比技能切换)。

06

同一模型内 21 格 GoalAct 全部最高;3-hop 列三模型都至少高 18 pp,2/4/5-hop 各有例外,排列并非单调

读完这一节,你应该能分清论文报告的「12.22%」「3.26–20%」「8.14%」各自的口径,以及为什么六个「relative improvements」不能当相对百分比读。

设定:LegalAgentBench 共 300 题,分 1-hop 至 5-hop(80 / 80 / 60 / 40 / 20 题)与 Writing 20 题(Table 1)。三个模型经 API 调用,temperature = 0(§4.1.2)。指标是成功率,按 Eq. (4) 计算每题的 sᵢ = |Mᵢ| / |Kᵢ|(命中关键元素数 / 关键元素总数),再对全部任务取平均。Table 2 转录如下。

Table 1 未逐格转录:本页只引用题数(80 / 80 / 60 / 40 / 20 / 20,合计 300)、query/answer 长度(Writing 1059.95 / 678.75 词)与关键元素统计(1.88 / 2.25 个/题),其余统计行不引用。

模型方法1-hop2-hop3-hop4-hop5-hopWritingALL
GPT-4o-miniP-S0.71170.33750.27500.25830.12500.63140.4196
P-E0.74440.37710.32500.24170.14170.66810.4503
ReAct0.93330.65000.40000.42080.25830.60870.6161
CodeAct0.90580.79380.41670.38750.16830.42020.6275
GoalAct0.95560.87710.62500.56250.45170.79810.7720
Qwen-maxP-S0.84690.49580.40830.37920.23330.48360.5381
P-E0.85940.58960.35830.40830.30170.55390.5695
ReAct0.90620.79170.63330.58330.60830.66620.7422
CodeAct0.84420.85830.63330.75830.51170.65220.7594
GoalAct0.95310.90620.81670.79170.61170.82200.8603
GLM-4-PlusP-S0.85190.46670.41670.35830.11670.75220.5406
P-E0.84190.50000.36670.34580.11670.76790.5363
ReAct0.91310.81040.64170.61670.43000.76590.7499
CodeAct0.92210.78120.41670.54580.23330.58360.6648
GoalAct0.95060.91870.85000.73750.69830.86430.8710

Table 2 全文转录(原文以粗体标最佳,此处同一模型内的 GoalAct 行加底色)。P-S = Plan-and-Solve,P-E = Plan-and-Execute。

12.22 是什么:三模型 ALL 列绝对差(pp)的算术平均

模型GoalAct ALL同模型最强基线绝对差(pp)相对该基线(%)相对 GoalAct(%)
GPT-4o-mini0.77200.6275(CodeAct)14.4523.0318.72
Qwen-max0.86030.7594(CodeAct)10.0913.2911.73
GLM-4-Plus0.87100.7499(ReAct)12.1116.1513.90
三模型平均0.83440.712312.2217.1514.64

最后一行的 0.8344 / 0.7123 是三个模型 ALL 列的直接算术平均(每个模型的 ALL 本身是按题数加权的,见下面第二个 details)。所有派生值均由脚本从 Table 2 的原始小数算出,未用论文已四舍五入的百分比反推。论文 Abstract 写 "with an average improvement of 12.22% in success rate";§4.2.1 写 "improves average performance by 14.45% on GPT-4o-mini, 10.09% on Qwen-max, and 12.11% on GLM-4-Plus, with an overall average improvement of 12.22%";§5 写 "with an average improvement of 12.22% over existing methods"。这三个数和上面「绝对差(pp)」一列的 14.45 / 10.09 / 12.11 逐位相同;按相对口径重算分别是 23.03 / 13.29 / 16.15(相对最强基线)、17.49(逐模型相对值再平均)和 17.15(相对值合并),都不是 12.22。推断(依据:上表逐位对账):论文声称的是「相对提升」,但计算结果是绝对差均值;引用时应写「高出 12.22 个百分点(pp)」,不要写「相对提升 12.22%」。

「relative improvements」的六个数字:实为三模型绝对差(pp)的算术平均

论文 §4.2.1 原句:"Specifically, the relative improvements on average are 3.26% for 1-hop, 7.98% for 2-hop, 20% for 3-hop, 9.86% for 4-hop, and 15.5% for 5-hop. Furthermore, in Writing tasks, GoalAct achieves a 12.74% improvement"。把「同模型 GoalAct − 同模型最强基线」逐模型算成绝对差(pp),再对三个模型取算术平均,得到下表「平均(pp)」列——与论文六个数逐位相同。

列论文写法三模型绝对差(pp,逐模型)平均(pp)相对最强基线均值(%,对照;非论文口径)
1-hop3.26%2.23 + 4.69 + 2.853.263.55
2-hop7.98%8.33 + 4.79 + 10.837.989.81
3-hop20%20.83 + 18.34 + 20.8320.0037.14
4-hop9.86%14.17 + 3.34 + 12.089.8619.22
5-hop15.5%19.34 + 0.34 + 26.8315.5045.94
Writing12.74%13.00 + 15.58 + 9.6412.7418.47

逐模型顺序为 GPT-4o-mini / Qwen-max / GLM-4-Plus;绝对差与平均保留两位小数。最后一列按「(GoalAct − 最强基线) / 最强基线」逐模型算相对值再平均,只作对照,不是论文口径。

六列全部可以复算:1-hop (2.23 + 4.69 + 2.85) / 3 = 3.2567 ≈ 3.26;2-hop (8.33 + 4.79 + 10.83) / 3 = 7.9833 ≈ 7.98;3-hop (20.83 + 18.34 + 20.83) / 3 = 20.00;4-hop (14.17 + 3.34 + 12.08) / 3 = 9.8633 ≈ 9.86;5-hop (19.34 + 0.34 + 26.83) / 3 = 15.5033 ≈ 15.50;Writing (13.00 + 15.58 + 9.64) / 3 = 12.74。相对口径的均值是 3.55 / 9.81 / 37.14 / 19.22 / 45.94 / 18.47,与论文六个数对不上;所以论文写的 "relative improvements" 实际口径是绝对差均值(pp),不是相对百分比。同一模型内 21 格(3 模型 × 7 列)GoalAct 全部最高;但绝对差随 hop 的排列并不单调:3-hop 列三个模型都至少高 18 pp(20.83 / 18.34 / 20.83);2-hop 在 GPT-4o-mini 只有 8.33 pp(小于 Writing 的 13.00 pp),4-hop 在 Qwen-max 只有 3.34 pp(小于 1-hop 的 4.69 pp),5-hop 在 Qwen-max 只有 0.34 pp(小于 1-hop 与 Writing)。因此「难度越高提升越大」只能当论文的概括,不能逐列成立。

手算:上表的逐模型拆解(以 3-hop 为例)全部用 python3 从 Table 2 原数计算
  • GPT-4o-mini:GoalAct 0.6250,最强基线 CodeAct 0.4167;绝对差 0.2083 = 20.83 pp;相对 0.2083 / 0.4167 = 49.99%。
  • Qwen-max:GoalAct 0.8167,最强基线 0.6333(ReAct 与 CodeAct 并列);绝对差 0.1834 = 18.34 pp;相对 28.96%。
  • GLM-4-Plus:GoalAct 0.8500,最强基线 ReAct 0.6417;绝对差 0.2083 = 20.83 pp;相对 32.46%。
  • 三模型相对值平均:(49.99 + 28.96 + 32.46) / 3 = 37.14%;三模型绝对差平均:(20.83 + 18.34 + 20.83) / 3 = 20.00 pp。论文的「20%」与后者数值相同,但论文写的是 "relative improvements"。推断(依据:数值逐位吻合、相对口径重算为 37.14)。
Table 2 的 ALL 列是怎么合成的按 Table 1 题数加权,15 行全部复现

Table 1 给出每类任务题数 80 / 80 / 60 / 40 / 20 / 20(合计 300)。用这组题数对六列加权:ALL = (80·1-hop + 80·2-hop + 60·3-hop + 40·4-hop + 20·5-hop + 20·Writing) / 300。逐行复算后,Table 2 的 15 行全部等于打印的 ALL(最大差 0.0001),所以 ALL 是按题数加权的平均,不是六列等权平均。

加权与不加权的差距:GoalAct 行 3.44 pp,Table 3 的 w/o global plan 行 1.85 pp;Table 2 的 15 行与这一行合起来(16 行)的范围是 1.85–11.21 pp。以 GLM-4-Plus 为例:GoalAct 加权 0.8710(与 ALL 逐位相同)、不加权 0.8366;w/o global plan 加权 0.7896(与 ALL 相同)、不加权 0.7711。

另外,0.7117 × 80 × 1.88 = 107.04 是「成功率 × 题数 × 每题关键元素数」得到的命中 key_answer 元素期望数,不是题数;1.88 与 2.25 是 Table 1 的「# Avg. key_answer per query」,不能用来反推题数。

反直觉的点:去掉 Coding 之后,GoalAct 在 GLM-4-Plus 上还不如 ReAct

Table 3 只在 GLM-4-Plus 上做消融,转录如下。

方法1-hop2-hop3-hop4-hop5-hopWritingALL
GoalAct0.95060.91870.85000.73750.69830.86430.8710
w/o global plan0.92810.73750.80000.62080.69500.84540.7896
w/o searching0.89500.80630.75000.67080.61000.85210.7906
w/o coding0.83810.78330.63330.62080.48330.84470.7304
w/o writing0.93810.90000.76670.67080.57670.82470.8264

Table 3 全文转录(GLM-4-Plus;"w/o" = 移除对应模块)。

白盒变体:Table 3 的消融对不上任一种简单的「同模型最强基线」替代关系推断,仅用于说明消融的可解释性有限

如果把「w/o global plan」理解成「某一组基线的逐列结果」:在 Table 2 的 GLM-4-Plus 四行里,没有任何一行能在全部六列上达到 w/o global plan——w/o global plan 在 1-hop(0.9281)、3-hop(0.8000)、5-hop(0.6950)、Writing(0.8454)四列都高于该模型四个基线的最高值,只在 2-hop(0.7375,低于 ReAct 的 0.8104)与 4-hop(0.6208,高于 ReAct 的 0.6167)与基线接近。

因此无法把 w/o global plan 还原成「把某个基线搬进来」的简单替代;去掉全局计划后仍保留了一种比该模型四个基线更强的执行方式,而论文没有描述它。本页把它记为未标注的机制,不据此论证「全局规划贡献 8.14 pp」。另:Table 2 的 ALL 列已由 Table 1 的题数加权复现(见上文 ALL 列口径的 details),但 Table 3 没有逐列题数,本页不做列加权合成。

07

什么时候不能直接拿 GoalAct 的结论用

这节只列论文自己能查到的边界:单一基准、单次运行、正文未给实现细节、没有开销数据。

边界一

只有一个领域、一个基准

全部实验都在 LegalAgentBench 上(§4.1.1),任务类型是 1-hop 到 5-hop 的法律问答与辩护文书写作。论文未在其他领域(代码、科研、开放网页)上评测;§3.2 只是提出「reasoning / research / creative」等扩展技能的设想,没有对应实验。

边界二

单一运行、无方差、无显著性检验

论文没有报告重复运行的均值±方差,也没有做显著性检验。Table 2 里的差距中最小的是 Qwen-max 5-hop:0.6117 vs 0.6083,仅 0.34 pp。推断(依据:该列 baseline 值 0.6083 出自 ReAct,且论文无方差信息):这一格更可能落在随机波动范围内,不能当作「GoalAct 在 5-hop 上普遍更强」的证据。

边界三

官方仓库有代码,但正文没有复现级细节

Abstract 写 "Our code can be found at https://github.com/cjj826/GoalAct",仓库 public,确实有代码。但论文给出 Figure 1–2、Eq. (1)–(4)、Table 1–4,没有基线/skill 代码清单或超参数细节;无法从论文判断仓库是否与 v3 的实验代码一致。本页未逐行核对仓库内容,也未用仓库作为出处。

边界四

没有成本对照,「每步重算」的代价未量化

§4 没有报告 token、延迟或费用。按 Eq. (2) 每步都要重算计划;Table 4 的 prompt 表明这一步通常是一次规划调用推断,但原文未说明它是否与执行调用合并。单次规划调用在 Table 4 的 prompt 下有多长、GoalAct 相对 ReAct / CodeAct 多调用多少次,论文没有给数。若部署对成本敏感,这一段是本方法的主要风险。

边界五

技能的扩展性只有设计论证

§3.2 称扩展技能 "easy and highly iterative",但实验中没有新增或评测三个技能之外的技能,也没有新增技能的成本测量。Writing 技能只在一个 20 题的类别上评测(Table 1)。

一句话:GoalAct 在这个基准上证明了「计划写到技能粒度 + 每步重排」比四种常见组织方式在 API 模型上更有效,并且消融显示三个技能都不可少;但要把它搬进自己的系统,最需要先补上的是开销对照与跨领域验证,这两块论文都没有给。