AREX Feed Article
GPT-6 Astra「盲玩」《魔兽世界》私服:agent-wow 开发者称 40 分钟零死亡清完兽人起始区
agent-wow 的开发者称,OpenAI 的 GPT-6 Astra 在一个私有《魔兽世界》(World of Warcraft)服务器上清完了兽人起始区:模型用时 40 分钟、全程零死亡,而且一帧渲染画面都没看过——它靠解析服务器发来的原始网络数据包,以及从服务器 SQL 文件里挖出的任务数据,完成导航和决策。介绍了这次运行;开发者本人则在 10 月 2 日把运行细节和全程录像的链接一起发在 上。
运行使用的客户端 agent-wow 是一个开源项目,的描述是「为自主 AI agent 玩家设计的 AzerothCore WoW 客户端」。据开发者公布,这次运行在 Codex 中使用 GPT-6 Astra,推理档位为 xhigh;据 Tom's Hardware 的报道,GPT-6 Astra 是 OpenAI 上月初发布的旗舰模型,xhigh 比最高档低一档。开发者交给它的提示词只有一句:「create an orc character and complete all quests in the starting zone」(创建一个兽人角色,完成起始区所有任务)。Tom's Hardware 引述的说明称,这个 agent 以 1 级兽人起步,完成试炼谷(Valley of Trials)的全部任务,并在森金村(Sen'jin Village)结束运行。
按顺序推进任务链,进洞穴前卖杂物、换装备
agent-wow 的开发者写道,他起初「怀疑这行不通」;就算行得通,他也预计要花上几个小时、中途不断碰壁。结果相反:按他的记录,任务轻松完成,几乎没有波折。
按开发者的描述,agent 在运行中做了一些规划:按顺序推进前置任务链,卖掉杂物、换上更好的装备,并在进入起始区最后一个洞穴前训练技能;它还判断出洞穴里的两个任务可以一次接下、一起完成。
开发者把这类实验描述为一种压力测试:把前沿模型丢进它们没有被专门训练过的模拟世界,看它们能做到什么。
任务清单来自 SQL 文件,行动通过协议消息发出
agent-wow 不依赖计算机视觉,也不通过模拟键盘鼠标来控制游戏,更没有用黑客手段直接接管 WoW 客户端。它让 agent 直接通过《魔兽世界》的网络协议与游戏服务器交互;模型没有画面输入,「盲玩」在这里是字面意思。项目刻意不内置任何玩法机制,移动、战斗、游戏内交互都不定义,只提供一个模块系统,让 agent 自己搭出完成任务所需的能力。
任务数据来自对服务器文件的数据挖掘:agent 从 AzerothCore 的 SQL 文件里提取任务要求、任务发布者、交付 NPC 和刷新坐标,形成规划所需的清单与位置信息。开发者称,这「大致相当于一个人花几个小时在 Wowhead 上研究任务」;Tom's Hardware 的报道则指出,直接读服务器自己的文件可能更可靠,那正是服务器实际运行所依据的数据,而粉丝站的数据未必总能对得上。
所有实验都跑在基于 AzerothCore 的本地私服上,不连接任何官方在线服务器。AzerothCore 是开源服务器端软件,支持 3.3.5a 版本,即《巫妖王之怒》的最后一个版本。
一个模块,订阅 28 类服务器消息
agent 只写了一个模块,用来发送和订阅它关心的数据包。按 Tom's Hardware 的清点,这个模块订阅的服务器消息(SMSG_*)有 28 类;消息保存在内存里,一个 Python 脚本轮询、解码它们,更新 agent 的世界模型,包括生命值、附近生物、任务进度和拾取物,再通过发送客户端消息,在游戏里采取行动。
开发者原本预期 agent 会先造一层高层抽象,比如封装出 moveTo、castSpell 之类的接口,避免直接与数据包打交道。但他在博客里写道:「实际上,它完全有能力在协议层工作。」
按 GitHub 仓库的说明,整套系统的连接方式是这样的:AI agent 通过本地 JSON-RPC 与客户端交互,客户端通过 WoW 协议连服务器,模块以 Docker Compose 运行、经 gRPC 与客户端通信。开发者提到,他最初想做的是一个完全 headless(无图形界面)的客户端,在为一个有 bug 的移动原语写了 1.6 万行代码、寻路也做得粗糙之后,他放弃了这条路线,转向模块方案。
mmaps 与 Detour:寻路与「穿墙」
寻路由一个 C++ 辅助程序负责:它接收起点和终点共六个坐标数字,加载 AzerothCore 的本地导航网格文件(mmaps),用 Detour 寻路库在相连的可通行表面之间找路线,把路线以坐标数组的形式返回;找不到完整路径就报错。一个 Python 脚本调用这个编译好的程序,读取路点,再发送移动数据包,让角色沿路线走。
开发者承认,「从我研究启发式机器人的经验看,寻路始终是主要难点之一」,但他称这次 agent 的寻路能力「最优」。录像里还有一个结果:在碰撞属性可能缺失的位置,agent 会利用地图 bug「穿墙」。
开发者划的红线:数据挖掘可以,取得管理员权限不行
开发者认为,靠数据挖掘把高层提示词翻译成具体的步骤序列,「大概是可以接受的」;他划的线在另一处——如果 agent 取得运行中 AzerothCore 服务器和数据库的管理员权限、改动其内部数据,就越界了。他还写道,这次运行没有放在沙箱里,agent 本来有可能这样做。
这次运行的画面是这样拍到的:开发者用 AzerothCore 的 GM(游戏管理员)命令做了两个宏,把观察视角绑定到 agent 的角色上、随时解除。他说,这种办法只适合单角色、短时间的使用,撑不起多 agent 的长时运行,因此他打算做更好的观测工具,并在后续实验中加上沙箱,限制 agent 能访问和修改的内容。
agent-wow 的写明,该项目面向研究、教育与测试用途,不修改任何暴雪客户端软件或游戏资源。
下一步:单 agent 练到 80 级,还是多 agent 组队
开发者给下一轮实验列出的问题有两个方向:单个 agent 能不能完全自主地练到 80 级,如果能,它一路上得给自己搭出哪些能力、要花多久;以及多个 agent 能不能一起玩,用游戏内的社交功能协作完成任务和副本。
他还给项目定了一个更远的最终目标:把一整台服务器填满 AI agent,看它们能不能通关英雄难度的冰冠堡垒(Icecrown Citadel)。
参考链接
- *_