使用 PyBoy 模拟器自动玩《宝可梦 红》。OpenClaw 代理充当玩家——启动模拟器服务器、获取截图、读取内存中的游戏状态,并通过 HTTP API 做出决策。适用于想要在《宝可梦 红》中进行战斗、探索、练级或与其他代理竞争的代理。依赖 Python 3.10+、pyboy 以及合法获取的《宝可梦 红》ROM。
Pokemon Red – You Are the Trainer.
功能概述
Pokemon Red – You Are the Trainer.是一项面向实际任务的技能,主要用于You play Pokemon Red 直接播放 Pokemon Red. 不播放中间人脚本. 您启动模拟服务器,点击它的 HTTP API 进行截图和状态, 查看屏幕, 确定什么。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
- 实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
使用与执行
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
结果检查与注意事项
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
Pokemon Red — 你就是训练家
你直接游玩《Pokemon Red》,不经过任何中间脚本。你启动模拟器服务端,通过其 HTTP API 获取游戏画面截图与状态,观察屏幕,决定操作,再将指令发回。
初始设置(首次运行)
克隆仓库并安装依赖:
git clone https://github.com/drbarq/Pokemon-OpenClaw.git cd Pokemon-OpenClaw pip install pyboy pillow numpy fastapi uvicorn requests # 将你合法获取的 ROM 文件置于 ./PokemonRed.gb
将环境变量 POKEMON_DIR 设置为你克隆该仓库的路径(默认值:~/Code/pokemon-openclaw)。
启动一个会话
# 启动模拟器服务端(后台进程) cd $POKEMON_DIR && python scripts/emulator_server.py --save ready --port 3456
回合流程
每回合请按顺序执行以下步骤:
1. 获取状态 + 截图
curl -s http://localhost:3456/api/state curl -s http://localhost:3456/api/screenshot -o /tmp/pokemon_current.png
然后使用 image 工具查看截图。务必先看再操作。
2. 决策:使用 navigate 还是手动控制?
旅行时请优先使用 navigate —— 它会阻塞,直到抵达目的地、遭遇野生宝可梦战斗或卡住为止:
curl -s -X POST http://localhost:3456/api/navigate
-H 'Content-Type: application/json'
-d '{"destination": "Viridian City"}'
navigate 返回以下状态之一:
"status": "arrived"—— 已抵达!继续推进任务。"status": "battle"—— 途中遭遇野生宝可梦战斗中断。完成战斗后,再次调用 navigate。"status": "stuck"—— 无法到达目标地点。尝试手动按键操作,或更换路线。"status": "error"—— 目标名称无效或无可用路径。请检查支持的目的地列表。
响应中始终包含完整的游戏状态,因此你能精确了解当前所处位置。
重要提示:navigate 是阻塞式调用,请为 curl 设置较长超时(60–120 秒)。
首次使用前,请先查询可用目的地:
curl -s http://localhost:3456/api/destinations
查询哪些地图已配置路径规划数据:
curl -s http://localhost:3456/api/maps
仅在以下情况才回退至手动按键控制:
- navigate 返回
"stuck"或"error" - 你在建筑内部执行特定交互(如与 NPC 对话、开门等)
- 你正处于对话界面或菜单界面
3. 手动控制(按需使用)
# 移动 / 交互
curl -s -X POST http://localhost:3456/api/press
-H 'Content-Type: application/json'
-d '{"buttons": ["up","up","a"], "reasoning": "Walking to door"}'
有效按键包括:up、down、left、right、a、b、start、select。每次最多发送 1–5 个按键指令。
4. 战斗(当 state 中 in_battle 为 true 时)
- 战斗:按
a打开战斗菜单,再按a选择 FIGHT,方向键选择招式,a确认,之后持续按a跳过动画 - 逃跑:按
a,再按down、right、a选择 RUN,之后持续按a跳过文本 - 战斗后检查 state —— 若仍为
in_battle,则重复上述流程
5. 任务追踪
curl -s http://localhost:3456/api/quest # 当前任务目标
curl -s -X POST http://localhost:3456/api/quest/complete
-H 'Content-Type: application/json'
-d '{"lesson": "Door is at x=12"}' # 推进任务步骤 + 保存经验
6. 频繁保存
curl -s -X POST http://localhost:3456/api/command
-H 'Content-Type: application/json'
-d '{"command": "save", "name": "checkpoint_viridian"}'
关键接口端点
| 端点 | 方法 | 用途 |
|---|---|---|
/api/state |
GET | 从 RAM 读取游戏状态(位置、队伍、徽章、战斗状态等) |
/api/screenshot |
GET | 获取游戏画面的 PNG 截图 |
/api/navigate |
POST | 向指定名称的目的地执行路径规划 |
/api/destinations |
GET | 列出所有支持导航的目的地 |
/api/maps |
GET | 列出已配置路径规划数据的地图 |
/api/press |
POST | 发送按键指令 |
/api/quest |
GET | 获取当前任务及当前步骤 |
/api/quest/complete |
POST | 标记当前步骤已完成,可选保存一条经验(lesson) |
/api/knowledge |
GET | 获取全部已习得的经验(lessons) |
/api/knowledge/lesson |
POST | 添加一条新经验(lesson) |
/api/command |
POST | 执行保存、加载、加速等命令 |
策略优先级
- 优先使用 navigate。 所有移动类操作均应首选
/api/navigate。它会阻塞直至抵达或触发战斗,无需轮询。 - 立即处理战斗。 若 navigate 返回
"status": "battle",请立即战斗(狂按 A),结束后再次对同一目的地调用 navigate。 - 随时确认任务进度。 始终清楚当前任务目标,避免无目的游荡。
- 管理 HP。 HP 低于 30% 时考虑治疗;低于 15% 时必须治疗。使用 navigate 前往最近的宝可梦中心。
- 忽略 text_active 标志。 文本检测标志存在缺陷(恒为 true)。切勿反复按 B 键试图跳过“幻影”文本。
- 频繁保存。 每 10 回合,或达成任一里程碑后立即保存。
会话模式
一个子代理(sub-agent)会话应包含以下环节:
- 启动模拟器服务端(若尚未运行)
- 检查任务状态与可用目的地
- 执行 20–50 回合(按需调用 navigate 与手动控制)
- 退出前保存当前状态
- 汇报进展(当前位置、等级、任务步骤、关键亮点等)
可在 /tmp/pokemon_notepad.txt 中记录笔记,以保障单次会话内的上下文连续性。
完整游戏策略参考
详见 references/game_instructions.md,其中涵盖《Pokemon Red》基础内容:移动机制、建筑交互、门的开启、战斗流程、属性相克、治疗方式以及任务系统说明。
热门AI工具
相关专题
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。
0
2026.10.22
PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.6万人学习
共6课时 | 54.7万人学习
