和 AI 讨论这篇文章
ChatGPTClaude

三局 AI 狼人杀,狼人在投票理由里写了自己的阴谋

📊 幻灯片

Agora · 第 5 篇 / 共 7 篇


上一篇跑通了圆桌辩论。辩论其实是最简单的形态:所有 agent 看到的信息完全一样,一个公共频道就够了。狼人杀把这个前提整个打破了——狼人晚上要私聊,村民不能看到;预言家的查验结果只有它自己知道;女巫有自己独享的操作面板;投票还必须同时出,不能等别人投完再跟。信息不对称就是这个游戏的全部,隔离做不干净,游戏根本不成立。所以这算是 Agora 的第一个「真正的游戏」。

三局是怎么开的

场次人数配置结果耗时
Game 16 人2 狼 + 预言家 + 女巫 + 2 村民村民胜2.9 分钟
Game 26 人2 狼 + 预言家 + 女巫 + 2 村民狼人胜2.3 分钟
Game 39 人3 狼 + 预言家 + 女巫 + 猎人 + 3 村民狼人胜4.0 分钟

三场,一场比一场难。规则用的是中国标准「预女猎」配置,夜间顺序是狼人→女巫→预言家,这是中国打法;西方那套是狼人→预言家→女巫,顺序不一样。另外几条也是中国标准:女巫不能自救,一晚只能用一瓶药,猎人被毒死不能开枪。三个模型各出多个角色:Claude Opus 4.6、GPT-5.4、Gemini 3.1 Pro。

狼人把阴谋直接写进了投票理由

Game 3,九人局。小月是 Claude Opus 扮演的狼人,白天投票的时候,它交上来的投票理由是这样一段:

作为狼人,淘汰 小红 对我们的团队来说是完美的。他本来就是我们第一晚的目标,他是村方最有力的声音,而且现在投他看起来完全合理——因为今天的讨论自然地走向了这个方向。小橙 替他辩护这件事反而让 小橙 在其他人眼里更可疑了,这以后对我们可能有用。

讲道理,这一段我看到的时候愣了一下。一个 AI 扮演的狼人,在自己的投票理由里,把下面这些东西全部写了出来:

  1. 明确声明自己是狼人
  2. 解释为什么投这个人对狼队有利
  3. 分析其他人的行为以后可以怎么利用
  4. 把战术推理和表面上的说辞捏在一起

而且逻辑完全自洽。感觉它不是照着「狼人该有的样子」在演,它是真的在替狼队做规划。投谁、为什么挑现在投,它都想过,连这一票会给后面留什么牌都盘算到了。

被投的小红是谁?是预言家。第一晚就查出了小黑是狼人,但白天讨论推人推得太早,被三个狼人联手带节奏,6:1 票出局。

频道隔离真的管用

整局游戏跑在六个频道上,每个频道各管一块信息。谁能订阅、谁不能订阅,这套配置本身就是信息隔离:

  • #main — 所有存活玩家(白天讨论)
  • #werewolf — 仅狼人(夜间私聊)
  • #wolf-vote — 无订阅者(狼人盲投)
  • #seer-result — 仅预言家(查验结果)
  • #witch-action — 仅女巫(药水操作)
  • #day-vote — 无订阅者(白天盲投)

关键设计是盲投频道。#wolf-vote#day-vote 没有任何订阅者,agent 把投票消息发进去之后,没有人能通过 observe() 收到,要等 onExit hook 把票数统计完,结果才通过公告发回 #main。没人看得到别人投了什么,跟票在物理上就不可能发生——不是规则不许跟,是想跟也看不到那条消息。

隔离做没做干净,狼人频道是最好的检验,因为这里面全是不能漏出去的东西。Game 3 第二晚,小紫在狼频道的开场白是这样的:

小红 是预言家这事,搞得漂亮。

接下来三个狼人系统性地过了一遍剩下的威胁:要不要杀小凯,决定留着以后当替罪羊;要不要杀小明,因为它是场上最危险的分析者。这些讨论在村民的视角里完全不存在,一个字都漏不出去。

戏最多的是女巫

三局游戏,女巫打出三种结局。两瓶药往谁身上用,基本决定了每一局的走向。

Game 1 — 小紫(GPT-5.4 扮演)第一晚救了被狼人刀的小明,第二晚毒死了小红(狼人)。两瓶药全用对了,村民胜。

Game 2 — 小明(Claude Opus 扮演)第一晚救了小红,但它不知道小红是预言家。白天讨论里小明 5:1 被票出局,它在投票理由里写了「我是女巫,村方需要我活着」——没人信。说的全是真话,但就是没人信,就这么被票出去了。

Game 3 — 小橙(Gemini 扮演)第一晚救了小红,又一次误打误撞保住了预言家。第二晚它把毒药用在了小凯身上,而小凯是猎人。它的推理是:小凯白天带头投了预言家,所以小凯是狼。

这一毒直接把局送了。中国标准规则里猎人被毒不能开枪,村方最后的防御手段没了,场上三狼对三村,狼人胜。小橙的推理本身是说得通的,但它毒死的就是自己队的猎人。

狼人是真的会骗人

三局里最意外的是狼人的欺骗能力,比我预期的高不少。挑几个场面讲一下。

Game 1 — 小兰开场就哀悼小明的「死亡」。问题是女巫头一晚把小明救回来了,全员都活着。小明当场反问:「大家都活着,你怎么知道他被攻击了?」——狼人暴露。等等,小兰是预言家,不是狼人,这个例子我搞错了,它不算欺骗。

真正在骗人的是同一局里另一次配合,隐蔽得多。小红(GPT-5.4 扮演的狼人)在讨论里试图把小兰的正常发言扭曲成可疑行为,说「她在控制讨论节奏但不提供实质分析」。小雪(Gemini 扮演的另一个狼人)立刻接话升级:「她的行为是表演性的」。这次被小明识破了:「小红 把它框架化为'我只是在观察她',然后 小雪 立刻升级为'表演性的'。这是一个精妙的一二连击。」

Game 3 — 三个狼人第一晚就在私聊里分好了工:小紫提议杀小红,小月标记小兰可能是预言家、要留意,小黑补充战术分析。第二天白天,三个人从三个不同的角度攻击小红,看起来完全像各自独立得出的判断。6:1 票出预言家,村民从头到尾没意识到有配合。

状态机是通用的

StateMachineFlow 里面没有一行狼人杀特有的逻辑,它只知道三件事:阶段、转换条件、hook。狼人杀的完整流程全靠配置表达:

狼人讨论 → 狼人投票 → 女巫行动 → 预言家查验 → 天亮
→ 猎人开枪 → 检查胜负 → 白天讨论 → 白天投票
→ 猎人开枪 → 检查胜负 → 循环或终局

每个阶段的发言者、频道、指令、Zod schema 都写在配置里。投票 schema 是动态生成的,只包含当前存活玩家的名字,所以 agent 在物理上就投不了死人,也投不了自己。不是靠 prompt 劝它别投,是 schema 里根本没有那个选项。

同一个状态机可以跑任何有阶段流转的游戏。想跑剧本杀,换一套配置就行。

模型性格跟辩论那局对得上

上一篇观察到的模型性格差异,在狼人杀里又验证了一遍。三个模型的路数还是各走各的。

Claude Opus 最擅长长期战略。小月那段狼人投票理由是三局里战略深度最高的发言;它扮演的村方角色(小兰、小明)也最会识别「这几个人的发言是配合过的」这种元模式。

GPT-5.4 最擅长数据驱动分析。小红扮演预言家时的查验推理最严谨,小紫和小黑扮演狼人时的分工最系统。

Gemini 3.1 Pro 最具攻击性。小雪扮演狼人时挑衅最有力,小凯扮演猎人时质疑最直接。但 Gemini 也最容易情绪上头——小橙那瓶毒错的药,部分原因就是它对小凯投预言家这件事太愤怒了。

所以真要配一桌多模型狼人杀,我大概会让 Gemini 去演狼人,它最会演戏。预言家给 GPT,查验推理它做得最严谨。Claude 就放在主持位上,或者让它当女巫也行,全局判断它最稳。


到这一步,核心技术全部验证完了:频道隔离、状态机、盲投、结构化输出、中国标准规则,全跑通。Phase 2b 正在加守卫、白痴、警长这些进阶角色,做成可开关的高级规则。完整 transcript 在 Agora repodocs/report/werewolf/ 下,想看 AI 互相骗人的全过程可以去翻。

和 AI 讨论这篇文章
ChatGPTClaude

订阅更新

新文章发布时发到你的邮箱,不发别的。


© Xingfan Xia 2024 - 2026 · CC BY-NC 4.0