刷Benchmark拿高分这件事,已经被AI玩成了考试作弊。MMLU、HumanEval、SWE-Bench,模型厂商每次发新模型都能刷出新高分,但用起来该蠢还是蠢。ARC Prize Foundation这周发布了ARC-AGI-3,直接把评测方式从”做卷子”改成了”打游戏”——AI Agent必须在从没见过的交互环境里自主探索、学习规则、完成目标。
这个方向很有意思,因为它戳中了当前AI评测体系最大的痛点:做对题不等于有智能。
ARC-AGI的进化路线
先理清前因后果。ARC-AGI系列由François Chollet(Keras作者)主导,2024年搞了ARC-AGI-1,100万美元奖金,当时最好的AI系统只拿到55%的分数,人类平均85%。2025年的ARC-AGI-2加大了难度,限制了计算量。到了2026年的ARC-AGI-3,直接换赛道:
| 版本 | 评测方式 | 核心能力 |
|---|---|---|
| ARC-AGI-1 | 静态网格变换 | 抽象推理 |
| ARC-AGI-2 | 静态网格变换(更难) | 抽象推理+效率 |
| ARC-AGI-3 | 交互式游戏环境 | 探索、规划、记忆、持续学习 |
ARC-AGI-3不再是”看输入猜输出”的静态题目了。它把AI扔进一个未知的游戏环境里,没有自然语言说明书,没有预训练的知识可以依赖,你得自己摸索规则、制定策略、根据反馈调整行为。
跟之前到底有什么不同
传统Benchmark的问题在于:模型可以通过记忆训练数据或学习解题模式来”作弊”。你在MMLU上刷到90%,不代表你真的理解了那些知识,可能只是背住了答案的分布。
ARC-AGI-3的设计原则摆明了就是要堵死这条路:
1. 环境全部是新的。每个游戏都是独立设计的,没有两个环境共享相同的规则集。你在ls20学到的策略,拿到ft09上完全不适用。
2. 没有文字提示。环境不会告诉你”按方向键移动”、”碰到红色会死”。你得通过反复试错来理解游戏机制。
3. 衡量的是学习效率,不是最终分数。评分系统看的是你多快能掌握一个新环境的规则并开始做出有效决策。官方的计分方式按关卡难度加权,越靠后的关卡权重越高,得分还要平方处理——这意味着在困难关卡上表现差会被严重惩罚。
4. 100%人类可解。每个环境都经过人类测试确认可以玩通,所以如果AI做不到,那就是AI的问题,不是题目太难。
上手跑一下
ARC-AGI-3提供了Python SDK,核心是arc-agi包和arcengine游戏引擎。装上试试:
pip install arc-agi # arcengine 是游戏引擎,通过 API 加载 export ARC_API_KEY="your-api-key-here"
基本用法遵循OpenAI Gym的接口风格:
import arc_agi
from arcengine import GameAction, GameState
arc = arc_agi.Arcade()
env = arc.make("ls20", render_mode="terminal")
# 查看可用的动作空间
print(env.action_space)
# 执行一步
obs = env.step(GameAction.ACTION1)
# 查看得分
print(arc.get_scorecard())
实际跑的时候有个坑:arc-agi这个pip包目前只包含核心数据类型(Grid、Task、Pair等),真正的游戏引擎arcengine没有发布到PyPI。你需要通过GitHub仓库安装完整版,或者用API模式连接到官方服务器。
另外,如果你的Python版本低于3.11,arc-agi-core会因为用了typing.Self直接报ImportError。3.10的用户需要手动patch或者升级Python。
一个完整的随机Agent示例:
import random
from arcengine import GameAction, GameState
import arc_agi
arc = arc_agi.Arcade()
env = arc.make("ls20", render_mode="terminal")
for step in range(100):
action = random.choice(env.action_space)
action_data = {}
# 某些动作需要坐标参数
if action.is_complex():
action_data = {
"x": random.randint(0, 63),
"y": random.randint(0, 63),
}
obs = env.step(action, data=action_data)
if obs and obs.state == GameState.WIN:
print(f"Step {step}: 通关!")
break
elif obs and obs.state == GameState.GAME_OVER:
env.reset()
scorecard = arc.get_scorecard()
print(f"最终得分: {scorecard.score}")
需要注意的是,action_space里有”简单动作”(方向移动之类的)和”复杂动作”(需要指定坐标的),后者通过is_complex()判断。
如果不需要渲染,去掉render_mode参数可以达到2000+ FPS的速度,方便用强化学习做大量rollout。
对接LLM Agent
ARC-AGI-3特意提供了LLM Agent的集成方案。官方的arc-agi-llm包封装了基本的LLM调用逻辑:
pip install "arc-agi[all]"
思路是这样的:每一步把游戏画面的文本表示(terminal render输出)塞进LLM的prompt,让LLM输出下一步的动作。但这个方案有个明显的瓶颈——上下文窗口。
一个64×64的游戏画面用文本表示就是4096个字符,100步就是400K token。即使用Claude或Gemini的百万级上下文窗口,也撑不了几局游戏。更别说LLM的推理速度远不如专门的RL Agent。
所以实际做Agent有几种路线:
纯RL方案:把游戏画面当图像输入,用PPO/DQN等经典算法训练。速度快、token零开销,但泛化能力差——在一个游戏里训练好的策略换个游戏基本没用。
纯LLM方案:用大模型的世界知识来推理游戏规则。泛化能力强,但速度慢、成本高。
混合方案:LLM负责理解游戏规则和高层策略规划,RL负责在具体环境里快速试错和执行。这可能是最有潜力的方向,但工程复杂度也最高。
评分机制的设计很讲究
官方的计分方式不是简单的”通关数/总关卡数”:
单个关卡得分 = (raw_score) ^ 2 游戏总分 = Σ(关卡得分 × 关卡序号) / Σ(关卡序号)
平方处理意味着拿0.5分和拿0分差距不大(0.25 vs 0),但拿0.9和拿1.0差距巨大(0.81 vs 1.0)。按关卡序号加权意味着后面的难关卡权重更高。
这个设计很聪明:它鼓励Agent真正理解游戏规则并稳定发挥,而不是靠随机尝试偶尔拿分。一个在简单关卡满分但困难关卡零分的Agent,总分会很难看。
Arcade模式的架构
整套系统分三层:
arcengine(游戏引擎):Rust写的,负责游戏逻辑的执行。每个环境有自己的metadata.json定义规则,引擎解析后提供step/reset接口。
arc-agi(Python SDK):封装了Arcade类,负责环境管理、渲染、评分。支持本地和在线两种模式。
四种运行模式:
| 模式 | 说明 | 用途 |
|---|---|---|
| NORMAL | 本地+API混合 | 日常开发 |
| ONLINE | 纯API | 无本地游戏文件时 |
| OFFLINE | 纯本地 | 断网环境 |
| COMPETITION | API+官方评分 | 参加比赛排名 |
还有个listen_and_serve方法,可以把游戏环境暴露成HTTP服务,方便非Python的Agent接入。
这事为什么重要
HN上关于ARC-AGI-3的讨论里,争议最大的点是:这到底是在测智能还是在测打游戏?
支持方认为,在未知环境中自主学习和适应是智能的核心定义。不管你用多大的模型、多少数据训练出来的,如果换个没见过的环境就傻了,那就不算真的”理解”。
反对方认为,人类打游戏也不是靠”纯智能”,而是靠运动控制、视觉识别等低层能力。用游戏测试LLM可能测的不是推理能力而是感知能力。
两边都有道理,但ARC-AGI-3的设计其实规避了后者的问题——它的游戏环境是网格化的、离散的、完全可观测的,不需要精细的运动控制或实时反应。测的确实是”在新情况下学习规则的能力”。
从前端开发的角度看,这个项目的技术架构也值得关注。Rust写引擎保证性能,Python SDK做胶水层,Web UI用来可视化和回放——这种多语言协作的架构在AI工具链里越来越常见。官方还提供了完整的Replay功能,可以一帧一帧回放Agent的决策过程,对调试非常有用。
实际跑起来的几个坑
1. Python版本要求:需要3.11+,低版本会因为typing.Self直接crash,pip安装不会提前告诉你。
2. arcengine不在PyPI:文档里写的from arcengine import GameAction在pip install arc-agi之后是跑不通的。需要从GitHub安装完整工具链。
3. API Key:不设也能跑(会自动获取匿名key),但匿名key能访问的游戏数量有限。正式参赛需要去three.arcprize.org注册。
4. 录像文件:默认会在当前目录创建recordings/文件夹保存每局的JSONL记录,磁盘空间要注意。
当前最好的AI Agent在ARC-AGI-3上的表现远低于人类。ARC-AGI-1的差距在逐步缩小(从55%到接近人类水平),但ARC-AGI-3换了赛道之后,差距又被拉开了。Chollet的观点是:只要AI和人类在学习效率上还有差距,就不算AGI。
这个Benchmark的价值不在于谁能刷到最高分,而在于它提出了一个更接近”真实智能”的评测标准。静态Benchmark时代确实该翻篇了。