0%

让五个 AI 打了五局德州扑克,最大的输家是样本量

我用 WorkBuddy 的多智能体团队模式搭了一张德州扑克桌:一个荷官引擎加五个 AI 玩家,每人一本人设策略,打了五局。赛果看起来很精彩——松凶型玩家 P2 五局累计 +1260,跟注站 P5 第三局就被打破产(-1000)。

一个诱人的结论几乎是现成的:“松凶碾压跟注站,激进策略赢了。”

这个结论是错的——或者说,是不负责任的。五局牌里两次是所有人弃牌的 walk 局(底池合计只有 60),真正打完的完整牌局只有三手,摊牌更是只发生了两次。为了搞清楚”五局牌到底能说明什么”,我把五个人设翻译成了启发式参数,用同一个引擎跑了 1000 局蒙特卡洛(v1/v2 策略各 500 局)。数据揭示了三件比”谁赢谁输”有意思得多的事。

一分钟规则与本文设定

德州扑克的核心循环很简单:每人发两张只有自己能看的底牌,随后桌上陆续翻开五张公共牌——三张「翻牌」、一张「转牌」、一张「河牌」,每发一轮公共牌之间有一轮下注;还没弃牌的玩家最后用底牌加公共牌中最好的五张比大小,这一步叫摊牌。下注轮里可以加注施压、跟注、弃牌认输,也可以全下(把剩余筹码一次押完)。当一轮下注没人跟、最后剩下的玩家直接收走底池时,这手牌叫 walk——文中反复出现的”walk 局”就是大盲注白捡底池的免费一手。

本文实验的桌上规则(引擎实现,全程不变):

参数
在座人数 5
起始筹码 每人 1000
盲注 小盲 10 / 大盲 20,每局强制投入、位置轮流
加注限制 单次加注增量 ≤ 200,每条街最多 2 次加注

后文反复出现的 EV 指期望值(Expected Value):一种策略平均每手牌赢或输多少筹码,是衡量策略好坏的唯一靠谱指标。另外,翻牌前第一个行动的位置俗称 UTG(枪口位)——信息劣势最大的位置,后文玩家喊话里会提到。

桌子是怎么搭起来的

先交代机制,因为”信息隔离”是这套实验里我最满意的部分。

架构上只有两类角色:

  • 荷官引擎(一个 Python 脚本):持有全量状态——每个人的底牌、未发出的牌堆、烧牌。它不知道任何人”该怎么打”,只负责发牌、验证行动合法性、结算分池。
  • 五个玩家代理(LLM 实例,人格化命名 P1-TAG 到 P5-STATION):从机制上拿不到任何不属于它的信息。轮到谁决策,荷官就给谁生成一份”个人视图”——自己的底牌、公共牌、各家的筹码和下注量、合法行动区间。其他人的底牌和牌堆不存在于这份视图里,代理想作弊也没有数据源。

通信是定向的:手牌消息只发给本人,桌面广播只含公共信息。五个人设是写在各自 prompt 里的策略全文,比如紧弱型 P3-ROCK 的原文是:

极度保守:只玩超强起手牌(AA/KK/QQ/AK),其余一律弃牌。从不诈唬,只在拿到三条及以上超强成牌时才下注或加注……宁可错失小底池,也不冒任何风险。

每个决策代理都会附一句 ≤40 字的”桌面喊话”作为决策理由,这让复盘变得非常有趣——你能看到每个 AI 在想什么。

三手值得记住的牌

五局里的高光全部集中在第二、三局。

第二局,P2-LAG 的一对 2 打满四条街。P2 拿着一对 2,从翻牌开始连开三枪(连续三轮下注施压)、一路打到河牌全下,把底池推到 1410——对面 P5-STATION 的心理活动是”剩 110 全跟了,输了也认”。一对 2 赢下 1410,这一手把 P2 推上了累计盈利榜首。

第三局,P2-LAG 的口袋 A 价值课,也是 P5 的葬礼。P2 翻前 3 倍加注(”口袋A绝无慢打”),翻牌拿到一对 A——高于公共牌最大牌 K 的”超对”,强度等价于顶对顶踢脚——于是持续下注,转牌 110 全下锁死短码。P5 用顶对 Q(底牌 Q 与公共牌最大牌 Q 配成对子)全跟:”顶对Q赔率22%,LAG小注多半在吓我”。摊牌:AA 一对 A 胜 Q8 一对 Q,510 底池。P5 筹码归零,按规则坐外,后两局只能观战。

第四、五局连续 walk。P5 破产后四人在座,剩下的人集体收紧——P3-ROCK 拿着 A 高牌弃掉(”UTG位置磐石只玩AA/KK/QQ/AK”),P1-TAG 单挑小盲弃掉 K6s(”不足前20%门槛,纪律高于底池”),P4-GTO 弃掉 63o 和 94o。两局加起来的动静还不如一次盲注。

最终积分:P2 +1260、P1 -20、P3 -30、P4 -210、P5 -1000。筹码全程守恒,每人起始 1000。

反思一:五局牌的”结论”值多少钱

先算一笔账:五局中两局是 walk,有效对局 3 手,摊牌 2 次。也就是说,整个”松凶碾压跟注站”的故事,证据基础是两次摊牌

更麻烦的是方差。单手德州扑克的筹码波动标准差在 200-300 筹码量级(起始 1000、盲注 10/20 的设定下),五局累计的波动轻松超过 ±500。而后文你会看到,这几个人设之间真实的每手期望差只有 15-70 筹码。也就是说:信号比噪声小了一个数量级。

五局牌唯一能可靠告诉你的,是”这五个 AI 确实会按人设打牌”——P3 五局入池一次、P4 三手垃圾牌全部按赔率弃掉、P5 逢注必跟。行为符合度是可以小样本验证的;盈利能力不行。

反思二:策略 prompt 的极端化,以及一个查无实据的例子

复盘时我原本想重点批评一手牌:”同色 AQ 翻前被弃”——这在我记忆里是对局中的真实一幕,太能说明 prompt 策略的僵化了。

然后我去翻了对局记录。五局的引擎状态、两份战报、所有行动日志,没有一手 AQ。第一局的原始引擎文件后来被引擎自检程序覆盖,已无法复核。所以这个例子只能以”查无实据”的状态留在段落里——这本身就是复盘的一部分教训:不要把对局记忆当证据,哪怕它是你自己的。

好在”策略过紧”的证据并不缺,真实的就有两处:

  • P1-TAG 弃 K6 同花(第四局,单挑小盲位):理由是”不足前 20% 门槛,单挑小盲也不破例”。真实的短桌策略里,单挑位 K6s 是标准开局牌——人设 prompt 里的”前 15-20%”是按满员桌写的,位置信息在 prompt 里没有被正确利用。
  • P3-ROCK 的四手牌清单:五局只入池一次。”只玩 AA/KK/QQ/AK”在 5 人桌意味着约 90% 的局开局就弃,每局白交盲注税——按蒙特卡洛数据,这个清单的代价是每手约 3 筹码,看起来不多,但它是确定性的失血,且让 P3 完全丧失了诈唬信用:它下注=有超强牌,全场都知道。

有意思的是两种极端的代价不对称,这个后面用数据说话。

蒙特卡洛:把人设翻译成参数,跑 1000 局

为了把”感觉”变成”证据”,我做了两件事:

  1. 把五个人设翻译成启发式策略参数——入池范围宽窄、下注激进度、诈唬频率、跟注所需赔率边际(margin)。v1 参数刻意复刻 LLM 局暴露的极端:ROCK 只玩最顶层清单、TAG 门槛卡死、STATION 的 margin 只有 0.55(赔率不够也跟)。v2 是修正版:TAG/ROCK 范围放宽一档,STATION 加止损(margin 0.95),其余微调。
  2. 用同一个荷官引擎跑 v1/v2 各 500 局,每局独立重置筹码,统计每人每手净胜值,外加”连续 5 局滚动窗口”分布——专门用来回答”五局牌里发生了什么算不算罕见”。

500 局的结果(每手期望值 EV,单位筹码):

玩家 v1 EV/手 v2 EV/手 v1 五局窗口 ≤ -750 概率 v1 五局窗口 ≥ +1260 概率
P2-LAG(松凶) +49.7 -13.1 4.6% 5.0%
P4-GTO(算理) +13.8 +12.5 0.8% 2.6%
P1-TAG(紧凶) +5.2 +15.9 1.8% 1.0%
P3-ROCK(超紧弱) -3.0 -1.3 0.0% 0.0%
P5-STATION(跟注站) -65.6 -14.1 21.8% 0.0%

三个发现,一个比一个反直觉。

发现一:P5 的破产不是意外,是日程表

v1 参数下,STATION 型策略每手期望 -65.6,任意连续五局的窗口里净输超过 750 的概率是 21.8%——五分之一。LLM 局里 P5 五局输 1000 破产,完全落在分布的主体里。如果重打五局,P5 照样大概率离场,只是死相不同。

反过来看 P2:五局 +1260 在 v1 分布里是 5% 的幸运窗口。辉煌有运气成分,但不多——因为 P2 的每手期望本来就是全场最高的正数。运气决定它是不是恰好这一次兑现,结构决定它长期一定兑现。

发现二:P2 赢的钱,几乎全部来自 P5

这是整个实验里最锋利的一个发现。v2 把 STATION 的跟注止损修上之后,看 P2 发生了什么:+49.7 直接掉到 -13.1

P2 的高期望根本不是”松凶打法优越”,而是剥削跟注站的定价权——它的持续施压只在有 P5 这种”赔不起也跟”的对手时才值钱。对手一修策略,松凶立刻变成无米之炊。LLM 五局里 P2 +1260 与 P5 -1000 几乎镜像,现在有了机理解释:那不是两个策略的碰撞,是一方对另一方的单向抽血。

推论其实有点扎心:**策略没有绝对的好坏,只有对谁有利。**脱离对手生态谈”哪种风格更强”,是扑克讨论里最常见的误区——AI 也一样。

发现三:极端紧是慢性病,极端松是急性病

两个极端方向的代价完全不对称:

  • ROCK 的超紧清单(v1):每手只输 3.0,且五局窗口输 750+ 的概率是 0.0%。它几乎不可能破产——但也几乎不可能赢,五局窗口赢 1260+ 的概率同样是 0.0%。这是慢性盲注税,500 局累计 -1500。
  • STATION 的极宽跟注(v1):每手输 65.6,急性失血,五局窗口 21.8% 概率重伤。

而修正的最大受益者是谁?不是直觉上的 ROCK(放宽后 -1.3,改善有限——被动打法的天花板就在那),而是 STATION:margin 从 0.55 修到 0.95,每手少输 51.5,是全桌修正收益最大的人。”学会弃牌”这一个动作,比”学会打强牌”值钱一个数量级。

LLM 五局局完美复现了这个不对称:ROCK 五局只输 30(看起来像”纪律”),P5 输光离场(看起来像”倒霉”)——其实是同一个人设光谱上的两件事

结论:AI 模拟人对局,可信度边界在哪

这次实验加复盘,我的收获可以压缩成三句话:

  1. **LLM 玩家的价值在”过程”不在”战绩”。**行为符合度(人设是否被执行)、决策理由的可读性(每手牌都能看到它为什么这么打)是 LLM 局独有的价值,且小样本即可验证。
  2. **统计结论必须来自大样本。**单手标准差 200-300,策略间真实期望差 15-70——信噪比决定了五局牌只能当叙事素材。任何”X 策略赢了 Y 策略”的说法,在样本量上来之前都只是故事。
  3. **对手生态是策略评价的一部分。**同一套参数换个对手池,+49.7 能变 -13.1。评价 AI 的行为策略时,先问一句:它赢的是谁的钱?

至于那晚的牌桌——五局收官,P2 带走 1260,P5 破产谢幕,散席广播写得比多数人类牌局有礼貌。样本量是这桌上最大的输家:它根本没上桌。

扫码加入技术交流群🖱️
QR code