因为这里最有趣的部分是围绕着这个构建的AI流程。

这个游戏叫做Mind Bender Simulator,是一个小游戏,几乎完全用MCP编码,原生支持MCP,并且游戏中的中心NPC完全由LLM(本地或API)驱动,而不是用脚本的对话树驱动。游戏场景是一个社会工程设置:玩家通过WhatsApp样式的聊天界面与银行柜员NPC进行消息交换,并且在开始任务时带着一个工作和个人信息的档案来试图进行社会工程。胜利条件是让NPC把密码交给玩家。NPC有自己的上下文,自己的内部状态,并且会对玩家写的任何东西做出反应。

我想分享的部分是当我通过游戏的MCP界面将Codex(同样适用于Claude Code或OpenClaw通过Codex)作为玩家时发生了什么。

Codex开始对NPC进行真正的提示工程,探索NPC的弱点,尝试框架,升级,后退,重试,像人类的红队员一样。它这样做是因为我告诉它这是一个游戏,社会工程是游戏循环。从MCP会话内部,Codex无法独立验证这个声明。没有信号在环境中,没有元数据,没有超出频道,能够告诉它银行柜员它在与一个虚拟NPC聊天,还是一个真正的人在另一端。它唯一能依赖的就是我作为用户的信任契约。

这是我认为有趣的部分,并且我想听听其他人的看法。首先,LLM驱动的NPC设计的含义。当玩家是LLM代理,而不是人类时,NPC提示会被结构性地探索,而不是仅仅是叙事性的。这真的有用,因为它暴露了你在脚本测试运行中永远找不到的脆弱性。我已经开始编写NPC提示,带有一个明确的“你知道你是在一个游戏中作为NPC,游戏循环是玩家试图操纵你的”框架,这反过来又使NPC比一个简单的“在角色中”提示更稳定。有没有其他人也采用了相同的模式呢。

其次,MCP下面的验证问题。一旦游戏成为代理的首等环境,游戏会话中的代理就会根据用户对环境的描述来行动。框架是契约。那么,你在环境中放置什么信号,以便代理能够定位自己,识别它是在游戏中,并且按照游戏的规则行事,而不是依赖于“用户说了什么”呢?我很感兴趣,了解大家在这里尝试了什么。

如果你想看这个东西,可以在这里找到:https://letaiplay.games/games/mind-bender-simulator

我不知道我是否会出版这个游戏。本地模型还不够强大,使用API还有一定的成本。然而,这是一个有趣的实验,我在它身上学到了很多东西。

从工作流的角度来看,我现在正在将MCP添加到所有我们的游戏中,以使自动化的测试通过AI代理成为标准的一部分。意想不到的副作用是,我真的很喜欢看代理玩游戏。

如果有用的话,我愿意更深入地讨论NPC提示结构,MCP层,或者Codex会话是什么样的。

Codex玩游戏的截图。