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%(,即这个差距在统计上讲不清)。
机制:把语义线索抽掉之后还剩什么
现有工具调用评测的隐藏漏洞是工具名本身在泄题。给一个叫 get_weather(city) 的函数,模型不需要试,靠先验就知道该传什么、返回什么。这测的是先验知识,不是探索能力。
ScrambleToolBench 的做法是把名字连同参数名一起打乱成无语义标识符,环境是一个交互式终端,一共 28 个函数,其中 19 个带参数。智能体只能靠调用后的返回来判断这是什么函数。任务按课程串行推进,共 5 个任务,每个任务需要用到 个函数,动作预算 100。
判据有两个: 是整段五个任务全部完成的比例, 是平均解出的任务数。
关键设计是指纹。每个函数被调用后,返回里的键名是稳定的——这就给了智能体一个不依赖名字的识别手段:参数校验错误的形态 + 返回体的键集合,合起来唯一确定”这是哪个函数”。第一个任务的探索过程会自然收集齐这些指纹。
漂移:不是遗忘,是置换
中途的漂移事件从 28 个标识符里挑 个,把它们的函数按一个环循环移位。也就是说标识符 现在执行的是原本属于另一个标识符的函数,而这个对应关系构成一个长度为 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 的响应。这一次调用同时给了两条信息:
- 地图坏了;
id_a现在是 F7——而 F7 原本在哪个标识符上,旧地图里写着,是id_g。
于是下一步该敲的不是随便某个标识符,而是旧地图里 F1 的持有者的前驱。沿这条链往回走,走的就是置换的轮——一一对应保证了这条链不会岔开、也不会中途打转,只会闭合回起点,所以环有多长就最多走多少步。论文测出每次漂移事件最多 6 次额外调用,而且不需要智能体知道置换规模、甚至不需要它知道这是个置换——它只要每次都执行”这个标识符现在给了我 F,那 F 原来的标识符是谁,去敲它”这一条规则。
期望成本能算出来。若被移动的标识符是均匀选取的,某个任务所需的 4 个函数里至少有一个被移动的概率是
乘上环长减一,得到单个任务边界的期望恢复成本
对照组是盲搜:旧标识符给错了之后,随机扫其余标识符平均要 次。所以只要 ,循环追踪就更便宜,这里 成立。
实测偏离得很厉害。把同一个智能体在有漂移和无漂移下配对比较(各 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 漂移下 从 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 区间,跟对链条那项的 明确不显著——它支持的是”没有证据表明记忆带来了演绎”,不是”证明记忆无用”。
- 期望成本公式假定漂移发生前记忆表是最新的。若之前的任务留下未解决的映射,相关环会更长,成本会偏离 4.25。