ARC-AGI-3 深度拆解:AI 基准测试从"做题"进化到"玩游戏",这意味着什么

6 阅读11分钟

上周在 Hacker News 看到 ARC-AGI-3 发布的消息时,我正在用 Claude 写一个 Agent 项目。点进去一看,直接愣了——这东西已经不是让 AI "看图填空"了,它要求 AI 像玩游戏一样去探索、试错、适应

作为一个折腾了两年 AI 应用的独立开发者,我对各种 benchmark 一直有关注但不深入。MMLU、HumanEval、GPQA 这些评测我都有大概了解,但 ARC-AGI 系列一直让我觉得特别——它不测知识量,不测代码能力,而是测一个更根本的东西:你到底会不会"想"?

今天就来深度拆解一下 ARC-AGI-3 到底改了什么,为什么说它标志着 AI 评测进入了一个全新阶段,以及这对我们开发者有什么实际意义。

先回顾:ARC-AGI-1 和 ARC-AGI-2 在测什么

要理解 ARC-AGI-3 的突破,得先知道前两代是怎么回事。

ARC-AGI 的全称是 Abstraction and Reasoning Corpus,由 Keras 之父 François Chollet 在 2019 年提出。他写了一篇很有影响力的论文《On the Measure of Intelligence》,核心观点是:现有的 AI 评测全都跑偏了

为什么跑偏?因为它们测的要么是记忆力(你背了多少知识),要么是模式匹配(你见过多少类似的题目)。但真正的智能应该是用最少的经验去解决全新问题的能力——Chollet 把这个叫做"流体智力"(fluid intelligence)。

ARC-AGI-1 的设计非常简洁:

  • 每道题由几个示例对(input grid → output grid)组成
  • 测试者需要根据示例推断出变换规则
  • 然后对新的 input grid 生成正确的 output grid
  • grid 是 1×1 到 30×30 的彩色格子,值是 0-9 的整数

举个例子:示例里展示了"把所有蓝色方块向右移动两格",你需要看懂这个规则,然后对测试输入做同样的操作。

对人类来说,这种题平均做对率在 85% 左右。但对 AI 来说,即使是 GPT-4、Claude 3.5 这种级别的模型,在 ARC-AGI-1 上的得分也只有 30-40% 左右。

ARC-AGI-2 在 2024 年底推出,进一步加大了难度:

  • 更复杂的变换规则(多步组合、条件分支)
  • 更大的 grid 尺寸
  • 更多干扰信息
  • 强调更深层的抽象推理能力

当时最好的 AI 系统在 ARC-AGI-2 上的得分不到 30%。

共同点是:这两代都是"静态推理"——你看到所有信息,做出判断,一锤子买卖。

ARC-AGI-3:从做题到"玩游戏"

ARC-AGI-3 的官方描述是:The first interactive reasoning benchmark that measures agentic intelligence.

注意两个关键词:interactive(交互式)和 agentic(智能体)。

这意味着什么?让我用大白话解释:

以前:出题 → AI 看题 → AI 答题 → 对答案。就像高考做选择题。

现在:AI 进入一个"游戏环境" → 自己探索规则 → 制定策略 → 执行操作 → 根据反馈调整 → 最终完成目标。就像你第一次玩一个没有教程的解谜游戏。

具体来说,ARC-AGI-3 的任务不再是"看几个示例然后填答案",而是要求 AI 系统在一个未知的交互式环境中:

  1. 探索(Explore):主动尝试不同操作,观察环境反应
  2. 建模(Model):从交互中推断出环境的运行规则
  3. 规划(Plan):基于理解制定达成目标的策略
  4. 适应(Adapt):当策略不奏效时,能调整方向

这直接把评测对象从"推理能力"升级到了"经验驱动的适应性"——也就是说,不光要会想,还得会学

为什么这个转变意义重大

你可能会想:这不就是给 AI 加了个交互环节吗?有什么大不了的?

实际上,这个转变触及了当前 AI 的核心短板。

1. 暴露了 "System 2 思考" 的真实水平

Daniel Kahneman 的理论把人类思维分为 System 1(快速直觉)和 System 2(慢速推理)。

当前的 LLM 擅长的是 System 1——给你一个 prompt,快速生成一个"看起来合理"的答案。即使加上 Chain-of-Thought 或者 reasoning tokens,本质上还是在做"一次性推理"。

但 ARC-AGI-3 要求的是真正的 System 2:你得反复尝试、犯错、修正、再尝试。这对现有的 LLM 架构是一个根本性的挑战。

2. "记忆+检索"策略彻底失效

在很多评测中,大模型可以通过庞大的训练数据来"碰运气"——如果训练集里有类似的题目,模型就能答对。这就是为什么每次有新的 benchmark 出来,很快就被"刷榜"。

ARC-AGI-3 的交互式环境意味着每次运行可能生成不同的环境状态。你没法背答案,没法查题库。你必须在这个具体的环境里,从零开始理解规则。

3. 直接衡量 Agent 能力

2025-2026 年是 AI Agent 的爆发期。从 AutoGPT 到 Claude 的 Computer Use,从 Devin 到各种 Coding Agent,"让 AI 自主完成任务"已经是行业最热的方向。

但问题是:我们怎么衡量一个 Agent 到底有多"聪明"?

之前的办法是看它能不能完成特定任务(写代码、操作网页),但这些任务太具体了,很难推广。ARC-AGI-3 提供了一个通用的 Agent 智能评测框架——不管你的 Agent 是干什么的,它的核心能力(探索、推理、适应)可以用同一把尺子来衡量。

当前主流模型的表现差距

官方把 ARC-AGI-3 定位为"世界上唯一未被攻克的基准测试"(The world's only unbeaten benchmark)。

截至 2026 年 3 月,没有任何 AI 系统在 ARC-AGI-3 上达到人类水平。ARC Prize 2026 竞赛已经开放,奖金池超过 200 万美元。

我自己也尝试用 API 做了一些实验,来感受一下现有模型在 ARC 类型推理任务上的表现。以下是一个用 Python 调用 LLM 来尝试解决 ARC-AGI 格式推理题的简单示例:

import openai
import json

client = openai.OpenAI(
    base_url="https://api.ofox.ai/v1",  # 国内直连,多模型切换方便
    api_key="sk-xxx"
)

def solve_arc_task(task_data: dict, model: str = "claude-sonnet-4-20250514") -> str:
    """
    尝试用 LLM 解决 ARC 格式的推理任务
    task_data 包含 train(示例对)和 test(待解决的输入)
    """
    # 构建 prompt:展示示例对,要求推断规则并解题
    examples = ""
    for i, pair in enumerate(task_data["train"]):
        examples += f"\n示例 {i+1}:\n"
        examples += f"输入:\n{format_grid(pair['input'])}\n"
        examples += f"输出:\n{format_grid(pair['output'])}\n"

    test_input = task_data["test"][0]["input"]

    prompt = f"""你是一个视觉推理专家。以下是一组输入输出示例,每个示例展示了一种特定的变换规则。
请仔细观察这些示例,推断出变换规则,然后对测试输入生成正确的输出。

{examples}

测试输入:
{format_grid(test_input)}

请按以下格式返回:
1. 你发现的变换规则(简要描述)
2. 输出 grid(用 JSON 二维数组表示)
"""

    response = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": prompt}],
        temperature=0,
        max_tokens=2000
    )
    return response.choices[0].message.content


def format_grid(grid: list) -> str:
    """将 grid 格式化为可读的字符串"""
    color_map = {
        0: "⬛", 1: "🟦", 2: "🟥", 3: "🟩",
        4: "🟨", 5: "🟪", 6: "🟫", 7: "🟧",
        8: "⬜", 9: "🔵"
    }
    rows = []
    for row in grid:
        rows.append(" ".join(color_map.get(c, str(c)) for c in row))
    return "\n".join(rows)


def compare_models_on_arc(task_data: dict):
    """
    对比不同模型在同一道 ARC 任务上的表现
    """
    models = [
        "claude-sonnet-4-20250514",
        "gpt-4o",
        "deepseek-r1",
    ]

    results = {}
    for model in models:
        try:
            answer = solve_arc_task(task_data, model=model)
            results[model] = answer
            print(f"\n{'='*50}")
            print(f"模型: {model}")
            print(f"{'='*50}")
            print(answer[:500])  # 截取前 500 字符展示
        except Exception as e:
            results[model] = f"Error: {e}"
            print(f"{model}: 调用失败 - {e}")

    return results


# 构造一个简单的 ARC 风格任务来测试
sample_task = {
    "train": [
        {
            "input": [[0,0,1],[0,1,0],[1,0,0]],
            "output": [[1,0,0],[0,1,0],[0,0,1]]
        },
        {
            "input": [[0,2,0],[0,0,2],[2,0,0]],
            "output": [[0,0,2],[2,0,0],[0,2,0]]
        },
        {
            "input": [[3,0,0,0],[0,0,3,0],[0,0,0,3],[0,3,0,0]],
            "output": [[0,3,0,0],[0,0,0,3],[0,0,3,0],[3,0,0,0]]
        }
    ],
    "test": [
        {
            "input": [[0,0,4,0],[4,0,0,0],[0,0,0,4],[0,4,0,0]]
        }
    ]
}

# 运行对比
results = compare_models_on_arc(sample_task)

这个例子只是 ARC-AGI-1 级别的静态推理。在实际测试中,不同模型的表现差异很大:

  • 推理型模型(如 DeepSeek-R1、o3)在需要多步推理的任务上明显优于纯对话模型
  • 但即使是最好的推理模型,在复杂的抽象变换上仍然经常犯错
  • 多次尝试(给 3 次机会)能显著提高通过率,说明模型有一定的"方向感"但不够精确

而到了 ARC-AGI-3 的交互式环境,挑战直接上了一个量级——模型不仅要推理,还要自己设计"实验"来验证假设。

如果你想自己试试

ARC Prize 2026 竞赛已经在 Kaggle 上线,ARC-AGI-1 的训练集(400 道题)是公开的,可以直接在 GitHub 上拿到。

如果你想体验一下人类做 ARC 题是什么感觉,可以试试这个:

import json
import random
from pathlib import Path

def load_and_display_task(task_path: str):
    """加载并展示一道 ARC 任务"""
    with open(task_path) as f:
        task = json.load(f)

    print("=" * 60)
    print("ARC-AGI 推理挑战")
    print("=" * 60)

    for i, pair in enumerate(task["train"]):
        print(f"\n📌 示例 {i+1}:")
        print("输入:")
        print_colored_grid(pair["input"])
        print("输出:")
        print_colored_grid(pair["output"])

    print(f"\n❓ 测试输入:")
    print_colored_grid(task["test"][0]["input"])
    print("\n你能看出变换规则吗?想想看...")

    return task


def print_colored_grid(grid: list):
    """终端彩色打印 grid"""
    # ANSI 颜色映射
    colors = {
        0: "\033[40m  \033[0m",  # 黑
        1: "\033[44m  \033[0m",  # 蓝
        2: "\033[41m  \033[0m",  # 红
        3: "\033[42m  \033[0m",  # 绿
        4: "\033[43m  \033[0m",  # 黄
        5: "\033[45m  \033[0m",  # 紫
        6: "\033[46m  \033[0m",  # 青
        7: "\033[47m  \033[0m",  # 白/橙
        8: "\033[100m  \033[0m", # 灰
        9: "\033[104m  \033[0m", # 亮蓝
    }
    for row in grid:
        print("".join(colors.get(c, f" {c}") for c in row))


def batch_evaluate(task_dir: str, model: str, num_tasks: int = 20):
    """
    批量评测模型在 ARC 任务上的通过率
    """
    tasks = list(Path(task_dir).glob("*.json"))
    sample = random.sample(tasks, min(num_tasks, len(tasks)))

    correct = 0
    total = 0

    for task_path in sample:
        with open(task_path) as f:
            task = json.load(f)

        expected = task["test"][0]["output"]
        predicted = solve_arc_task(task, model=model)

        # 简化的评判:检查输出中是否包含正确的 grid
        if json.dumps(expected) in predicted:
            correct += 1
        total += 1

        print(f"  [{total}/{num_tasks}] {'✅' if correct == total else '❌'} {task_path.name}")

    accuracy = correct / total * 100
    print(f"\n📊 {model}{total} 道 ARC 任务上的通过率: {accuracy:.1f}%")
    return accuracy

这对开发者意味着什么

作为每天写代码调 API 的开发者,ARC-AGI-3 的出现给我几个启发:

1. Agent 开发要重视"探索能力"

很多人做 Agent 的思路是"编排固定的工具链"——先搜索、再总结、最后生成。但 ARC-AGI-3 告诉我们,真正聪明的 Agent 应该能在未知环境里自己找到解决办法。

这意味着 Agent 框架需要更好的"试错-反馈"循环,而不只是线性的 pipeline。

2. 评测方式需要升级

如果你在做 AI 产品,别只看 MMLU、HumanEval 这些分数了。这些评测和实际使用场景的关联性越来越弱。关注 ARC-AGI 这类评测,能更好地预判模型在"真实世界未知任务"上的表现。

3. "推理 + 交互"是下一个前沿

从 OpenAI 的 o1/o3 到 DeepSeek-R1,2025 年的主题是"推理能力"。但 ARC-AGI-3 暗示下一步是"推理 + 交互"——模型不能只在脑子里想,还得能动手试。

这和我们在 Agent 开发中遇到的问题完全吻合:让 AI 不只是生成文本,而是真正地与环境交互、完成任务。

写在最后

Chollet 在 2019 年就说过:"真正的智能不是你知道多少,而是你能用多少经验去解决多新的问题。"

ARC-AGI 系列从 1 到 3,其实是在逐步逼近这个定义的核心:

  • ARC-AGI-1:你能看懂规则吗?(静态推理)
  • ARC-AGI-2:你能看懂复杂规则吗?(深层抽象)
  • ARC-AGI-3:你能自己发现规则吗?(交互探索)

从"做题"到"玩游戏",这不只是形式上的变化。它在说:如果一个 AI 系统不能在未知环境里主动探索和学习,那它离真正的通用智能还很远。

200 万美元的奖金摆在那里,全世界最聪明的人都在想办法。如果你对 AI 推理和 Agent 开发有兴趣,ARC-AGI-3 是一个值得深入了解的方向。

说不定下一个突破性的方法,就来自某个在 Kaggle 上熬夜的独立开发者呢?


参考资料:

  • François Chollet - On the Measure of Intelligence (arXiv:1911.01547)
  • ARC Prize 官网 - arcprize.org
  • ARC-AGI GitHub - github.com/fchollet/ARC-AGI