CodexQA

Industry & PracticeResearch & Benchmarks

自测不等于会改进:字节 S3Gym 把经验拆成三条链路来评

CodexQA 团队12 min read

字节 Seed 的 S3Gym 把 Agent 自改进拆成自测、自评和三条吸收经验的通路:原始历史、摘要记忆和参数训练。七个文本游戏上,摘要不是历史的无条件升级,Qwen3-8B 训练在 Trust Evolution 抬升,在 PvZ 上出现负迁移。

In this piece

自测不等于会改进:字节 S3Gym 把经验拆成三条链路来评

字节跳动 Seed 在 2026 年 8 月 31 日公开了 S3Gym(Self-Testing, Self-Judging, and Self-Improvement Gym,用来测模型能不能把自测、自评变成后续行为改进的交互基准)。现有 Agent 基准大多把模型当成固定策略,回答的是「此刻能力如何」。S3Gym 改问另一件事:模型能否主动试策略、判断这段经验值不值得留,再用它改变以后的决策。

协议把宽松探索和更严的留出评测拆开,落在七个带可执行校验器的文本游戏里。经验进入后续行为有三条路:History ICL(把带自评分的原始轨迹直接放进后续上下文)、Summary Memory(把轨迹压成可复用规则、错误和下一步方向),以及参数 Training。结论不是「多跑就会变好」。上下文经验能抬高一部分模型–游戏组合,但哪条路更好取决于任务结构;参数训练在部分任务上增益明显,也会不稳定,甚至出现严重负迁移。认出成功动作不够,还要把反馈变成可执行、可迁移的策略。

为什么固定策略基准看不出会不会变好

大模型已经被当成会循环执行「观察–推理–动作–反馈」的 Agent,用在自动研究、软件工程和开放决策里。AgentBench、AgentBoard,以及 TextWorld、ALFWorld、ScienceWorld 这类环境,评的是多轮决策、探索和任务完成。轨迹主要用来记完成情况或诊断失败,不回答经验有没有变成下一次更好的行为。

作者把经验学习拆成三件互相依赖的事。Self-Testing 是去试策略、收集有诊断价值的证据。Self-Judging 是判断动作、结果以及能不能再用。Self-Improvement 是让这些经验改变以后的决策。经验可以停在三个持久度上:短期把观察、动作和分数放进上下文;中期压成自然语言规则、失败模式或技能,Reflexion(用文字反思引导下一轮)和 Voyager(把技能收进可增长技能库)属于这一类;长期则把筛选或修正后的轨迹写进参数,方向上接近 STaR、ReST 和 Re-ReST。原始历史留细节但吃上下文,摘要紧凑但取决于判断质量,训练能内化但也会放大判错的经验。

基准故意不把校验分数交给模型

产业部署里,把通用模型做成能用的系统,往往要同时补三块:把含糊目标写成约束和成功标准,先造出测试或评判才能知道有没有变好,以及把工具、状态和校验接口搭起来。S3Gym 只隔离第二层:面向 Agent 的反馈,以及这条反馈能撑起的改进环。环境校验器仍是外部真值,但探索阶段不把校验器算出的奖励交给模型。模型必须自己产生证据、自己评判,再变成更好的行为。自评和真实结果是否一致、被判定的经验会不会迁移,因此可以分开看。论文把相邻工作划开:Aspire 看含糊部署需求如何变成能力增长,HarnessDev 看模型如何搭建并维护执行系统,S3Gym 只看可执行环境里的「经验到改进」。

和只评进化结果或单一适应机制的基准相比,S3Gym 在同一环境和同一交互预算下比较多种吸收经验的方式,并在不相交、通常更严的配置上重测。它同时记下模型自评和可执行环境结果,用来区分失败来自判错,还是来自判对了却变不成可迁移行为。

一轮改进怎么跑

一个自改进循环有五段:在相对宽松的配置里探索并积累轨迹,评判自己的决策,再把经验收成原始历史、摘要记忆或训练样本,最后在更严的留出配置上评测。

每个游戏有多局独立 episode,每局由多步交互组成。每一步模型同时给出动作和自评分。这个分数是它对「按规则这一步即时奖励是多少」的估计,不是自由置信度。环境执行动作后,返回下一观察、可见反馈、校验器步奖励和是否结束。可见反馈可以继续用;步奖励留在基准侧。主设定里,探索期间不把校验奖励暴露给模型,这样才能拿自评和真奖励比,又避免真奖励直接指导后续决策。局内历史记下的是模型自己的分数和状态转移。局结束或到达步数上限后,环境给出整局校验分。步奖励用来评 Self-Judging 可不可靠,整局分用来评行为。两条信号在主设定的探索阶段都不给模型。

探索分布保留主任务,但更宽松,例如更小状态空间、更弱失败惩罚或更多试错。评测分布用更严规则或更复杂配置。一个循环是若干探索局,接着若干评测局。两边随机种子不相交,评测轨迹不写回历史、记忆或训练集。对每条通路、每个游戏,报告循环后的评测分,以及相对原模型的增量。前者是最终能力,后者是这段交互历史实际带来多少好处。

三条通路从同一基座出发,共用探索种子、评测种子、交互预算和解码设置。

  1. History ICL。 带分数标注的轨迹直接放进后续上下文。细节还在,但受上下文长度限制。
  2. Summary Memory。 模型把已判定轨迹压成要保留的策略、要避开的错误,以及下一轮的具体方向。评的是能不能从长历史里抽出可迁移策略。
  3. Training。 探索轨迹和自评变成监督微调样本再更新参数。高分动作留下,低分动作滤掉或换成纠正动作。它被标成辅助通路,因为多了上下文改进里没有的优化变量。

七个游戏和主实验口径

七个文本游戏覆盖互补的交互推理:Chess、Minesweeper、Nullify、Tetris、Snake、PvZ(植物大战僵尸式的资源与车道生存)、Trust Evolution。分别对应潜规则归纳、约束满足、数值变换、空间规划、长程控制、资源分配和多智能体策略。KORGym 用多样文本游戏评推理;S3Gym 沿用可校验的游戏环境,但评的是经验驱动的改进,而不是背下某一局或某一个种子。每个游戏都有探索配置和评测配置。探索通常更宽,评测则收紧终止条件、加大搜索空间或加密动态。

主表只保留七个游戏结果都齐的闭源模型:GPT-4o、GPT-4.1、o3-mini、Gemini-2.5-Flash、Gemini-2.5-Pro、GPT-5.5、Gemini-3.5-Flash。任一游戏结果未完成的模型不进主表,避免覆盖面不同还放在一起比。主实验先比两条非参数通路:History ICL 和 Summary Memory。

运行配置是:上下文预算 100,000 token,单次新生成最多 14,000 token,控制器默认每局最多 64 步,短于 64 步的游戏用自己的上限覆盖。探索共 30 局,每 3 局做一次评测,每个检查点跑 3 局严格模式。检查点取 x 属于 {0, 3, 6, …, 30}。

每个模型–游戏对报告三个互补指标。Avg. 是所有可用评测检查点的平均分。Max. 是观察到的最高分。AUC+ 是初始分之上的正面积:在 0 到 30 上,对 max(0, y(x) − y0) 做分段线性梯形积分。明确标记的并发失败点不进均值和最大值;算 AUC+ 时,相邻有效检查点直接相连。游戏分数量纲不同,原始 AUC+ 只能在同一游戏内比,不能把原始面积跨游戏平均。跨游戏一致性看的是游戏内名次,或「有几个游戏变好了」。

主结果:摘要不是历史的无条件升级

自改进潜力由基座、经验通路和环境一起决定。History ICL 下,Gemini-3.5-Flash 的 Chess 最强,Snake 和 Trust Evolution 的 AUC 最大;GPT-5.5 在更脆的 Minesweeper、Nullify、Tetris 上领先,PvZ 的 AUC 最大。换成 Summary Memory 后,GPT-5.5 在 Chess、Nullify、Tetris 上变成最强,Snake 的平均分和最高分也最高;Gemini-3.5-Flash 仍在 PvZ 和 Trust Evolution 的平均表现上最强。基座强,不等于更会取出、压缩并使用自己的经验。

摘要对「长轨迹不好直接用」的模型可以很有帮助。Gemini-2.5-Flash 的 Minesweeper AUC+ 从 ICL 的 0 升到 Summary Memory 的 7.794,PvZ AUC+ 从 24.402 升到 238.501。GPT-5.5 的 Chess AUC+ 从 0.474 升到 16.840。压缩也会丢掉依赖具体状态的证据,或把错误判断留住。GPT-5.5 的 PvZ AUC+ 从 548.499 掉到 33.219。Gemini-3.5-Flash 的 Chess AUC+ 从 12.280 掉到 0,Trust Evolution 从 200.000 掉到 55.095。

七个游戏不是同一种改进形态。Chess、Minesweeper、Nullify 分数稀疏或高度离散,单独一局成功就能把 Max. 拉高,Avg. 和 AUC 却仍然很小。Tetris、Snake、PvZ、Trust Evolution 的序列反馈更密,持续适应的差别更清楚。Max. 抓偶尔突破,Avg. 看整体,AUC+ 把持续抬升和孤立尖峰分开。

参数训练:Trust Evolution 留住了,PvZ 被写坏了

RQ1 问的是:不在推理时携带历史或外部记忆,只靠参数更新,能不能内化交互经验。训练更持久,风险也更大。判错或有噪声的轨迹可能写进模型,覆盖原先有效的行为。

实验用 Qwen3-8B,连续 20 个检查点。epoch 0 是原模型,epoch 1 到 19 用探索轨迹更新。每个检查点都在七个游戏的严格配置上评测,不再使用 History ICL 或 Summary Memory。报告训练后的平均分、最高分、最终变化 ΔFinal = y19 − y0,以及初始基线之上的正面积。

Trust Evolution 上增益清楚:分数从 0 升到最高 30,19 个更新检查点里有 18 个仍高于初始基线。训练后平均 8.684,AUC+ 为 163.5。Chess 和 Snake 的增益有限或短暂。Chess 大多数检查点仍是 0,最后一站到 0.0667。Snake 在 epoch 8、12、15 到达 1,随后回到 0。Minesweeper、Nullify、Tetris 全程为 0。作者给出的一种解释是探索里成功轨迹太少,监督信号起不来,但要确认这一点还得做轨迹级分析。

PvZ 出现明确负迁移。初始分 23,每一个更新后的检查点都是 6。可能原因包括过拟合探索轨迹、宽松探索和严格评测不匹配,或 Self-Judging 不可靠。因此训练级自改进不只取决于能不能更新参数,还取决于被内化的经验是否够好、够多样、判得对。

自评只是部分可靠,而且判得准并不预测下一站变好

Self-Judging 决定轨迹怎么选、摘要怎么写、训练样本怎么造。自评和真奖励对不齐,就会把有害动作当有用经验留下,或丢掉本该留的转移。

对每一步比较模型分数和真奖励。事件一致率看双方是否都认为出现了正结果。因为各游戏奖励尺度不同,另外报告按游戏最小–最大归一后的平均绝对误差 NMAE。还报告过度自信 Pr(自评 > 0 且真奖励 ≤ 0) 和自信不足 Pr(自评 ≤ 0 且真奖励 > 0)。范围是七个目标模型和七个游戏、两条上下文条件,共 98 次运行、116,117 步转移。

PvZ、Snake、Tetris、Minesweeper、Nullify 的事件一致率相对高,但部分是因为零奖励转移占比大。Tetris 和 Nullify 的 NMAE 低;PvZ 二元一致率高,校准误差却最大。模型可以认出「这一步看起来有没有局部用处」,同时严重估错它的数值。Chess 接近随机一致,过度自信最高:着法在句法上可以完整,棋子位置仍然放错。Trust 同样一致率弱、NMAE 高、过度自信明显。奖励取决于隐藏动态、对手策略或精确的多物体状态,而不是眼前局部后果时,自评更不可靠。

作者再把探索轨迹切成相邻评测检查点之间的块,看块内事件一致率、归一校准误差,以及下一次严格评测的归一分数变化。全基准上,一致率与后续增益的相关 ρ(A, g) = −0.010,校准与增益的相关 ρ(−E, g) = −0.018。高低判断质量三分位的分差也小,且略偏负。Minesweeper 上事件一致率和后续增益有弱的正相关,校准耦合仍然可以忽略。

持续改进用 NABA(normalized above-baseline area,把初始分之上的面积按尺度归一)衡量。初始分为 0 时,用第一个非零分数尺度作分母。事件一致率与 NABA 只有弱负相关:Pearson r = −0.23,Spearman ρ = −0.11。正奖励比例和正自评分比例只有弱正相关。局部判得准,不足以产生自改进。还得把反馈变成可复用的状态抽象、决策规则和探索策略。

摘要什么时候比原始历史好

对每个模型–游戏对,ΔNABA 定义为 Summary Memory 的 NABA 减去 History ICL 的 NABA。正值表示压缩比留下原始轨迹更有利于改进曲线。平均来看,Nullify、Tetris、Trust 上摘要更好。这些环境容得下紧凑规则:倒着规划到精确抵消、保住稳定的盘面表面,或按推断出的对手策略调整行为。Minesweeper、PvZ、Snake 上原始历史平均更好。它们依赖局部棋盘、车道时机、危险位置和部分可观察的风险。摘要可以留下正确的高层目标,同时丢掉执行所需的状态细节。

有效摘要要把分数翻译成下一局能执行的规则。GPT-5.5 在 Trust 上把「收益结构持续偏向背叛」收成明确策略:观察到该结构就背叛,避免不必要的互惠试探。第一步选 cheat,环境奖励 3.0,ΔNABA = +66.89。o3-mini 在 Tetris 上要求同时看当前块和下一块、试旋转、优先消行、保持低表面且不留孤立空洞。第 10 局消了四行,两次选择 8 0,自评和真奖励都是 1.0,ΔNABA = +14.42。Gemini-2.5-Flash 在 Minesweeper 上把经验收成局部数字约束:扩展 0 区、标出被迫的雷、翻开可证明安全的格子。一次 flag (2,2) 得到 0.0625,ΔNABA = +25.49。Gemini-3.5-Flash 在 Nullify 上要求倒着配出精确相反数、用取整去掉小数,并在每次合并后跟踪下标。末端单位为 −19 和 19 时选择 0 1,奖励 1.0,ΔNABA = +8.50。

失败摘要往往方向对、粒度不够。GPT-5.5 在 PvZ 上强调产阳光、早期防守、Wall-nut 拖延和覆盖受威胁车道。开局 X 1 0 得到奖励 1.0,但严格分从 38.67 掉到 32.33,ΔNABA = −2.56。建议合理,却抓不住车道时机、当前僵尸位置和阳光预算。Gemini-3.5-Flash 在 Chess 上只提醒核对每种子的走法和坐标,低分局以 END 结束、总奖励为 0,ΔNABA = −33.27。GPT-4.1 在 Minesweeper 上给出从角落开始、只标确定的雷、没有安全进展就停,但在生命用尽后仍 uncover (8,0),检查点分数从 0.0606 掉到 0,ΔNABA = −22.09。GPT-4o 在 Snake 上只说朝食物走并避开墙、障碍、身体和直接回头,面对具体棋盘选择 DOWN,没有奖励,严格分从 1.0 掉到 0,ΔNABA = −22.00。

因此摘要要满足两件事:分数必须指出可复用的失败模式,而不只是「这局结束得很差」;摘要必须变成新状态下够精确的动作规则。它是选择性机制,不能普遍替代状态信息很密的原始历史。

限制

自改进不是自动发生的,也不是各任务均匀发生。摘要在规则可压缩时有用,在反应式控制、细节决定成败时常常不如原始历史。当前实现里,用自产轨迹做参数训练仍然不稳:Qwen3-8B 只在 Trust Evolution 上表现出清楚且持续的内化,三个游戏没有可测改进,PvZ 还被持续写差。局部自评和下一站改进几乎不相关,Chess 与 Trust 的判断尤其不可靠。主表排除了结果不完整的模型。游戏分数量纲不同,不能把原始 AUC 跨游戏平均后再排名。探索成功轨迹不足是否导致三个游戏训练分始终为 0,论文写明还需要轨迹级分析,不能直接当成已经证实的原因。校验器分数在主设定的探索阶段对模型不可见,这是协议的一部分,不是线上业务里一定能复现的反馈条件。

字节跳动,Jiajun Shi、Siyuan Tao、Yuhao Wu、Zexuan Wang、Jingyuan Zhang 等,S3Gym: Can LLMs Turn Self-Testing and Self-Judging into Self-Improvement?,2026-08-31,https://arxiv.org/abs/2608.31100

Found it useful? Pass it on

WeChat

Scan with WeChat to open it on your phone and forward it.

Subscribe via RSS

Submit a correction