自己出题、自己判卷,LLM 就能自己进步吗?S3Gym 的答案是:没那么简单

你有没有过这种期待:把 Agent 部署出去,让它在环境里多跑几轮,自己攒经验、自己写错题本,然后越用越强?

说实话,这个想法现在几乎成了 Agent 圈的默认叙事。ReAct、Reflexion 那一波工作之后,大家都默认"给模型经验反馈,它就会变好"。但问题是谁真正系统地验证过这件事?绝大多数 Agent 基准测的都是"冻结策略"——模型部署那一刻什么样,评测结束还是什么样。自我改进这个环节,一直停留在口头承诺层面。

这篇 arXiv 2608.31100 的工作 S3Gym 就是冲着这个空白来的。它的结论说实话有点扎心:自我改进既不自动发生,也不均匀分布。模型能认出哪些动作是好的,不等于它能把这些经验变成可执行、可迁移的策略。中间那一步转化,恰恰是现在最卡脖子的地方。


📖 核心摘要

S3Gym 是一个评测 LLM 自我改进能力的交互式基准,把"自我改进"拆成三个耦合能力来单独测量:Self-Testing(主动探索收集诊断证据)、Self-Judging(给每步动作打分)、Self-Improvement(经验真正改变未来决策)。基准在 7 个文本游戏上运行,每个游戏配可执行的规则验证器,并且把宽松的探索环境和严格的 held-out 评估环境彻底分开。作者测了三条经验利用路径:直接把历史塞进上下文(History ICL)、压缩成摘要记忆(Summary Memory)、参数级训练(Qwen3-8B 上 SFT)。7 个主流模型的结果喜忧参半:摘要在 Tetris、Trust Evolution 这类"规则可压缩"的游戏上大胜(ΔNABA 最高 +8.43),但在扫雷、PvZ 这类依赖精确状态的游戏上反而把原始历史都比下去了(GPT-5.5 的 PvZ AUC⁺ 从 548.499 崩到 33.219);参数训练在 Trust Evolution 上从 0 分涨到最高 30,却在 PvZ 上造成严重负迁移(23 分全崩到 6 分)。这篇论文的价值不在于证明了"自我改进可行",而在于把自我改进的失败模式逐个剖开给你看。


📋 论文信息

  • 标题:S3Gym: Can LLMs Turn Self-Testing and Self-Judging into Self-Improvement?
  • 作者:Jiajun Shi, Siyuan Tao, Yuhao Wu, Zexuan Wang, Jingyuan Zhang, Jiaheng Liu, Xinping Lei, Xinrong Zhang, Siyuan Fang, Zhewen Tan, Tianle Cai, Junhao Fang, Jiameng Huang, Yueyang Wang, Jinkai Liu, Yuxuan Zhang, Jian Yang, Zhoujun Li, Shen Yan, Wenhao Huang, Ge Zhang
  • 机构:ByteDance Seed、M-A-P、TokenWave.AI
  • 发布日期:2026 年 8 月 31 日
  • 链接:https://arxiv.org/abs/2608.31100 | 项目主页:https://self-developing-agents.github.io/

🎯 为什么需要这样一个基准

说到这个,先聊聊现状。过去一年"自我改进 Agent"方向的论文多到看不完:2024 年 Reflexion 提出用语言化的自我反思替代梯度更新;2025 年的 SPIRAL 用 TextArena 的自博弈训练出零样本迁移的推理能力;2026 年初的 MEMO 把持久记忆和优先级回放组合起来,只用 2000 局自博弈就把 GPT-4o-mini 的胜率从 25.1% 拉到 49.5%。同期还有好几篇综述(比如 Self-Improving Agents in the Era of Experience)专门梳理这块。

但仔细看,这些工作都在回答"我的方法能不能改进",而不是"模型自我改进这件事本身靠不靠谱"。评测协议五花八门,经验利用方式混在一起,改进曲线和运气成分分不开。

S3Gym 的思路是把问题正交拆开。自我改进要发生,得先过三关:模型敢不敢主动去试(Self-Testing)、能不能判断自己试得对不对(Self-Judging)、判断完能不能真的改进行为(Self-Improvement)。任何一关断了,整个链条就是空转。

图 1:S3Gym 的核心类比——人类的自我测验、自我评判、自我改进对应到 LLM 上的探索任务、打分总结、以及通过 ICL/记忆/训练三条路径变成改进后的 Agent

图 1:左边是人类学习者的三步循环(观察洞穴壁画做实验、在清单上打勾打叉做评判、把经验传给下一代),右边是 LLM 的对应物——在文本游戏里探索、给轨迹打分写进记忆、通过 ICL/Memory/Training 更新自己。这张图把整篇论文的骨架讲清楚了。


🏗️ 方法核心:把探索期和考试期彻底分开

这个基准最关键的设计决策,我的第一反应是"早该这么做了":探索环境和评估环境是两套配置、两批种子,评估轨迹永远不会回流到经验里

为什么要这样?你想想,如果模型在探索时玩的是宽松模式(比如扫雷多送两条命),评测也用同样配置,那它完全可能靠刷熟特定实例涨分,而不是真的学到了东西。S3Gym 在评估端用更严格的规则或更复杂的配置:扫雷探索期多给两条命,评估期踩一次雷就结束;贪吃蛇探索期撞墙算无效动作,评估期直接终止;Chess 探索期 12 个棋子,评估期加到 22 个。

图 2:S3Gym 整体框架——上方是 7 个文本游戏套件和三条经验固化路径,中间是探索循环(Agent 在环境里多步交互、自评判打分、产出带判断的轨迹),下方是周期性 held-out 评估流水线

图 2:整个循环是 Explore → Judge → Consolidate → Update → Evaluate。注意下方那条评估流水线:Eval@0 先测基线,每探索 3 个 episode 插一次严格评测,评估用的种子和探索完全不相交,评估轨迹也不会被加回经验——这是防止"刷题涨分"的核心闸门。

七个游戏,七种能力面

游戏 考察能力 探索配置 评估配置 步数上限
Chess(状态推理) 隐规则归纳 15×15 棋盘 12 子 22 子 5
Minesweeper(扫雷) 约束满足 多两条命 踩雷即终 64
Nullify(数值消零) 数值变换 3–7 步构造 5–10 步构造 50
Tetris(俄罗斯方块) 空间规划 10×10 棋盘 8×8 棋盘 64
Snake(贪吃蛇) 长程控制 碰撞算 no-op 碰撞即终 64
PvZ(植物大战僵尸) 资源分配 3×7 战场 5×6 战场 64
Trust Evolution 多智能体博弈 对手偏简单 对手均匀采样 10

选得挺讲究——隐规则归纳、约束满足、数值变换、空间规划、长程控制、资源分配、多智能体策略,基本覆盖了文本 Agent 的常见能力维度,而且每个游戏都有可执行的规则验证器,奖励是程序算出来的,不需要另一个 LLM 当裁判。

Self-Judging 怎么测

每步交互时,模型要同时输出动作和自评分:\((a_{x,i}, s_{x,i}) = \pi_{\theta_t}(O_{x,i}, H_{x,i}; Z_t^{(p)})\)。这里的 \(s_{x,i}\) 不是那种"我有 90% 信心"的空话,而是模型对这一步即时奖励的估计。环境验证器算出的真实奖励 \(r_{x,i}\) 在探索阶段对模型不可见,只在基准侧留着做对照——这样自评分和真实奖励就能直接比,测出模型的判断力校准水平。

三条经验利用路径

同一个探索产出,走三条不同的路:

  • History ICL:把带分数标注的轨迹直接序列化拼进后续上下文,上下文预算 10 万 token,超了就从旧 episode 的尾部截断。保留全部细节,但贵、且受上下文长度钳制。
  • Summary Memory:每个 episode 开头做一次独立压缩调用,把历史提炼成三段式 Tips——要保留的策略、要避免的错误、下一轮的方向。当前 episode 仍是原始历史,只有跨 episode 的经验被压缩。
  • Parameter Training:探索轨迹加自评构建 SFT 数据(高分动作留正例,低分动作过滤或替换为纠正版),在 Qwen3-8B 上微调,产出 20 个连续 checkpoint 逐个在严格配置上测。

公平性控制做得还算干净:三条路径同一个基座模型、同一批探索种子、同样的交互预算和解码设置。

评测指标有三个:Avg(所有评估 checkpoint 的平均分)、Max(最高分,捕捉偶发能力突破)、AUC⁺(相对初始分的正改进面积,\(AUC^+ = \int_0^{30} \max(0, y(x) - y_0)\,dx\),用梯形积分算)。注意 AUC⁺ 只能在同一游戏内横向比,跨游戏分数尺度差太多。


📊 实验:自我改进既不自动也不均匀

主实验跑了 7 个模型(GPT-4o、GPT-4.1、o3-mini、Gemini-2.5-Flash、Gemini-2.5-Pro、GPT-5.5、Gemini-3.5-Flash),每个 30 个探索 episode、每 3 个插一次 3-episode 严格评测,共 11 个 checkpoint。

上下文级路径:摘要是选择性武器,不是普适升级

先给结论:Summary Memory 不是 History ICL 的无条件改进,它是一个选择性压缩机制——压缩对了地方就起飞,压错了细节就坠毁。

看 AUC⁺ 的对比就明白了:

模型 / 游戏 History ICL Summary Memory 变化
GPT-5.5 / Chess 0.474 16.840 起飞
Gemini-2.5-Flash / PvZ 24.402 238.501 起飞
Gemini-2.5-Flash / Minesweeper 0.000 7.794 从零到有
GPT-5.5 / PvZ 548.499 33.219 崩了
Gemini-3.5-Flash / Trust Evo 200.000 55.095 崩了
Gemini-3.5-Flash / Chess 12.280 0.000 归零

等等,同一个机制,为什么 PvZ 上一个模型起飞另一个坠毁?作者用 ΔNABA(归一化的超基线面积)做了配对比较,规律其实很清晰:

游戏 Summary 胜 History 胜 Mean ΔNABA
Tetris 5 1 +6.20
Trust Evolution 4 3 +8.43
Nullify 4 2 +2.79
Chess 3 3 +3.37
Snake 3 4 −0.81
Minesweeper 3 4 −1.12
PvZ 3 4 −2.11

Tetris、Trust Evolution、Nullify 这类游戏的胜利条件是能压缩成稳定策略规则的——"优先消行、保持低表面"、"收益结构持续利于背叛就总是 cheat"、"反向规划制造精确相反数"。摘要把跨 episode 的重复模式提炼出来,直接生效。

反过来,Minesweeper、PvZ、Snake 的胜利依赖精确的、状态 contingent 的局部信息:lane timing、阳光预算、蛇身的精确几何。这些细节一旦被压缩成"通用启发式"就失效了。几个典型的翻车案例:

  • GPT-4.1 玩扫雷,摘要给的是"扩展零区、标记确定雷"这种通用启发式,但它替代不了精确的约束传播,分数从 0.0606 掉到 0,ΔNABA −22.09。
  • GPT-5.5 玩 PvZ,摘要建议本身合理但太粗,刻画不了 lane timing 和阳光预算,分数 38.67 → 32.33。
  • GPT-4o 玩贪吃蛇,摘要漏掉了安全导航需要的精确几何,1.0 → 0。

说实话这个结果特别符合我的工程直觉。我之前在做类似记忆压缩的事的时候也碰到过一模一样的问题:摘要永远是"丢了不该丢的细节"才暴露出问题,而丢的是什么细节,只有到新状态下执行时才知道。

参数级训练:能内化,但极不稳定

RQ1 用 Qwen3-8B 做 SFT,结果是一幅冰火两重天的画面:

游戏 训练前 训练后 判断
Trust Evolution 0 最高 30,18/19 个 checkpoint 超基线,平均 8.684 最明确的成功证据
Chess 0 末端微弱爬到 0.0667 稀疏但正向
Snake 0 间歇性到 1 又回落 不稳
Minesweeper 0 全程 0 无改进
Nullify 0 全程 0 无改进
Tetris 0 全程 0 无改进
PvZ 23 所有更新 checkpoint 都是 6 严重负迁移

PvZ 这个负迁移值得单独说。模型训练前在 PvZ 上能拿 23 分,训练完所有 checkpoint 齐刷刷掉到 6 分。可能的原因有三个:对探索轨迹过拟合、宽松探索配置和严格评估配置的失配、自评分信号本身不可靠。到底是哪个,作者也没完全定位,需要轨迹级分析验证。但这个现象本身就是个警告:参数更新可能把已有的有效行为直接覆写掉

三个全程零改进的游戏,作者的解释是探索阶段产生的成功轨迹太少,监督信号根本立不起来。这暴露了一个鸡生蛋蛋生鸡的问题——稀疏奖励任务里,模型要先碰巧成功几次才有东西可学,可它恰恰是因为学不会才成功不了。

Self-Judging 的可靠性:判得对,不代表改得好

Table 5 覆盖了 98 个 run、116,117 个 transition 的步级评判可靠性:

游戏 事件一致率 NMAE 过度自信 自信不足
PvZ 0.881 0.882 0.032 0.087
Snake 0.879 0.121 0.110 0.011
Tetris 0.846 0.041 0.151 0.002
Nullify 0.827 0.056 0.170 0.004
Minesweeper 0.820 0.524 0.062 0.118
Trust 0.665 0.392 0.291 0.044
Chess 0.496 0.141 0.365 0.139

两个有意思的点。一是 Chess 的事件一致率 0.496,基本就是抛硬币,同时过度自信率 0.365 全场最高——模型在奖励依赖精确多棋子状态预测的任务上,既判不准又自信爆棚。二是 PvZ:一致率最高(0.881),NMAE 却最差(0.882),模型能判断"这步有没有用",但对"有多大用"严重错估。

但真正让我在意的发现是这个:作者算了个判断准确度和改进幅度的块级相关性,结果全基准范围 \(\rho(A, g) = -0.010\)\(\rho(-E, g) = -0.018\),约等于零。run 级分析用 NABA 指标,事件一致性和持续改进只呈弱负相关(Pearson r −0.23)。

也就是说——判得准和改进得了之间几乎没有因果关系

这句话值得单独成段。整个 Reflexion 式范式的隐含假设就是"模型能识别错误,就能改正错误"。S3Gym 用数据告诉你:识别成功动作只是入场券,把反馈转化为可复用的状态抽象、决策规则和探索策略,才是瓶颈所在。

有效摘要的两个条件

RQ3 的案例分析提炼出了 Summary Memory 生效的必要条件,其实就两条:第一,分数必须识别出有意义且可复用的失败模式;第二,摘要必须把这些模式转化为精确到能在新状态直接执行的动作规则。缺一条,摘要就是正确的废话。


🤔 我的判断

这篇论文值不值得读?我的答案是:如果你在做 Agent 记忆、经验回放、自改进训练任何一块,值得细读。

它的定位很清楚——不是方法论文,是诊断工具论文。S3Gym 没提出任何新的改进算法,它做的事是把"自我改进"这个被用滥的词变成可测量的东西,然后把三条主流路径挨个放上手术台。最后的画面不算好看:上下文级经验对部分模型-游戏组合有效,但最优路径强依赖任务结构;参数训练能出大收益也能出大事故;自评判的准确性和实际改进之间几乎不相关。

几个我觉得可以再追问的地方。一是参数训练路径只测了 Qwen3-8B 一个模型,SFT 一种算法,负迁移的结论能不能推广到更大模型或 RL 类方法,不确定。二是 7 个游戏全是文本游戏,PvZ 这种被文本化之后和真实游戏差距不小,"状态 contingent 信息"的失败模式在多模态环境下会不会更严重,论文没碰。三是摘要压缩用的就是模型自己,没有外置更强的压缩器——摘要失败到底是任务不可压缩,还是压缩器不够强,这两种解释没法从实验里区分开。

但反过来想,这些留白恰恰说明基准的定位达到了:它不关门,它开门。作者自己也说,未来的自我改进 Agent 需要的不是更多交互数据,而是更好的判断校准、记忆选择和轨迹过滤。这个判断我认同。

跟同期工作比,MEMO 证明了"记忆+回放"在双人对弈游戏里高效,SPIRAL 证明了自博弈 RL 可以迁移,S3Gym 则退一步问"这些改进的前提条件成立吗"。三者是互补的——前面两家在造引擎,这家在造仪表盘。坦率地讲,造仪表盘的论文通常不如造引擎的性感,但长期看可能更值钱。

工程上的启发也直接:如果你在做 Agent 记忆系统,别默认"摘要压缩一定优于原始历史"。先想清楚你的任务里,可复用的知识是规则形态的还是状态形态的。规则形态的(谈判策略、规划模板)大胆压缩;状态形态的(精确几何、时序预算)保留原始轨迹,压缩就是慢性自杀。


觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我