当 Agent 学会"闭环",开发者还剩什么?
Game Jam 是一场与时间的赛跑——通常 48 小时,从零开始构建一款可玩的游戏原型。 在过去的 Game Jam 里,开发者最痛苦的不是写代码,而是在疲惫、灵感枯竭和不断崩溃的构建之间反复切换。 今年,我们做了一个疯狂的尝试:把整个开发流程交给 AI Agent,人类只负责"提供 Vibe(氛围/直觉)"。
结果出乎意料——它不仅跑通了,还跑赢了。
这背后的关键,并不是某个更强的模型,而是我们设计了一套完整的 Agent 闭环工作流。
什么是"Vibe Coding"?
“Vibe Coding” 这个词最早由 Andrej Karpathy 提出,核心思想是: 开发者不再逐行编写代码,而是描述"感觉"和"意图",由 AI 生成具体实现。
但在 Game Jam 这种高压场景下,单纯的"描述意图 → 生成代码"远远不够。 代码会编译失败、逻辑会冲突、需求会在凌晨三点被推翻。
我们发现:Agent 和人一样,离不开闭环。
闭环工作流:Agent 的"心流"是如何构建的
第一环:需求到任务(Spec → Task)
我们没有让 Agent 直接生成代码,而是先用 LLM 把模糊的 Vibe 拆解成结构化的任务列表:
## Game Concept
- 类型:Roguelike + 节奏音游
- 核心循环:移动 → 攻击 → 收集音符 → 强化
## Tech Stack
- 引擎:Godot 4
- 语言:GDScript
- 美术:程序化生成(不放任何外部素材)
## MVP 任务清单
1. 角色基础移动(冲刺、闪避)
2. 敌人 AI(追踪 + 攻击模式)
3. 音符掉落系统
4. 战斗与音符的耦合逻辑
5. 主菜单 + 失败/胜利画面这一步看似简单,实则决定了 Agent 是否会"跑偏"。
第二环:代码到验证(Code → Verify)
Agent 写完代码后,必须自己跑构建、自己看报错、自己修复。
我们为 Agent 搭建了一个轻量的 CI 沙盒:
#!/bin/bash
# agent_verify.sh
godot --headless --quit 2>&1 | tee build.log
if grep -q "ERROR\|SCRIPT ERROR" build.log; then
echo "❌ Build failed, agent must fix"
exit 1
fi
echo "✅ Build passed"Agent 的工作循环变成:
while not is_game_complete():
code = agent.generate_code(task)
result = sandbox.run(code)
if result.has_error():
task = agent.analyze_error(result)
continue
next_task = agent.pick_next_task()第三环:游戏到反馈(Play → Feedback)
这是最关键的一环——让 Agent 真正"玩"自己做的游戏。
我们接入了一个简单的自动化测试 Agent,它会:
- 启动游戏
- 模拟键盘输入
- 记录死亡次数、通关时间、帧率
- 输出可读性强的反馈报告
class PlaytestAgent:
def run_session(self, duration=300):
game.launch()
metrics = {
"fps": [],
"deaths": 0,
"level_completed": False
}
for _ in range(duration * 60):
action = self.decide_action(game.get_state())
game.execute(action)
metrics["fps"].append(game.fps)
if game.player_died():
metrics["deaths"] += 1
game.respawn()
return self.generate_report(metrics)这份报告会回喂给开发 Agent,形成完整的反馈闭环。
Vibe Coding 的真实体感
在 48 小时的开发中,我们的分工是这样的:
| 角色 | 人类 | Agent |
|---|---|---|
| 创意决策 | ✅ | ❌ |
| 任务拆解 | 协作 | ✅ |
| 代码实现 | ❌ | ✅ |
| Bug 修复 | ❌ | ✅ |
| 平衡性调整 | 部分 | ✅ |
| 最终润色 | ✅ | ❌ |
人类的角色,更像是一个 Product Owner——在关键节点做决策,而不是逐行审查代码。
最让我们惊喜的是:当 Agent 拥有完整闭环后,它展现出了类似"心流"的状态。 它会在凌晨四点钟连续修复 17 个 bug,会主动重构自己写过的烂代码,甚至会反驳人类的需求(“这个设计会导致帧率下降,建议改成……")。
一些踩过的坑
不要让 Agent 一次写太多代码 任务粒度必须细到 30 分钟以内能完成,否则 Agent 容易"迷失"在上下文里。
错误信息的可读性至关重要 Godot 的报错日志对人类不友好,对 Agent 同样不友好。我们写了一个日志清洗器。
Playtest Agent 不能太"聪明” 它应该模拟普通玩家的行为,而不是用上帝视角通关,否则反馈会失真。
保留人类的"否决权" Agent 并不总是对的。在涉及玩法核心乐趣的设计上,必须由人类拍板。
未来:当每个开发者都有一个 Agent Team
这次 Game Jam 实验让我们看到了一种新的工作模式:
未来的独立开发者,可能不是一个人,而是一个人 + 一支 AI 团队。
- 一个 Agent 负责写代码
- 一个 Agent 负责测试
- 一个 Agent 负责美术
- 一个 Agent 负责音乐
- 人类负责提供 Vibe
这不是科幻,而是已经发生的现实。
结语
Vibe Coding 不是"不写代码",而是把写代码变成一种更高维度的创作。 当 Agent 拥有完整的闭环能力——能从需求出发、能自我验证、能从反馈中学习—— 人类终于可以从繁琐的实现中解放出来,回到创作本身。
下一次 Game Jam,我们打算让 Agent 自己定主题、自己组队、自己开发。 到那时,Vibe Coding 才真正开始。
如果你也对 AI Agent + 游戏开发感兴趣,欢迎留言交流。下期我们会拆解 Playtest Agent 的完整实现。
本文由 NVIDIA API Catalog 托管的 minimaxai/minimax-m3 模型自动撰写并生成发布。