我们测试了从 Haiku 到 o3-mini 在内的 50 个 LLM,看看哪些模型最擅长蛇形游戏对战。
介绍 SnakeBench,这是一个实验性的 ARC Prize 挑战,包含了 2.8K 场 LLM 之间的蛇形游戏对决。旨在测试模型如何与动态环境交互、进行实时决策和长期策略规划。

由 o3-mini 和 DeepSeek 完成的顶级 SnakeBench 对战。
ARC Prize 基金会的使命是推动开放科学发展。我们通过构建和部署前沿基准来探索「对人类来说很容易,但对 AI 来说很难」的能力差距。
我们在 2019 年创建了第一个基准测试 ARC-AGI-1。直到 2024 年,模型才达到了与人类相当的表现水平。在 ARC-AGI-1 的基础上,我们将很快发布第二个版本。
展望未来,像 SnakeBench 这样的探索有助于我们设计基准(v3+)。为了提高 AI 模型的性能,我们需要超越 V1 和 V2 的输入/输出网格格式。
未来的基准测试将有显著的不同,允许更复杂的推理、目标设定,以及在环境中培养直觉能力。我们仍处于设计阶段,像这样的玩具原型有助于塑造我们的思维。
| 排名 | 模型 | ELO | 胜 | 负 | 平 | 苹果 | 查看 |
|---|---|---|---|---|---|---|---|
| 1 | o3-mini | 1825 | 155 | 21 | 21 | 546 | -> |
| 2 | DeepSeek-R1 | 1801 | 86 | 18 | 7 | 259 | -> |
| 3 | Meta-Llama-3.1-405B-Instruct-Turbo | 1731 | 70 | 30 | 10 | 228 | -> |
| 4 | claude-3-5-sonnet-20241022 | 1689 | 133 | 44 | 15 | 424 | -> |
| 5 | Meta-Llama-3-70B-Instruct-Turbo | 1681 | 63 | 37 | 10 | 123 | -> |
| 6 | o1-mini | 1672 | 119 | 56 | 17 | 414 | -> |
完整的 50 个 LLM 排行榜请访问 SnakeBench.com。代码和结果已开源。

来自 Andrej Karpathy 的推文。
ARC Prize 的使命是衡量和引导 AI 缩小「对人类来说容易,对 AI 来说困难」的任务差距。只要我们能创造出人类可以解决但 AI 无法解决的问题,我们就还没有实现 AGI。
游戏是测量 AI 泛化能力的优秀示例,它们是易于验证的领域。而且……它们很有趣。
除了我们的主要基准(ARC-AGI-1)之外,我们进行了这个副本挑战,看看 LLM 在贪吃蛇游戏中表现如何。这将迫使模型:
研究人员一直使用游戏来测试 LLM 如何规划、适应和理解复杂环境,包括:
从环境状态(游戏描述、传感器读数等)开始,将提示作为上下文提供给 LLM。然后 LLM 生成一个动作:左、右、上或下。
在选择移动之前进行更长时间的「思考」的模型可以获得更连贯的长期行为和更好的表现。这意味着 LLM 会进行内部推理(例如「我想避开那条敌方蛇,所以我应该远离」),然后输出动作(例如「远离」)。
对于 SnakeBench,我们以纯文本格式将棋盘呈现为二维网格给 LLM,从下到上的行标记为 0 到 9,从左到右的列标记为 0 到 9。苹果、蛇头和蛇尾用不同的符号表示。

SnakeBench 解剖图
每个 LLM 每回合都会被询问它的移动。移动同时进行,这就引入了正面碰撞的可能性。
如果一条蛇吃到苹果,就会得分并增长。如果一条蛇撞到墙或另一条蛇的身体,就会立即失败。
通过计算 Elo 评分来对特定 LLM 的胜率进行排名。
除了显示二维棋盘外,提示中还包含了额外信息:
这种上下文丰富的提示也是推理模型表现更好的一个关键原因。它们被训练成在输出之前进行思考。推理模型会自动进行思考,而不是在提示中人为地设计思考步骤。
以下是 DeepSeek 在一次移动中的思维链节选(完整版本在这里)。
DeepSeek 的「思考」关键部分:
好的,让我看看。我需要为我的蛇找出最佳移动。棋盘是 10x10 大小,我的蛇在 (3,4)。苹果在 (4,2)、(3,3)、(7,8)、(0,9)、(7,0)。敌方蛇在 (1,5),没有身体,所以只有一个头。
查看苹果:在 (3,3) 有一个苹果,就在我当前位置的正下方。如果我向下移动,我可以吃到那个苹果并增长。但是等等,向下移动会让我到达 (3,3),那里有个苹果。这对得分有利。但我需要确保移动到那里是安全的。有任何障碍吗?
敌方蛇在 (1,5)。它们的身体是空的,所以可以自由移动...
另一个考虑:向下移动到 (3,3) 可以得到苹果,这很好。然后,在吃掉后,我的蛇会增长。所以下一回合,身体会包括之前的位置。但对于这次移动,由于现在还没有身体,移动到苹果的位置是安全的。
其他方向:向上到 (3,5)。那是一个空位置。那里没有苹果...
等等,但是敌方蛇呢?它们在 (1,5)...
所以最佳选择似乎是向下移动到 (3,3) 吃掉苹果。这样可以得分并让蛇增长。但是等等,当你吃掉苹果时,你会增长,所以下一次移动的身体会包括之前的位置。但是由于当前身体只有头部,向下移动会增加一个段。
另外,向左移动到 (2,4) 或向右移动到 (4,4) 不会得到苹果但会是安全的...
因此,最佳移动是向下吃掉 (3,3) 的苹果,获得一分并让蛇增长。那个方向没有直接的威胁。敌人在 (1,5),不在路径上。所以我应该向下走。
下一步移动:向下
玩一场有趣的贪吃蛇游戏的性能要求目前超出了 LLM 的能力范围。虽然这种情况最终会改变,但我们观察到了当前的挑战:
其中一些问题可以通过开发者在提示中注入更多的保护措施和知识来缓解。例如,我们本可以限制 LLM 只能做出「合法」的移动。然而,你在模型中加入越多的开发者智慧,就越不能测试其推理和导航能力,而这正是这个练习的核心目的。
SnakeBench 是一次有趣的探索,研究 LLM 如何处理动态环境和实时决策。
我们期待探索其他游戏环境,帮助我们设计更好的基准来衡量 AI 能力。
查看代码请点击这里。
未来工作
SnakeBench 环境可以通过增加棋盘大小和添加更复杂的障碍物(如墙壁或更多的蛇对手)来改进。引入更多的蛇和苹果将迫使更大的竞争和不可预测性,这对于压力测试 LLM 的思维链推理很有用。此外,通过更结构化或逐步的提示,持续改进提示方式可能会导致更少的棋盘状态读取错误。
o1-pro 一次性成功
初始的贪吃蛇游戏是由 o1-pro 一次性生成的。它在测试中有效地掌握了环境逻辑,几乎不需要重新提示游戏引擎。
使用的提示:
能给我做一个贪吃蛇游戏吗?
但不是自动计时而是回合制的?
可以有任意数量的玩家,所以是多条蛇。
每条蛇都会提交它想要的回合动作,然后一个「回合」就会发生。
做一个函数询问每个「玩家」想要做什么动作。
多个 LLM 决定它们想去哪里。我想让 LLM 在贪吃蛇中对战。
也要让网格大小是任意的。
我还需要一种重放游戏的方式,所以要确保存储历史状态。
Google 模型和速率限制:
尽管使用了付费等级,某些基于 Google 的 LLM 在游戏中途达到了速率限制,这扰乱了连续性。这导致许多游戏无法完成。目前还不清楚如何移除速率限制。
提示
我们使用了一个详细的提示,包括:
查看完整提示请点击这里。