AWS工程师用Strands框架和Claude Opus 5攻克ARC-AGI-3基准测试,该测试要求AI在无规则提示下自主探索陌生环境并推断目标。
AI 最热情、最乐观的布道者们承诺了一个 AI 将通过创新摆脱社会最大问题的未来。AI 系统将开展科研、发现新药和新材料、运行工程项目、自主执行通常需要专家团队长时间协作才能完成的复杂任务。
但实现这一承诺需要的不仅仅是好的 prompt 和基础的上下文工程。AI 系统需要追求长期目标、遭遇从未见过的情况、从失败的尝试中学习、调整策略,并在没有人类告诉下一步做什么的情况下持续推进。
它们需要解决训练数据中没有出现过的新问题。但今天的模型真的具备这种能力吗?
这正是 ARC Prize 试图用 ARC-AGI-3 回答的问题之一——这个基准测试将 AI 系统投入陌生环境,不给它们规则,甚至不告诉它们目标是什么。系统必须通过实验弄清环境是如何运作的,在这种模糊的语境中学会"赢"意味着什么。
AWS 工程师构建了一个 Agent 来挑战它。使用 Claude Opus 5 和开源的 Strands Agents SDK,该 Agent 在一次 8 小时的运行中完成了 ARC-AGI-3 全部 25 个公共环境下的 183 个关卡,相对人类动作效率(RHAE)得分达到 99.95%,token 花费约 830 美元。NVIDIA 最近也报告了类似结果,其 AVO Agent 同样使用 Opus 5,在公共游戏集上取得了 100% 的 RHAE 得分。
对比一下 ARC Prize 对 Opus 5 的标准评估——在 ARC-AGI-3 上得分 30.16%。模型是同一个,但围绕它的系统完全不同。
这些结果给我们提供了一些数据,表明 Agent 框架对于从 AI 中获取想要的东西有多重要。单独的模型提供推理和判断能力,但框架给它一套周围系统来管理上下文、维持状态、执行动作、观察后果,以及与周围世界进行交互。如何构建这个框架很重要,因此拥有成功处理这类长期任务的开源案例,让我们有机会跳出基准测试分数,理解哪些设计选择真正产生了差异。
我与 AWS 的 Strands 团队密切合作,整个 Strands ARC-AGI-3 框架是开源的。让我们深入了解它是如何工作的以及 Agent 的运作机制。你可以在 GitHub 上找到代码。
ARC-AGI-3 的公共与私有游戏集
在我们深入细节之前,我确实想澄清一件事,尤其是对那些不太熟悉 ARC-AGI-3 如何运作的人。
公共游戏集有 25 个游戏,本质上是练习题,人类也可以玩这些游戏。但正式的 ARC Prize 排名来自私有的、预留的评估,2026 年的竞赛在 Kaggle 上离线进行,托管的 API 模型完全不允许参与。公共集为研究人员提供了一个共同的环境集,用于开发和实验他们的 Agent 系统,而竞赛则用全新的、未见过的环境来评估它们。
竞赛仍在进行中。但这并不意味着公共结果没有给我们任何有用的信息。在公共基准上取得满分仍然是关于哪些 Agent 架构能成功处理长期任务的强烈信号。
Strands 框架内部
首先,需要知道的是 Agent 在其系统 prompt 中从零开始,没有任何游戏知识。你可以直接查看代码来了解完整的系统 prompt。
可用的控制以通用标签呈现,比如 ACTION1、ACTION2、ACTION3,而不告诉 Agent 这些动作实际上是做什么的。甚至棋盘本身也是以原始数值表示的。如果它想知道任何东西是做什么的,它必须尝试一下并观察会发生什么。
这个 prompt 在所有 25 个游戏中都是相同的,Agent 对游戏的全部了解都来自游戏过程。那么,如果它什么都不知道,Agent 是如何在游戏棋盘上导航的呢?
在 Agent 进行第一回合之前,框架将初始棋盘状态写入游戏日志。然后模型被告知读取该日志,分析棋盘,决定它想尝试什么动作。
为此,框架为 Agent 提供了一小套用于处理文件和代码的工具。它可以读取文件、用 grep 和正则表达式搜索文件、编写和编辑文件,以及执行 Python。因此,尽管棋盘没有直接粘贴到模型 prompt 中,Agent 仍可以通过日志检查棋盘,并使用这些工具开始弄清楚它在看什么。
一旦 Agent 选择了一个动作,框架执行它并将动作和结果棋盘状态记录回日志。然后 Agent 可以检查发生了什么变化,形成关于其动作做了什么理论,并决定下一步想尝试什么。每个新动作和结果棋盘状态都会为那段不断增长的历史增添一条证据。
将这些历史保存在文件中而不是不断地直接添加到上下文窗口中是很重要的,因为事情会很快变得失控。单个棋盘是 64x64 的,经过数百次动作,Agent 可以构建一个巨大的交互日志,可以增长到数十兆字节。
Agent 可以使用其工具来决定历史中哪些部分真正有用,执行自己的上下文工程。它可以搜索以前的动作、编写 Python 脚本来比较棋盘状态或寻找模式、保存关于它已经弄清楚的内容的笔记,并使用这些发现来决定下一步尝试什么。
Agent 被赋予的特定工具并非凭空而来。该方法基于 PRO-LONG,它测试了使用 GPT-5.5 的 Agent 在 ARC-AGI-3 上的表现,因为逐步给它更多处理交互历史的方式。
仅对历史具有只读访问权限时,Agent 得分 23.1%。添加 grep 和正则表达式提高到 27.2%。但最大的飞跃来自给 Agent 提供 Python 访问权限,将分数推到 38.3%。最后,添加写入和编辑文件的能力使其达到 41.2%。
从给 Agent Python 工具带来的飞跃来看,这意味着仅仅给 Agent 访问其历史是不够的,但给它一种程序化地分析和从历史中得出洞察的方式可以显著提升性能。
对于 Strands 的运行,在 25 个游戏中,Agent 为自己编写了 734 个脚本。其中一些脚本捕捉了 Agent 关于游戏运作方式所学到的东西。它构建了解析器来解释棋盘状态、渲染器来表示棋盘,甚至构建了游戏机制的模拟器。
团队将其中一些脚本描述为小型世界模型。在 25 个游戏中的 10 个里,Agent 导入了它早期编写的代码并在其基础上继续构建。
这些工具也在一个没有网络访问权限的 bubblewrap 沙箱中运行,写入权限仅限于 Agent 的工作空间。这意味着 Agent 可以分析它通过自身交互学到的所有东西,但不能上网找攻略或检查底层游戏实现。
相对人类动作效率
Agent 通过了所有关卡,得分 99.95% 相对人类动作效率(RHAE)。RHAE 是衡量 Agent 解决游戏的效率的指标,通过将其在每个关卡上采取的动作数量与人类第一次玩该游戏时的基线进行比较。这是一个可以说比单纯完成更重要的指标,因为 ARC Prize 将 AGI 定义为"一个能够匹配人类学习效率的系统"。
一个 Agent 最终可以通过采取数千次动作并穷尽尝试每一种可能性来解决游戏,但这不能展示与人类相同的学习效率。RHAE 帮助我们衡量这种差异。以下是 Strands Agent 的详细分解:
在 183 个关卡中的 160 个上,Strands Agent 匹配或超过了人类动作效率基线。在这 160 个关卡中的 150 个上,它的表现在足够好以获得 ARC Prize 的最高单关效率得分。因此,尽管总体得分是 99.95%,大多数时候它实际上表现优于人类基线。你可以在 ARC Prize 的方法论文档中查看评分是如何运作的。
这个在 ARC-AGI-3 上的结果是令人印象深刻的,而且因为它是开源的,我们都可以从其工作模式中学习。对我来说,结论是:将历史外部化,给 Agent 查询历史的工具,让它编写自己的代码将所学转化为洞察和可复用程序,并让它决定什么留在下一个决策的活跃上下文中。
代码出奇地易于理解,这些模式可以直接用在你正在构建的任何 Agent 上。去查看一下吧。
Strands Harness Code: https://github.com/strands-labs/benchmark-harnesses/tree/main/arc-agi-3-agent
The PR, which is a great writeup on its own: https://github.com/strands-labs/benchmark-harnesses/pull/12
Scorecard: https://arcprize.org/scorecards/8a10b024-3560-448f-ac31-becc48affe5b
PRO-LONG: https://github.com/alexisfox7/PRO-LONG
ARC-AGI-3: https://arcprize.org/arc-agi/3