DeLoop 不靠奖励,8B 循环率从 57.3% 降到 6.1%

DeLoop: Repeated Actions as Self-Supervision for Long-Horizon Agents

Tianle Chen, Pushkar Singh, Ketan Todi, Biswajit Paria, Qijia He, Wenqi Wang, Yuwen Tan, Jike Zhong, Sugato Basu, Deepti Ghadiyaram, Arjun Akula

cs.AI

2026-10-14

DeLoop 把重复调用当负例、稍后跳出当正例,做无奖励 DPO。8B 循环率从 57.3% 降到 6.1%,步数约剩三分之一。

这篇在解决什么

长程 agent 会把同一个工具、同一组参数再调一次,环境返回一字不差的旧观测。DeLoop 把这种步骤定义成 loop:调用先规范化,忽略空格和参数顺序,再拼上返回观测;与更早某步完全相同,就是 looping action。调用重复但观测变了,不算。含至少一次 loop 的运行占比,记为 loop rate。

完整历史挡不住。CodeGym 上 Qwen3-8B 不压缩时 loop rate 为 29.0%,摘要到 4096 token 升至 57.3%,阈值降到 2048 则到 64.7%。Gemini 3.5 Flash-Lite 从 34.0% 升到 47.1%。

循环和失败一起出现,因果还没有单独立住。六组 Qwen3 与 Gemini 的压缩实验里,有 loop 的运行平均 59.5% 失败,没有的是 33.4%。Qwen3-8B 为 85% 对 68%,Gemini 3.1 Pro 为 48% 对 12%。有 loop 的 Qwen3-8B 轨迹平均 6.5 次空转,比无 loop 多 10.5 步、多约 11k token。

上下文里留着记录,模型也经常不用。删掉最近一次已完成调用,重发比例从 3.3% 升到 48.8%。完整历史仍有 29.0% 的运行会 loop;压缩后 25.2% 在逐字重复一条还留在上下文中的调用。动作账本和动作轨迹的循环率仍为 52.0% 到 62.7%,普通摘要是 57.3%。

方法

标签从同一条 rollout 里挖,不用任务奖励、标准答案或 LLM judge。

压缩轨迹里,looping action 当负例。其后第一个既不是 loop、调用又与负例不同的动作当正例,都配上 loop 之前的历史。没跳出就丢弃。一条轨迹可以有多对。8000 条 CodeGym 对里,82.6% 来自失败运行。数在线服务器簇时,模型把 FindUnvisited(3,0) 连打三次,每次都得到 (3,0),稍后才 MarkVisited(3,0)。重复搜索是负例,后来的标记是正例。

正例就是模型自己后来走的那一步。只拿正例做 SFT,循环率停在 37.7%;和负例对比之后降到 6.1%。在线 GRPO 给 loop 逐步加罚,降到 15.0%。

DPO 的参考模型是冻结基座,β = 0.05。Qwen3-8B 从 9403 条自挖对中取 8000 条,LoRA(r=32)训一个 epoch。14B 和 32B 用各自的 2331、2244 条,训两个 epoch。推理时每一步用训过的策略。摘要由同一个模型写,没有单独的损失。历史估计超过 4096 token 就压缩,留下系统提示、任务和最近六条消息。

DeLoop-Mix 再加 ALFWorld、Open-AgentRL、Terminal-Bench 上按同一规则挖的 4635 条。

结果

评测是 Qwen3-8B、CodeGym 300 道留出题,历史超过 4096 token 就摘要。完整历史、压缩基线、DeLoop、DeLoop-Mix 取三次运行的平均。

方法含循环任务成功率每题步数每题 token
完整历史29.0%31.7%12.2324.3k
压缩基线57.3%25.1%15.0023.9k
检索记忆42.7%27.7%13.3426.1k
ACON46.3%29.3%14.8420.5k
重复 blocker46.7%25.3%14.7124.9k
Gold-label DPO22.3%25.7%8.1011.3k
历史蒸馏43.7%26.3%11.5226.6k
DeLoop6.1%25.9%4.6712.7k
DeLoop-Mix10.1%30.3%5.949.6k

循环率从 57.3% 降到 6.1%,大约是原来的九分之一。步数从 15.00 降到 4.67,token 少 47%。成功率从 25.1% 到 25.9%,仍低于不压缩的 31.7%。Gold-label DPO 用任务成败来组对,循环率还有 22.3%,步数 8.10,成功率 25.7%。Blocker 的 46.7% 把被拒绝的提议也算了进去。

模型循环率成功率每题步数
Qwen3-14B 基线42.9%45.1%15.28
Qwen3-14B DeLoop12.3%52.3%8.18
Qwen3-32B 基线38.5%37.7%13.54
Qwen3-32B DeLoop12.9%44.8%8.82

14B 成功率加 7.2 个点,32B 加 7.1 个点。压缩在这两档大约先掉 8.9 和 9.0 个点,DeLoop 补回大部分,token 少 35% 和 29%。Qwen3.5-9B 的循环率从 54.7% 到 26.0%,成功率从 49.7% 到 55.3%。Llama-3.1-8B 的循环率从 43.7% 到 2.0%,步数从 17.51 到 5.72,成功率从 17.8% 到 19.4%。

重复里观测发生变化的比例,从 29.9% 升到 69.8%。空转占全部步骤从 24.9% 降到 2.5%,有信息的重复从 10.6% 降到 5.8%。

DeLoop-Mix 把压缩下的成功率从 25.1% 拉到 30.3%,不压缩从 31.7% 到 36.2%,循环率都是 10.1%,每题 token 9.6k,是上表最少的一档。只用跨域对、不用 CodeGym 对,循环率回到 55.3%。五种上下文设置下,DeLoop 的循环率在 4.7% 到 12.8% 之间,未训练基线最高 65.3%。七种记忆策略下,DeLoop-Mix 把循环率从 42.7%–62.7% 降到 6.3%–20.7%;动作账本从 62.7% 降到 11.3%,成功率加 5.7 个点。

四个环境里循环都降。ALFWorld 与 Open-AgentRL 评的是未见过的游戏:前者循环率 55.2% 到 27.6%,成功率 37.3% 到 38.1%;后者 79.0% 到 73.5%,成功率 43.9% 到 45.5%。AppWorld 73.7% 到 40.9%,成功率从 7.0% 降到 5.8%。ScienceWorld 96.5% 到 83.5%,成功率从 3.5% 降到 1.5%。Terminal-Bench 无产出重复从每题 16.6 次降到 6.9 次。830 条 BrowseComp-Plus 上,DeLoop-Mix 循环率从 22.4% 到 1.2%,准确率持平;只训 CodeGym 的 DeLoop 降到 6.4%。Qwen3-32B 只学 CodeGym,零样本到 ALFWorld,循环率 64.9% 到 54.5%,成功率 33.6% 到 42.5%。

LiveCodeBench 182 题、greedy pass@1,基座解出 53,DeLoop 52,DeLoop-Mix 54。IFEval 严格准确率 82.8%、83.5%、83.4%。MT-Bench 4.225、4.463、4.213。

为什么重要

常见修法是换记忆:外置库、滚动摘要、可学习压缩器。DeLoop 假定压缩器不动,改的是策略会不会用已经留下的记录。标签只有一条,调用和观测是否与早前某步精确相同。

8B 上省的是交互。步数大约剩三分之一,成功率贴着压缩基线,到不了完整历史的 31.7%。14B 和 32B 把压缩掉的成功率拿回大部分。

拦住执行,挡不住提议。Blocker 循环率 46.7%,步数 14.71,基线步数 15.00。仍会提出已执行调用的任务,DeLoop 从 71.3% 降到 13.6%,不拦截时是 69.8%。

训练对要求后来真的跳出,否则丢掉。8000 对、一个 epoch 把 8B 打到 6.1%;加到 9.4k 对,循环率停在 6.7%。

局限与存疑

8B 循环率降到原来的约九分之一,成功率只多 0.8 个点。把 loop 当成失败主因,这两个数对不上。清掉空转主要省步数,解题率到 14B、32B 才动。没有「其余行为不变、只打断循环」的实验。

正例是之后第一个不同的非循环动作,82.6% 的对来自失败运行。250 个留出前缀上,贪心重发 looping action 从 15.6% 降到 6.0%,照抄跳出动作仍占 18.8%–20.8%,Done() 从 3.6% 升到 12.4%–26.0%。学习率 3×10⁻⁵ 时,循环率 0.7%、步数 1.60、成功率 19.3%;β=0.01 时步数 2.06、成功率 16.3%。默认配方守着成功率,再推就会少做。

AppWorld、ScienceWorld 循环下降的同时成功率下降,基线只有 7.0% 和 3.5%。Open-AgentRL 的循环率只少 5.5 个点。

认的是字符串精确重复,换写法的空转不算,也不会当负例。OpenHands 要连续四次相同才算卡住,这里一次就算。摘要和动作共用一套权重,摘要质量没有分开测。14B 的 DeLoop 是单次运行。一般能力只测了三块非 agent 基准。

术语

原文与代码

相关论文

全部论文解读