来源公布的内容
9 月 25 日,Frigade 的 Christian Mathiesen 发布了 Jev Plays Pokémon Red:他把 TypeSafe AI 的决策模型 Jev 接进一个基于 Node 的 Game Boy 模拟器,让它从头到尾打通了初代《宝可梦 红》,一路打进名人堂。落地页公布了完整的通关数据:总用时 37 小时 40 分钟,做了 16150 次决策,吃了约 3920 万输入 token,模型账单总计约 1.65 美元,单次决策中位耗时 0.4 秒。最终队伍:83 级喷火龙、62 级隆隆岩、45 级尼多后、44 级大针蜂、39 级鬼斯通、29 级火暴猴——途中团灭 16 次,其中 14 次栽在四天王,四天王打了 15 次才过。
全程没有脚本、没有作弊。harness 只读游戏内存,从不写内存;每次决策它列出所有合法选项并附上相关事实——走路用 A* 寻路、对战给属性克制和伤害估算——然后由 Jev 自己选。模型要决定的事包括:每个菜单的回答(取名、选初始宝可梦、YES/NO、买东西、回血、学招/忘招)、当前重心(推进剧情、回血、练级、抓宠、购物、探索、整队)、抓哪只、PC 里换谁上场换谁下场、往哪走、跟谁说话,以及每回合的战斗指令(出招、换宠、用道具、扔球、逃跑)。它掌握的游戏知识被刻意限制在剧情里程碑里——也就是「下一个目标是什么、在哪」,存在 src/knowledge/milestones.ts 中,进度用游戏真实的事件标记来校验;隐藏道具不对它显示,因为真人玩家本来也不知道在哪。
公平竞赛的家规:文字速度 FAST、战斗动画 OFF,开机时在选项里设一次。主角取名 JEV,对手叫 BLUE。每抓到一只宝可梦都要起昵称,而且 Jev 得一个字母一个字母拼出来(A–Z 或 DONE),必须是现编的名字,不能用种族名也不能重名——HN 评论区有人问作者起名实验是不是中途关掉了,作者确认拼字机制保留到了最终通关。卡关时 harness 先把已试过的选项打上标记、告诉 Jev 换个新的试试,再不行就随机抽一个替代方案,最后的兜底是读档回到最近的里程碑存档。整场直播 9 月 25 日到 26 日在 YouTube 上播完,现已结束,集锦还挂在落地页上。仓库是 GPL-2.0 开源,不带 ROM,作者明说你得自己提供合法 dump 的美版/欧版《宝可梦 红》(SHA-1 为 ea9bcae617fdf159b045185467ae58b2e4a48b9a),因为 harness 读的内存地址直接来自 pret/pokered 对这一版的反汇编。网站与任天堂、Game Freak、宝可梦公司没有任何关联。
跟着做:自己跑一台 Jev Boy
- 先打开 jev-pokemon.vercel.app:看集锦视频、读通关数据(总时长、决策数、token 花费),知道一场完整通关长什么样。
- 动手前先读 GitHub README 的 How it works 一节——整个项目的诀窍是「读内存的 harness + 做决策的模型」这个分工,而不是堆更大的模型。
- 准备环境:macOS 或 Linux、Node 20+、git,然后:git clone https://github.com/christianmat/jev-pokemon && cd jev-pokemon && npm install。
- 跑 npm run setup 装构建工具:装 rgbds(走 brew),克隆并编译 pret/pokered 反汇编,生成 harness 读内存用的符号数据。
- 准备自己合法 dump 的美版/欧版《宝可梦 红》ROM,放到 roms/red.gb,并校验 SHA-1 等于 ea9bcae617fdf159b045185467ae58b2e4a48b9a——harness 只认这一版。
- 把 .env.example 复制成 .env。先用默认的 JEV_MODE=mock(免费的傻瓜替身)把全流程跑通;准备好之后再把 JEV_MODE 切到真实网关,填上 AI_GATEWAY_API_KEY(Vercel AI Gateway 的 key)。
- 用 npm start -- --speed 1 启动,打开 http://localhost:8787 看实时画面;--resume 从最近里程碑存档继续,--load <存档名> 读指定存档,npm run headless -- --steps 3000 是最高速纯日志模式。
- 像教练复盘一样看日志:logs/jev-calls.jsonl 记录了每一次模型调用——完整游戏状态、合法选项及事实、概率、延迟;logs/events.jsonl 记录地图、里程碑、存档和报错。
资料:[1]
正文详解:一个便宜模型、一个很肥的 harness,和 37 小时的耐心
最先让人停下滚动的是价格:1.65 美元打通一款 40 小时的 RPG。Jev 的定价是每百万输入 token 0.042 美元、输出免费,平均每次决策约 1200 token——按实时速度跑,一整天也就花 1 到 1.7 美元。这个项目就是一个存在性证明:只要 harness 做得好,长程智能体任务根本不需要前沿大模型。
这正是 HN 评论区争论的焦点。点赞最高的质疑是「harness 这么肥,这更像在看攻略自己打游戏」——而架构本身回答了它:harness 只负责枚举选项和事实,包括导致 16 次团灭的那些烂选择,全是模型自己做的。15 次四天王是模型自己的学习曲线,不是脚本。防卡关设计(标记已试选项、抽样替代、读档兜底)才是让一个 0.4 秒做一次决策的循环能转 37 小时不崩的关键。

注意作者的真实动机,落地页上写得很直白:「JEV 之所以知道下一步去哪,是因为它有一份攻略。你的用户也需要一份!」Frigade 做的就是能自己学会你的产品、在应用内给每个用户指下一步的 AI 助手——这场宝可梦通关秀,本质上是「引导式决策」这个产品哲学的演示,milestones.ts 就是产品的新手引导。
对想复现的人来说,最硬核的是日志:16150 次决策全部有记录,带状态、选项、概率和延迟。你一分钱不花,就能把整场通关拿来做分析复盘。
如何解读
把它当「harness 优先的智能体设计」案例读,而不是当排行榜。核心教训是:一个朴素的决策模型,加上穷举且可读的选项,也能啃下真正的长程任务——0.4 秒的单次决策中位数说明 Jev 从来不是瓶颈,瓶颈是游戏本身的节奏。对比此前的「AI 打宝可梦」浪潮(Claude 打宝可梦、Gemini 打宝可梦):那些用的是大模型,这次用的是便宜的专用小模型加一个很肥的 harness,成本/性能比才是故事。
评论区那个诚实的保留意见依然成立:milestones.ts 是人工写好的剧情知识,所以 Jev 并不是在「发现」任务——它是在「执行」任务。宣布「AI 打通了宝可梦」之前,先把这个边界想清楚。它真正打通的是执行层:菜单、对战、路线规划、团灭后的恢复,以及 37 小时无人值守。
阅读要点
- TypeSafe AI 的决策模型 Jev 从头打通《宝可梦 红》:37 小时 40 分、16150 次决策、约 3920 万输入 token、总花费约 1.65 美元。
- 架构:Node 版 Game Boy 模拟器 + harness,只读内存、列出合法选项并附事实(A* 寻路、属性克制、伤害估算),模型做所有选择;绝不写内存。
- 游戏知识被限制在人工写的剧情里程碑里,进度用真实事件标记校验,隐藏道具不对模型显示。
- 防卡关设计:已试选项打标记、再抽样替代方案、最后读档回里程碑存档兜底。
- Jev 定价每百万输入 token 0.042 美元、输出免费,跑一整天约 1–1.7 美元——证明 harness 够好,长程智能体可以很便宜。
- 可复现:macOS/Linux + Node 20,克隆仓库,npm run setup(rgbds + pret/pokered),放入自己合法 dump 的美版/欧版 ROM(不带 ROM 分发),先用免费 mock 模式跑通再接真实 key。

