……无头运行部分是有意设计的。

而并非有意的是,编码代理通过日志这种粗陋且消耗令牌的工具来分析游戏中发生的情况。

代理需要更好的工具来读取游戏状态,甚至可能影响游戏。

所以我需要一些想法。谁做过类似的事情?哪些方法奏效了?

显然,LLM 的速度太慢,无法实时运行游戏。但它也不必实时运行。理论上它可以……

  1. 生成一张地图,让 NPC 做事情或互相战斗(这很简单。我的编码代理已经无需指令就能做到。昨天它建了一个 NPC“射击场”,我完全是偶然发现的。还发现了一些 AI 遗漏的 bug,这当然也是意料之中)

  2. 编写脚本让 NPC 执行特定操作

  3. 控制一个 NPC,不是实时控制,而是每隔若干帧“与其交互”,读取某种历史记录并赋予它新的目标

所有这一切都假设游戏和引擎支持,并且存在一个可供外部代理使用的双向接口。

哦,当然,你可以用一个假时钟来控制游戏循环的速度,这样 AI 就能以 CPU 允许的最快速度运行——比如在假想的 60 赫兹下运行 500 帧——然后暂停,读出游戏状态,花时间进行推理,再恢复游戏。

另一种可能比日志更好的接口或数据格式是复制状态。如果游戏具有支持状态复制的多人模式,只需重新利用网络代码,将游戏状态输入给 LLM(也许通过某种中间层,将一些高频数据累积成短期历史记录之类的东西)。

疯狂的想法。但我们生活在一个疯狂的时代,尝试愚蠢的想法然后失败,现在成本很低。