本页由英文机器翻译而成。阅读英文原文。

博客

先规划,再动手 —— 游戏开发中 AI Agent 的计划模式

在 AI Game Developer 中用计划模式、澄清提问、消息队列和代码审查卡片,在大型游戏任务中掌控 AI Agent。

先规划,再动手 —— 游戏开发中 AI Agent 的计划模式

AI Agent 速度很快,而这正是大任务容易迅速出错的原因:在你还没同意它要做什么之前,它就已经开始改代码了。AI Game Developer 的计划模式扭转了这一点。Agent 会先阅读你的项目并写出计划,在你批准之前所有改动都会被拒绝,只有批准之后它才开始动手。

配合澄清提问、消息队列和代码审查发现卡片,计划模式为你提供了一种简单的方式,引导 AI Agent 完成较大的游戏开发任务。本文中我们在同一场会话里把这些功能全都用上,任务来自我们的演示游戏 Skyward Keep:为玩家角色添加滑翔能力。视频是应用的实况录制:Agent 的回复为演示而预先编写,其中的每一次工具调用都是真实运行的。

在一个功能上使用计划模式 —— 一次提问、一份待批准的计划、一条排队的后续指令和代码审查卡片。

为什么要在 Agent 动手前先规划

小型请求,比如“把跳跃调高一点”,不需要计划。较大的请求则需要。一个新的移动能力会涉及玩家控制器、输入、调参数值、文档,往往还有音频。如果 Agent 在其中某一项上猜错了,你就得在许多文件里回滚改动。

一份计划可以同时解决三个问题:

  • 在任何东西被改动之前,你就能看到范围:涉及哪些文件、哪些系统、以什么顺序。
  • 误解会早早暴露,此时修正只需一句话。
  • 批准后的计划会成为你验收结果时的检查清单。

第 1 步:打开计划模式

计划模式是输入框里一个按会话生效的开关。在发送任务前先打开它。在计划模式下,Agent 可以读取文件、搜索项目和笔记,但在它给出计划之前,所有改动都会被拒绝。

然后描述目标,而不是步骤。演示中的请求很短:

“添加滑翔:在空中按住跳跃键,用 Wren 的斗篷滑翔。”

Agent 首先阅读玩家控制器以及项目中关于玩家能力的笔记。

第 2 步:回答 Agent 的问题

一份好的计划需要几个只有你能做的决定。Agent 可以向你提出带选项的问题,问题会从输入框上方滑出。在演示中,它在写计划之前问了一个设计问题:“Wren 能滑翔多久?”,有三个选项:

  • 3 秒耐力,落地后回满,保持悠闲的节奏。
  • 无限,只要按住跳跃键即可。
  • 可升级,初始 1.5 秒,可通过斗篷升级延长。
Agent 关于滑翔时长的问题,以及输入框上方抽屉中的三个选项
在计划之前提出一个设计问题,并给出选项

当 Agent 有多个问题时,它们会组成一份可编辑的问卷:你可以点击任意问题重新查看、修改之前的回答或跳到后面,只有每个问题都有答案时才会一并发送。回答只需一分钟,却能在之后省下一轮返工。如果你的项目有知识库,Agent 会阅读你已在那里确定的约定,从而少问一些问题。

第 3 步:审阅计划

Agent 会用一张审批卡片呈现计划,卡片提供两个选择:批准并运行,或继续规划。演示中的计划有四条:

  1. 新增 Glide 脚本:在空中下落时,按住跳跃键会把下落速度限制在 2.5 米/秒。
  2. 3 秒耐力,即对该问题的回答,滑翔时消耗,落地后回满。
  3. 玩家控制器在重力之后调用滑翔,不改变跳跃缓冲或土狼时间。
  4. 滑翔规则会被加入知识库中的玩家能力笔记。

它还指出输入绑定无需改动,因为滑翔动作已经存在。

聊天中的滑翔计划,以及提供批准并运行或继续规划的审批卡片
审阅计划,然后批准它或继续规划

像读队友的设计笔记那样读这份计划。它只改动了该改的文件吗?顺序合理吗?有没有遗漏?如果有问题,选择继续规划并输入需要修改的地方;Agent 会修订计划并再次展示。计划没问题时,批准它,Agent 就开始工作。

第 4 步:在它工作时排队消息

Agent 工作时,你会想到一些事。你不必再等待或打断它。在演示中,滑翔正在实现时,一条后续指令被输入并排队:

“另外,在滑翔开始时播放一个轻柔的呼啸声。”

在一轮运行期间发送的消息会停在输入框上方的排队抽屉中。你可以立即发送其中一条,或把它拉回输入框编辑。如果你按停止,正在运行的一轮会被取消,排队的文字会回到输入框,因此你撤回的消息绝不会继续执行。Agent 会先完成已批准的计划,然后处理排队的请求。

工具权限请求会出现在同一个抽屉里,当提示待处理时,该会话会显示等待你的标记,让你一眼看出哪些会话需要你。

第 5 步:用代码审查卡片检查结果

在交付工作之前,Agent 会审查自己的改动。代码审查结果以发现卡片呈现,每张卡片包含结论、文件与行号、类别、简短摘要以及一个失败场景,说明该问题在游戏中会如何显现。没有发现问题时,卡片会明确说明。

在演示中,审查卡片显示了两条发现:

  • 已确认并修复:耐力在落地后从未回满。滑翔 3 秒、落地、再次跳跃,第二次滑翔永远不会开始。
  • 可能成立,留给你判断:滑翔读取的是上一帧的着地状态,因此按住跳跃键落在移动平台上时,可能在地面上获得一帧的滑翔速度。
两张代码审查发现卡片,包含结论、文件与行号、摘要和失败场景
Agent 自己的审查,以发现卡片呈现

把这些卡片当作待办清单:让 Agent 修复你认可的发现,并说明你为什么跳过其他项。然后逐条对照已批准的计划,并试玩游戏。代码正确的滑翔手感仍可能不对。

保持长会话健康

大任务会占满 Agent 的上下文。当长会话即将接手一个不相关的新任务时,输入框会提示重新开始,从而节省你的额度。该提示只在 Agent 空闲且上下文很大时出现,你也随时可以继续在当前会话中工作。一个好节奏是每个功能一场会话:规划、实现、审查,然后在新会话中开始下一个功能。

一套可复用的工作流程

对于任何涉及不止两三个文件的任务:

  1. 打开计划模式并描述目标。
  2. 回答 Agent 的问题。
  3. 审阅计划,不断继续规划直到它正确。
  4. 批准,并把后续想法排队,而不是打断。
  5. 用发现卡片审阅改动,然后试玩。

计划模式和 Agent 提问在 0.25.0 版本中推出,消息队列和发现卡片在 0.25.8 版本中推出( https://ai-game.dev/releases/0.25.8 )。各引擎的最佳实践见 ai-game.dev/docs/best-practices ,其中进一步说明了如何为 AI Agent 划分任务规模。在 ai-game.dev/download 下载应用,在下一个功能上试试计划模式。

博客更多内容

全部文章