OpenAI 在 ARC-AGI-3 上把分数拉高 3 倍,靠的不是换模型
同一个模型、同一批游戏,换掉两项上下文设置后,分数从 13.3% 到 38.3%。这不是一个“模型突然变聪明”的故事,而是一次很具体的提醒:评测成绩里,运行模型的方式也占了一大半。
为什么值得看:很多人把基准榜当作模型本体的成绩单。但这次最有价值的不是 38.3% 这个数字,而是它把一个常被藏在代码里的变量摊开了:一个 agent 能否记住自己的推理和历史动作,会改变它看起来“会不会做事”。
先说结论:这次改的不是模型
ARC-AGI-3 是一套陌生的二维小游戏。agent 看不到规则,只能不断观察画面、操作、试错,再推断这关的机制。它考的不只是单步答题,而是能不能在长流程里积累经验、修正策略。
OpenAI 最初看到 GPT-5.6 Sol 在这套基准上分数很低,随后把注意力从“它为什么不会玩”转向“它每一步到底看到了什么”。答案是:官方 harness 在每次操作后丢弃了模型的私有推理;对话变长时,又会从最早的动作开始截断历史。
- 每次动作后不保留私有推理
- 历史过长时滚动删除最早内容
- 模型要反复重新理解游戏
- 跨回合保留先前的推理状态
- 过长时压缩成摘要,而非直接遗忘
- 模型能沿用假设、计划和失败经验
两个设置,到底修复了什么
保留推理:让“我为什么这么做”留在下一步
传统聊天式调用很容易只把上一轮可见的文本或工具结果接回去,内部推理却不在上下文里。对于需要多步试探的游戏,这相当于一个人每按一次键,就忘了刚才为何做出那个判断。OpenAI 在 Responses API 中沿用上一次响应,使模型能带着此前的推理继续行动。
Compaction:不是删除旧记忆,而是把它收进摘要
滚动截断简单,但代价是早期观察、已经排除的路径和关键转折会直接消失。compaction 则是在上下文接近上限时,将旧内容压缩为可继续使用的状态。它并非无损记忆,却比“把最早部分剪掉”更适合需要长期积累的任务。
为什么分数涨了,token 反而更少
直觉上,给模型留更多上下文似乎应该更贵。但 OpenAI 观察到相反的结果:它不必在每一次动作前重建世界模型,也不会不断重复已经做过的解释。记忆没有让它“想更长”,而是让它少做无谓的重想。
评测很少只在测模型本身;它同时在测 API 设置、harness 设计和提示方式这些不那么显眼的选择。
OpenAI 原文要点,中文意译
这对做 agent 的人意味着什么
- 把上下文当作产品能力。工具调用记录、失败原因、决策依据,不能只当日志放在系统外面。
- 不要把压缩和截断混为一谈。截断只是控制长度;好的压缩要保留目标、约束、已验证事实和未解决的分支。
- 评测要写清 runner。比较两个模型时,应同步披露 API、提示、上下文策略、工具和预算,否则榜单会把环境差异误写成模型差异。
- 先测任务中的遗忘点。一旦 agent 在多步任务中反复犯已经犯过的错,优先检查状态传递与上下文管理,而不是立刻换模型。
也别把这件事理解成“榜单没有意义”
ARC 采用通用 harness,是为了减少为某个厂商量身优化带来的不公平;这个出发点合理。OpenAI 的回应则是,现实产品里的 ChatGPT 与 Codex 本来就使用保留推理和压缩,因此完全剥离这些设置,也会低估其部署形态的能力。
两种立场其实在问不同问题:前者问“一个极简、统一接口下的模型表现如何”,后者问“用户实际使用的整套 agent 系统表现如何”。真正可用的评测不该只选其一,而要明确自己回答的是哪一个问题。