# ARC Puzzle Game — 完整使用指南

> 最后更新：2026-04-06
> 本文档详细描述评测愿景、核心能力定义、测评方案设计、结果分析方法以及后续优化路径。

---

## 目录

1. [评测愿景：从语言模型到世界模型](#1-评测愿景从语言模型到世界模型)
2. [测试的核心能力](#2-测试的核心能力)
3. [快速开始](#3-快速开始)
4. [系统功能亮点](#4-系统功能亮点)
5. [测评方案设计](#5-测评方案设计)
6. [评测指标体系](#6-评测指标体系)
7. [评测结果分析](#7-评测结果分析)
8. [API 配置与模型接入](#8-api-配置与模型接入)
9. [Demo 声明与后续优化路径](#9-demo-声明与后续优化路径)
10. [游戏详细说明](#10-游戏详细说明)
11. [附录：技术架构](#11-附录技术架构)

---

## 1. 评测愿景：从语言模型到世界模型

### 为什么需要这个评测？

当前 AI 大模型在知识问答、代码生成、文本创作等任务上表现惊艳，但这些能力的本质是**对训练数据的压缩与检索** —— 模型的推理能力被绑定在已有知识边界之内。正如 ARC-AGI-3 论文所指出的：

> "Human reasoning capability is **not** bound by domain knowledge. LLM reasoning capability **is** tied to LRM knowledge."

一个真正智能的系统，应当具备面对**完全陌生的环境**时，自主探索、建立理解、规划行动的能力 —— 这正是构建**世界模型（World Model）**的核心要素。

### 评测如何牵引模型优化方向？

本评测平台通过黑盒交互式谜题，精准暴露当前大模型在以下方向上的短板：

```
当前模型的"能"与"不能":

✅ 能: 回答已知问题、生成已知模式的代码、总结已有文本
❌ 不能: 在未知环境中自主学习规则、构建可预测的环境模型、基于理解而非记忆做规划
```

**评测结果直接指向优化方向**：

| 评测暴露的短板 | 对应的优化方向 | 长远目标 |
|--------------|--------------|---------|
| 无法从交互中推断规则 | 强化在线学习与因果推理能力 | 自主知识获取 |
| 无法建立环境动态模型 | 发展世界模型表征能力 | 环境理解与预测 |
| 随机试错而非有目的探索 | 提升主动探索与信息获取效率 | 自适应智能 |
| 多步规划能力薄弱 | 增强前瞻推理与序列决策能力 | 复杂任务规划 |

**从"记忆与检索"走向"理解与推理"，从"知识驱动"走向"认知驱动" —— 这是 AI 从语言模型迈向世界模型的必经之路。** 本评测平台为这条路径提供了一个可量化、可对比、可复现的测量工具。

---

## 2. 测试的核心能力

本系统设计的谜题专门测试以下 AI 能力，这些能力是构建**世界模型（World Model）**的关键组成部分：

### 2.1 环境探索与规则推断

AI 必须在**零知识**条件下，通过与环境交互来推断：
- 每个按钮的功能是什么？
- 网格上的颜色/符号代表什么？
- 胜利条件是什么？

这测试的是 AI 的**主动探索**能力和**因果推断**能力。

### 2.2 世界模型构建

理解规则后，AI 需要建立**环境动态的内部模型**：
- "按 btn_1 会让红色方块顺时针旋转 90°"
- "方块不能穿过墙壁"
- "黄色方块需要到达黄色区域"

这是 ARC-AGI-3 论文的核心评测目标：AI 能否从有限的交互中构建出一个准确的、可用于预测的世界模型？

### 2.3 多步规划

基于世界模型，AI 需要**规划动作序列**来达成目标：
- Block Transit L6 需要 5 步精确操作
- 任何一步错误都可能导致需要更多步来修正

这测试的是 AI 的**前瞻性规划**能力。

### 2.4 自适应效率（Adaptive Efficiency）

ARC-AGI-3 论文将其定义为"在最少交互次数内完成任务的能力"。本系统通过以下方式量化：

```
高效 AI:  快速理解规则 → 直接执行最优路径 → efficiency ≈ 1.0
低效 AI:  大量随机尝试 → 偶然通关 → efficiency << 1.0, exploration_waste 高
```

### 2.5 Core Knowledge Priors

参考 ARC-AGI-3 论文的设计原则，三个游戏基于不同的**核心知识先验**：

| 游戏 | Core Knowledge | 说明 |
|------|---------------|------|
| Block Transit | 物体性(Objectness) + 几何(Geometry) | 理解方块是刚体，旋转遵循几何规则 |
| Lights Out | 逻辑(Logic) + 因果(Causality) | 理解开关和灯的因果关系 |
| Warp Maze | 空间(Space) + 导航(Navigation) | 理解朝向、运动方向、传送门 |

---

## 3. 快速开始

### 3.1 在线体验（零安装，推荐）

直接访问 **https://sixgallon.github.io/arc-puzzle-game/** ，无需克隆代码、无需安装：
- **🎮 Play Game** — 亲自体验谜题
- **🤖 AI Replay** — 观看 AI 模型的解题回放（内置评测数据，无需 API）

### 3.2 本地启动

```bash
git clone https://github.com/SIXGALLON/arc-puzzle-game.git
cd arc-puzzle-game
python start.py
```

浏览器自动打开 Landing Page，提供以下入口：
- **🎮 Play Game** — 亲自体验谜题
- **🤖 AI Replay** — 观看 AI 模型的解题回放（内置评测数据，无需 API）

### 3.3 手动启动

```bash
cd arc-puzzle-game
python -m http.server 8899
# 浏览器打开 http://localhost:8899
```

### 3.4 运行 AI 评测

```bash
# 1. 配置 API
cp api_config.example.yaml api_config.yaml
# 编辑 api_config.yaml，填入你的 API 密钥

# 2. 安装依赖
pip install requests pyyaml

# 3. 运行评测
python benchmark.py                                # 基础模式
python benchmark.py --shuffle --noops 3            # Anti-Luck 模式
python benchmark.py --shuffle --noops 3 --runs 3   # 最严格模式
python benchmark.py --game block_transit            # 仅测某个游戏
```

---

## 4. 系统功能亮点

ARC Puzzle Game 是一个受 [ARC-AGI-3](https://arcprize.org/) 基准测试启发的**交互式 AI 推理能力评测平台**。

| 亮点 | 说明 |
|------|------|
| **完全黑盒测评** | AI 不知道游戏规则、不知道按钮功能，只能通过按按钮并观察屏幕变化来推断规则 |
| **Anti-Luck 防蒙对系统** | 按钮打乱 + no-op 干扰注入 + 多轮统计，确保评测结果反映真正的推理能力 |
| **多维度评测指标** | 不只是"是否通关"，还衡量效率、探索浪费、一致性等推理质量 |
| **人类可校准难度** | 每个关卡都经过人类测试验证可解，难度通过机制组合递增 |
| **插件化游戏架构** | 新增游戏只需在 `games/` 目录添加文件，无需修改框架 |
| **通用 API 适配** | 支持 OpenAI / Anthropic / 任何兼容接口，一份配置即可切换模型 |

---

## 5. 测评方案设计

### 5.1 黑盒测评原理

评测中，AI 模型处于完全"黑盒"状态：

```
AI 能看到的:
┌─────────────────────────────────┐
│ Step 3/300                      │
│                                 │
│ Current screen:                 │
│   . . . . . . . . . . . .      │
│   . . . . G G . . . . . .      │  ← ASCII 网格（屏幕像素）
│   . . . . R R . . B . . .      │
│   . . . . . . . . B . . .      │
│   . . . . . Y . . . . . .      │
│                                 │
│ Buttons:                        │
│   btn_1  🔴↻                    │  ← 只有图标，没有功能说明
│   btn_2  🔴↺                    │
│   btn_3  🟣↻                    │
│   btn_4  ◀                      │
│   btn_5  ▶                      │
└─────────────────────────────────┘

AI 不知道的:
× 游戏规则是什么
× 按钮按了会发生什么
× 胜利条件是什么
× 颜色代表什么含义
```

**System Prompt 不包含任何游戏信息**，仅告知 AI：

> "You are interacting with an unknown puzzle game. You must figure everything out by pressing buttons and observing the screen."

### 5.2 Anti-Luck 防蒙对机制

当按钮数量少时（2~6个），模型有可能通过随机猜测蒙对。系统提供三层防护：

| 层级                          | 机制                      | 效果                                        |
| ----------------------------- | ------------------------- | ------------------------------------------- |
| **L1: Button Shuffle**  | 每步随机打乱按钮顺序      | `btn_1` 每次对应不同动作，无法死记映射    |
| **L2: No-op Injection** | 注入 N 个外观真实的假按钮 | 搜索空间扩大，蒙对概率从 1/4 降到 1/7+      |
| **L3: Multi-run**       | 每关独立跑 N 次           | 输出 solve_rate（通过率），区分能力 vs 运气 |

```bash
# 使用示例
python benchmark.py --shuffle                     # L1: 打乱按钮
python benchmark.py --shuffle --noops 3           # L1+L2: 打乱 + 3个干扰
python benchmark.py --shuffle --noops 3 --runs 5  # L1+L2+L3: 最严格
```

### 5.3 评分方法论

当前系统使用**步数效率**作为核心评分：

```
efficiency = par / actual_steps
```

其中 `par` 是最优解步数（人类设计时确定）。效率为 1.0 表示最优解。

> **论文对标**：ARC-AGI-3 使用基于人类基线的 SPL 变体评分：
>
> ```
> S_l,e = min(h_l / a_l, 1.0)
> ```
>
> 其中 `h_l` 为第二优人类的步数，`a_l` 为 AI 步数。
> 本系统的 Demo 版本以 par（最优解）近似 `h_l`，后续将收集真实人类数据。

---

## 6. 评测指标体系

### 6.1 基础指标

| 指标               | 含义         | 计算方式          |
| ------------------ | ------------ | ----------------- |
| `solved`         | 是否通关     | boolean           |
| `steps`          | 实际步数     | 有效操作计数      |
| `par`            | 最优解步数   | 关卡设计值        |
| `errors`         | 非法操作次数 | 碰撞/越界         |
| `parse_failures` | 格式解析失败 | AI 回复格式不正确 |
| `elapsed_s`      | 耗时（秒）   | API 调用总时间    |

### 6.2 增强指标

| 指标                  | 含义                        | 衡量的能力                   |
| --------------------- | --------------------------- | ---------------------------- |
| `efficiency`        | `par / steps`（1.0=最优） | 规划效率                     |
| `exploration_waste` | `errors + noop_presses`   | 无效探索量                   |
| `noop_presses`      | 按了多少次干扰按钮          | 推理辨别力（Anti-Luck 模式） |

### 6.3 Multi-run 统计指标

| 指标            | 含义                       | 衡量的能力           |
| --------------- | -------------------------- | -------------------- |
| `solve_rate`  | 通关率（0~1）              | 稳定推理能力 vs 运气 |
| `avg_steps`   | 平均通关步数               | 整体效率水平         |
| `consistency` | 步数稳定性（1.0=完全一致） | 推理确定性           |

---

## 7. 评测结果分析

### 7.1 Block Transit 评测结果

内置的 `benchmark_results.json` 包含 6 个前沿模型在 Block Transit 上的完整评测数据：

| 模型              | L1(par=1) | L2(par=2) | L3(par=3) | L4(par=3) | L5(par=4) | L6(par=5) | 通关数        |
| ----------------- | --------- | --------- | --------- | --------- | --------- | --------- | ------------- |
| GPT-5.3 Codex     | 1 ✓      | 2 ✓      | 17 ✓     | 5 ✓      | 28 ✓     | 15 ✓     | **6/6** |
| Claude Sonnet 4.6 | 1 ✓      | 2 ✓      | 17 ✓     | 9 ✓      | 4 ✓      | 11 ✓     | **6/6** |
| Gemini 3.1 Pro    | 1 ✓      | 2 ✓      | 4 ✓      | 5 ✓      | 12 ✓     | FAIL      | **5/6** |
| Doubao Seed 2.0   | 7 ✓      | 2 ✓      | FAIL      | 5 ✓      | 11 ✓     | 165 ✓    | **4/6** |
| Qwen 3.5 397B     | 1 ✓      | 4 ✓      | FAIL      | 10 ✓     | FAIL      | FAIL      | **3/6** |
| Kimi K2.5         | 1 ✓      | 2 ✓      | FAIL      | FAIL      | FAIL      | 14 ✓     | **3/6** |

### 7.2 结果解读

**关键发现：**

1. **简单关卡（L1-L2）所有模型都能通过** — 说明基本的观察-行动循环都已具备
2. **L3 成为分水岭** — 需要理解两个旋转体的相互阻挡关系，多数模型在此失败
3. **步数差异巨大** — 同样通关 L5，Claude 用 4 步（接近最优），GPT 用 28 步，说明世界模型的准确度差异显著
4. **Doubao L6 用了 165 步** — 典型的"蒙对"行为，Anti-Luck 模式下 solve_rate 预期会显著下降

**使用 Replay Viewer 查看详情：** 启动服务器后访问 `replay.html`，可逐步回放每个模型的解题过程。

---

## 8. API 配置与模型接入

### 8.1 配置文件

复制模板并编辑：

```bash
cp api_config.example.yaml api_config.yaml
```

### 8.2 OpenAI 兼容接口（推荐）

```yaml
provider: openai
openai:
  api_key: "sk-your-key"
  base_url: "https://api.openai.com/v1"
models:
  - id: "gpt-4o"
    name: "GPT-4o"
```

支持所有 OpenAI-compatible API，只需修改 `base_url`：

| 平台            | base_url                                              |
| --------------- | ----------------------------------------------------- |
| OpenAI          | `https://api.openai.com/v1`                         |
| Moonshot (Kimi) | `https://api.moonshot.cn/v1`                        |
| DeepSeek        | `https://api.deepseek.com`                          |
| 通义千问        | `https://dashscope.aliyuncs.com/compatible-mode/v1` |

### 8.3 Anthropic

```yaml
provider: anthropic
anthropic:
  api_key: "sk-ant-your-key"
models:
  - id: "claude-sonnet-4-20250514"
    name: "Claude Sonnet"
```

### 8.4 Benchmark 命令参考

| 命令                                                               | 说明                   |
| ------------------------------------------------------------------ | ---------------------- |
| `python benchmark.py`                                            | 测所有游戏 × 所有模型 |
| `python benchmark.py --game lights_out`                          | 仅测某个游戏           |
| `python benchmark.py --shuffle`                                  | 开启按钮打乱           |
| `python benchmark.py --noops 3`                                  | 注入 3 个干扰按钮      |
| `python benchmark.py --runs 5`                                   | 每关跑 5 次取统计      |
| `python benchmark.py --max-steps 500`                            | 最大步数 500           |
| `python benchmark.py --models "gpt-4o,claude-sonnet-4-20250514"` | 仅测指定模型           |

---

## 9. Demo 声明与后续优化路径

### 9.1 当前版本定位

> **本系统为 Demo v1.0**，是受 ARC-AGI-3 启发的概念验证实现，旨在展示交互式黑盒评测的可行性和价值。

### 9.2 与 ARC-AGI-3 的差距

| 维度     | ARC-AGI-3                | 本系统 (Demo)               |
| -------- | ------------------------ | --------------------------- |
| 环境数量 | 数百个独立环境           | 3 个游戏 / 18 关            |
| 评分方法 | SPL 变体，人类基线归一化 | 步数效率 (par 近似)         |
| 人类校准 | 每环境 10 人独立测试     | 开发者手动验证              |
| 难度范围 | 渐进到极难（AI < 1%）    | 中等难度（前沿 AI 50-100%） |
| 环境生成 | 手工设计 + 严格审核      | 手工设计                    |
| 防作弊   | 完全封闭的半私有/私有集  | 开源可见                    |

### 9.3 后续优化路径

基于 ARC-AGI-3 技术报告（ARC Prize Foundation, March 2026），我们规划以下改进方向：

#### Phase 1: 评分体系升级

- 实现论文的 SPL 变体评分：`S_l = min(h_l / a_l, 1.0)`
- 收集人类基线数据：每关至少 10 名测试者
- 按关卡加权聚合：`E = Σ(l × S_l) / Σ(l)`，后面关卡权重更高

#### Phase 2: 环境扩展

- 新增游戏类型：物理模拟、模式匹配、多智能体协作
- 程序化关卡生成：避免 AI 记忆固定关卡
- 增加关卡数量至 50+ 并进行难度分层

#### Phase 3: 防蒙对增强

- 论文指出需要环境"enough to make random exploration insufficient"
- 增加更多机制组合，使搜索空间指数增长
- 实现动态难度调节

#### Phase 4: 对标 ARC-AGI-3 标准

- 人类校准流程：论文要求每个环境至少 2 人独立全通
- 构建半私有测试集：评测用的关卡不公开
- 实现在线 Leaderboard

### 9.4 论文核心观点与本系统的关系

ARC-AGI-3 论文提出了一个关键观察：

> "Human reasoning capability is **not** bound by domain knowledge. LLM reasoning capability **is** tied to LRM knowledge."

本系统正是在这个方向上进行探索——通过让 AI 面对**完全陌生的环境**（非其训练数据中的已知游戏），测试其是否具备**领域无关的推理能力**。

这也是为什么前沿模型在 ARC-AGI-3 上得分低于 1%，但在本系统（较简单的 Demo）上能达到 50-100%：

- 本系统的游戏机制（旋转、翻转、移动）可能与训练数据有部分重叠
- ARC-AGI-3 的环境经过严格设计，确保没有任何记忆捷径

后续版本将通过程序化生成和更复杂的环境设计来缩小这一差距。

---

## 10. 游戏详细说明

### 10.1 Block Transit（方块运输）

**核心机制**：旋转和平移网格上的结构体，将黄色目标方块送入目标区域。

| 操作             | 键位  | 效果          |
| ---------------- | ----- | ------------- |
| Rotate A CW/CCW  | W / Q | 结构体 A 旋转 |
| Rotate B CW/CCW  | P / O | 结构体 B 旋转 |
| Slide Left/Right | A / D | 滑轨结构移动  |
| Undo / Reset     | Z / R | 撤销 / 重置   |

关卡难度递进：L1(1步) → L2(2步) → L3(3步,双旋转体) → L4(3步,+墙壁) → L5(4步,+滑轨) → L6(5步,综合)

### 10.2 Lights Out（灯阵翻转）

**核心机制**：网格上每格有亮/暗两态，按钮翻转特定一组格子，目标是匹配目标图案。

| 操作       | 键位 |
| ---------- | ---- |
| Toggle 1-5 | 1-5  |

后期关卡包含"干扰按钮"。网格从 3×3 到 6×6。

### 10.3 Warp Maze（传送迷宫）

**核心机制**：控制有朝向的角色在迷宫中移动到目标点，后期加入传送门。

| 操作            | 键位  | 效果       |
| --------------- | ----- | ---------- |
| Forward         | W     | 前进 1 步  |
| Turn Left/Right | A / D | 转向       |
| Warp            | E     | 使用传送门 |

---

## 11. 附录：技术架构

### 系统架构图

```
                    ┌─────────────┐
                    │  用户 / AI   │
                    └──────┬──────┘
                           │
            ┌──────────────┼──────────────┐
            ▼              ▼              ▼
     ┌────────────┐ ┌────────────┐ ┌────────────┐
     │ play.html  │ │replay.html │ │benchmark.py│
     │  Web 游戏  │ │ 回放查看器 │ │  AI 评测   │
     └─────┬──────┘ └─────┬──────┘ └─────┬──────┘
           │              │              │
           ▼              ▼              ▼
     ┌─────────────────────────────────────────┐
     │        games/ — 游戏插件系统             │
     │  JS 端 (浏览器) + Python 端 (评测)       │
     └─────────────────────────────────────────┘
```

### 文件依赖关系

```
index.html (Landing Page)
  ├── play.html → main.js → games/registry.js → 各游戏模块
  └── replay.html → benchmark_results.json + games/registry.js

benchmark.py → api_config.yaml + games/__init__.py → 各游戏 Python 模块
            → 输出 benchmark_results.json
```

### 如何新增游戏

1. 复制 `games/_template.py` 和 `games/_template.js`
2. 实现游戏逻辑（Python + JS 两端保持一致）
3. 在 `games/__init__.py` 和 `games/registry.js` 中注册
4. 在 `main.js` 的 `GAME_CONTROLS` 中配置按钮布局

### Python 依赖

```
requests    # HTTP 客户端（评测用）
pyyaml      # 配置文件解析（可选，有内置 fallback）
```
