Elea Notes.

ScrambleToolBench:智能体手里有正确的旧地图,却选择挨家挨户敲门

工具名被打乱后前沿模型仍能试探出行为,但中途置换四分之一标识符就让完成率从 93% 掉到 32%,三种扰动叠加更是掉到 3%——不是遗忘,是拒绝用旧地图做演绎。

智能体一堆没有名字的工具,让它自己试出每个工具干什么——这件事前沿模型做得很好。然后在中途悄悄把其中四分之一的工具名换个位置,成功率从 93% 掉到 32%;再叠上随机失败和时间窗口,掉到 3%。掉下去的原因不是它忘了自己学过什么,而是它明明有一张正确的旧地图,却不肯用地图去推理,改成从头挨个敲门。

先说结论

  • ScrambleToolBench 把工具名换成无语义的随机标识符,逼智能体只能靠交互试探行为。前沿模型(Gemini 3.1 Pro、Gemini 3.5 Flash、Claude Sonnet 5)在静态条件下完成率 1.00,说明”从零试探出工具行为”这件事已经不是瓶颈。
  • 一旦加入三种动态扰动(映射漂移、随机失败、时间窗口)的组合,聚合完成率从 93% 掉到 3%。Claude Sonnet 5 归零,只剩 Gemini 3.1 Pro(0.20)和 3.5 Flash(0.25)还能解出任务。
  • 漂移是一个置换:28 个标识符里的 7 个组成一个环循环移位。这种结构有一个便宜的解法(论文称 cycle tracing,循环追踪),期望只要 4.25 次额外调用。智能体几乎不用它,实测恢复成本是该参考值的 4.5 到 12 倍。
  • 加大推理预算不会让它想出这个解法,只会让它把穷举搜索做得更整齐。Gemini 从低到高推理档,漂移下完成率 0.10 → 0.90,但每次调用链的”跟对下一个标识符”命中率不随推理提升。
  • 给它一块持久记忆有帮助,但帮的是”别重复发现”,不是”学会推理”。Gemini 在组合条件下 0.20 → 0.50;可在记忆表里明明存着答案的情况下,它三步内跟对链条的比例只有 12.8%,随机基线是 10.9%(p=0.195p=0.195,即这个差距在统计上讲不清)。

机制:把语义线索抽掉之后还剩什么

现有工具调用评测的隐藏漏洞是工具名本身在泄题。给一个叫 get_weather(city) 的函数,模型不需要试,靠先验就知道该传什么、返回什么。这测的是先验知识,不是探索能力。

ScrambleToolBench 的做法是把名字连同参数名一起打乱成无语义标识符,环境是一个交互式终端,一共 28 个函数,其中 19 个带参数。智能体只能靠调用后的返回来判断这是什么函数。任务按课程串行推进,共 5 个任务,每个任务需要用到 r=4r=4 个函数,动作预算 100。

判据有两个:PepP_\text{ep} 是整段五个任务全部完成的比例,TavgT_\text{avg} 是平均解出的任务数。

关键设计是指纹。每个函数被调用后,返回里的键名是稳定的——这就给了智能体一个不依赖名字的识别手段:参数校验错误的形态 + 返回体的键集合,合起来唯一确定”这是哪个函数”。第一个任务的探索过程会自然收集齐这些指纹。

漂移:不是遗忘,是置换

中途的漂移事件从 28 个标识符里挑 k=7k=7 个,把它们的函数按一个环循环移位。也就是说标识符 xx 现在执行的是原本属于另一个标识符的函数,而这个对应关系构成一个长度为 7 的循环。

漂移前:  id_a→F1   id_b→F2   id_c→F3   ...   id_g→F7
漂移后:  id_a→F7   id_b→F1   id_c→F2   ...   id_g→F6
         └─ 一个长度 7 的环,整体移一位 ─┘

智能体想调 F1,它按旧地图敲 id_a,结果拿到的是 F7 的响应。这一次调用同时给了两条信息:

  1. 地图坏了;
  2. id_a 现在是 F7——而 F7 原本在哪个标识符上,旧地图里写着,是 id_g

于是下一步该敲的不是随便某个标识符,而是旧地图里 F1 的持有者的前驱。沿这条链往回走,走的就是置换的轮——一一对应保证了这条链不会岔开、也不会中途打转,只会闭合回起点,所以环有多长就最多走多少步。论文测出每次漂移事件最多 6 次额外调用,而且不需要智能体知道置换规模、甚至不需要它知道这是个置换——它只要每次都执行”这个标识符现在给了我 Fjj,那 Fjj 原来的标识符是谁,去敲它”这一条规则。

期望成本能算出来。若被移动的标识符是均匀选取的,某个任务所需的 4 个函数里至少有一个被移动的概率是

1(Mkr)(Mr)1-\frac{\binom{M-k}{r}}{\binom{M}{r}}

乘上环长减一,得到单个任务边界的期望恢复成本

E[Δ]=(1(214)(284))×6=4.25\mathbb{E}[\Delta]=\left(1-\frac{\binom{21}{4}}{\binom{28}{4}}\right)\times 6=4.25

对照组是盲搜:旧标识符给错了之后,随机扫其余标识符平均要 M/2=14M/2=14 次。所以只要 k1<M/2k-1<M/2,循环追踪就更便宜,这里 6<146<14 成立。

实测偏离得很厉害。把同一个智能体在有漂移和无漂移下配对比较(各 19 段),扣掉”解题本身需要的 5 次动作”,Gemini 3.1 Pro 高推理档在任务 2–5 的平均多花 23.66 次动作,是 4.25 这个参考值的 5.57 倍;Claude Sonnet 5 低推理档多花的动作达到参考值的 12.17 倍

两种失败形态

论文把观察到的行为分成两类,两类都不是”能力不够”:

信念惯性(belief inertia):反复调用已经被证伪的标识符。Claude Sonnet 5 在组合条件下,每个任务对失效函数名的调用达到 5.32 次。它不是不知道那个名字失效了,是不愿意改。

退化成穷举:放弃推理,改成扫。有意思的是 GPT-5.4 和 Gemini 3.1 Pro 的 stale call 反而变少——因为它们选择提前退出整段任务,而不是继续敲。所以”重复调用少”这个指标本身会被早退掩盖,不能单独当健康信号。

推理预算与记忆各解决了什么

加推理档确实提分:Gemini 漂移下 PepP_\text{ep} 从 0.10 到 0.90。但拆开看,提升来自”搜索时少走废路”,不是”改用推理”。Sonnet 在中/高推理档的恢复成本仍是参考值的 7.38 倍和 7.52 倍,跟对链条的比例不随推理档提升。

Token 成本上有个反直觉的点:降低推理档不一定省钱。Sonnet 在漂移下每解一题的完成 token,低推理档 13,274 是最贵的,中档 9,741,高档 11,652。原因是低档失败得更多,而分母是解出的任务数。同一档下 Gemini 只用 3,332,相差 3.5 倍。

持久记忆给的是”外置状态”:把发现的映射和任务配方写下来。它把 Gemini 漂移下的总动作从 154.9 降到 139.9,完全重复的调用从 38.2 降到 24.6。但它没有制造出推理——在记忆表里反查前驱标识符本来是现成的,Gemini 三步内跟对的比例只有 12.8%,对比随机基线 10.9%。

论文还点出记忆的一个副作用:效果严重依赖定期剪枝,否则过期信念会一直留在表里被反复取用。记忆放大的是当前的信念更新策略,策略本身错,记忆就把错的记牢。

为什么这样设计

这个基准的取舍很清楚:它不追求难。作者明说,把漂移做得更难(更长的环、多个环)肯定能把前沿模型压下去,但那个结果”不令人惊讶”——预算足够大时穷举总能恢复。所以他们刻意把漂移设成一个有廉价解析解的结构,然后只问一件事:智能体认不认得出这个结构。

代价是外部效度:真实环境里 API 变更很少是干净的置换,所以 4.25 这个参考值不能直接搬到生产。它的价值在于提供了一个可计算的下界,让”贵了多少倍”变成一个数,而不是一句”看起来效率不高”。

边界

  • 论文 2026 年 8 月 3 日提交,v1,尚未经过同行评审。
  • 结论是关于置换型结构变化的。智能体在其他形态的变化(参数语义改变、返回格式改变、函数被删除)下是否也不做演绎,这里没测。
  • 配对分析的样本是 19 段 episode,落在少数模型上;论文自己给出的置信区间是 Wilson 区间,跟对链条那项的 p=0.195p=0.195 明确不显著——它支持的是”没有证据表明记忆带来了演绎”,不是”证明记忆无用”。
  • 期望成本公式假定漂移发生前记忆表是最新的。若之前的任务留下未解决的映射,相关环会更长,成本会偏离 4.25。

来源

  1. ScrambleToolBench: Agents Search Exhaustively Even When Their Own Map Points to the Next SteparXiv 2608.02358