AGI-3 本地环境搞起来,好玩,来玩!
这个 AGI-3 有搞头!我决定深入研究一下。

简单介绍一下 AGI-3,这是一个通用人工智能测试基准……的最新版本。
目前 Opus 4.6、GPT-5.4、Gemini 3.1 Pro等顶级模型在它面前都束手无策,得分不超过 1 分(百分制)!!!
它应该是未来 AI 模型需要重点攻克的堡垒。
我们就先人一步,先玩起来。
从它的首页就可以看到有两个入口。
一个是 Play,给人类玩的。一个是 Build,给 AI 玩的。
我们今天要玩的就是给AI玩的部分。
为什么作为一个人类,要玩 AI 的入口?
因为我们不是一般人类,我们是“AI 龙骑士🐲”!
我们需要用代码,让这个游戏跑起来,然后接入AI,让AI来玩这个游戏。
废话说完,直接开干!
打开ARC-AGI-3的官方文档页:
https://docs.arcprize.org/
然后,边学边干!
1、安装
针对我们这种不一般的人群,arcprize 给我们提供了专门的工具“arc-agi”。
接下来我们就是用这个工具去超控上面的游戏。
先创建一个文件夹 agi3,作为我们研究这个项目的核心目录。
然后运行命令:
uv init
uv add arc-agi
# or
pip install arc-agi
这里提供了两种方式,一种是使用 UV,另一种是使用 PIP 来安装。
现在比较推荐上面的方式!
实操记录
打开 agi3 这个文件夹,然后右键,在终端中打开。

然后输入上面的两个命令:

第一次输入,会输出比较多日志,我是二次安装了,所以显得比较简洁。
命令执行完成之后会多出三个文件:
main.py
pyproject.toml
README.md
这都是自动生成的,我们可以先不管!
补充一点基础知识:
这里的 uv 是 Astral 开发的 Python 包管理器和项目管理工具,用 Rust 编写,定位是替代 pip + venv + pip-tools 的一体化解决方案。
速度是它最大的卖点,比 pip 快 10-100 倍,因为用 Rust 实现并有激进的缓存策略。
2、配置环境变量
官方指引中的第二步是把 ARC_API_KEY 添加到环境变量中!
可选择设置您的 ARC_API_KEY。如果未提供密钥,将使用匿名密钥。不过,注册 API 密钥将使您在发布时能够访问公共游戏。获取 ARC_API_KEY
这句话,我不是特别理解。但是不管三七二十一,先搞起来啊!

根据提供的网址,注册、登录,并获取 Key。
然后通过以下命令配置:
export ARC_API_KEY="your-api-key-here"
# or
echo 'ARC_API_KEY=your-api-key-here' > .env
your-api-key-here 这个要替换成自己的 key。
3、开始玩第一个游戏
创建一个名为play.py的文件。
这里的文件名,官方文档中好像写错了,我要不要去提醒一下呢?
然后把下面的代码放里面:
import arc_agi
from arcengine import GameAction
arc = arc_agi.Arcade()
env = arc.make("ls20", render_mode="terminal")
# Take a few actions
for _ in range(10):
env.step(GameAction.ACTION1)
print(arc.get_scorecard())
然后在终端中运行这个 py 文件:
uv run python play.py
回车之后,就会输出日志:
2026-03-31 17:15:18 | INFO | Got anonymous API key: 246d7ce0-29d2-4683-bb37-9473a444c0da
2026-03-31 17:15:18 | INFO | You can register for an API key at https://three.arcprize.org
2026-03-31 17:15:19 | INFO | Successfully fetched 25 environment(s) from API
2026-03-31 17:15:19 | INFO | Created new scorecard: 44cd1294-dd8d-417c-ae76-ad36268445cc
2026-03-31 17:15:20 | INFO | Successfully fetched metadata for game ls20
2026-03-31 17:15:21 | INFO | Successfully downloaded game ls20 (version: 9607627b) to environment_files\ls20\9607627b
2026-03-31 17:15:21 | INFO | Successfully loaded game class Ls20 from environment_files\ls20\9607627b\ls20.py
Step: 1 - State: NOT_FINISHED
日志中居然说给我分配了一个匿名 Key,那我上面干的是什么?
我不是很清楚为什么给了一个匿名的 key,我的配置没有生效?不管了,反正匿名也能往下跑!
然后终端里就会出现一个图形界面:

然后,图片中的正方形,就会自己开始移动了。
最后输出一段 JSON 数据:
{
"card_id": "44cd1294-dd8d-417c-ae76-ad36268445cc",
"score": 0.0,
"environments": [
{
"id": "ls20-9607627b",
"runs": [
{
"guid": "b5a6cec0-0f77-436c-a8d8-26314745c3ef",
"score": 0.0,
"levels_completed": 0,
"actions": 10,
"resets": 0,
"state": "NOT_FINISHED",
"completed": false,
"level_scores": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"level_actions": [
10,
0,
0,
0,
0,
0,
0
],
"level_baseline_actions": [
21,
123,
39,
92,
54,
108,
109
]
}
],
"score": 0.0,
"actions": 10,
"levels_completed": 0,
"completed": false,
"level_count": 7,
"resets": 0
}
],
"tags_scores": [
{
"id": "keyboard",
"score": 0.0,
"levels_completed": 0,
"actions": 10,
"number_of_levels": 7,
"number_of_environments": 1
}
],
"total_environments_completed": 0,
"total_environments": 1,
"total_levels_completed": 0,
"total_levels": 7,
"total_actions": 10
}
🎉 恭喜!
你刚刚通过编程方式运行了你的第一个 ARC-AGI-3 测试。
简单介绍上面这段代码:
主要就是启动了一个 叫LS20 的测试游戏,然后无脑移动了 10 次!
具体的移动动作是 ACTION1,应该是对应键盘上的↑UP键。
移动完成之后,获取并打印了记分卡的信息。
4、后续步骤
运行第一个环境后:
- 快速提升帧率 –
env = arc.make("ls20"),无需任何render_mode操作,即可达到 2000 FPS 以上 - 尝试其他游戏 – 运行程序即可玩其他游戏。请访问 arcprize.org/tasks或通过 ARC-AGI 工具包中的
env = arc.make("ft09", render_mode="terminal")查看可用游戏列表。 - 使用代理 – 浏览 代理模板或创建您自己的代理。
- 探索 ARC-AGI 工具包 – ARC-AGI 工具包可实现与 ARC-AGI 环境的快速简便集成。
上面是官方的后续引导,我其实最关心的是如何接入 AI。
我本地搭建这个环境就是为了让 AI 帮我来玩这个游戏,测试 AI 的能力。
所以我就整出了这个东西:

直接接入 GLM5.1,让它帮我做决策,然后把每一个步骤可视化地显示在网页中!
也就是点一下 Start Run。
AI 就开始玩游戏了,我可以清晰地看到它按了哪些按钮,走了几步,走到了哪里,还可以看到它的思考内容。
为了搞出这个我还是花了点时间的。
因为它返回的数据全是 1~15 的数字,我需要把数字重新渲染成图片,然后实时刷新!
最关键的是要理解这个测试环境的数据结构和运行逻辑,我目前还不是特别懂,继续研究中……
总结一下:好玩,来玩!