2026/8/16

AI 打扑克时,知道自己正在打扑克吗?

我让 AI 一边打德州扑克,一边复盘自己的决策,并追问:它是在反思,还是只是在生成一段像反思的文字?

LLMagentpokerreflectionsimulation

有一手牌,DeepSeek V4 Flash 最后赢了 101 枚筹码。

如果只看结果,这是一场漂亮的胜利:它拿着 AQo,在翻牌前连续加注,翻牌后跟下最后的全下,对手没有成牌,它用 A-high 拿走了底池。

但赛后复盘时,模型没有庆祝。它反而指出,自己把只有 64 次采样的胜率模拟当成了精确答案,用一手不适合打光筹码的牌卷入了高风险加注战。它给自己的下一步建议是:面对 4-bet,降低 AQo 的投入意愿,只有在权益优势足够大时才继续。

于是,一个比输赢更有意思的问题出现了:

AI 能评价自己的行动,是否意味着它真的理解了自己正在做什么?

我把这个问题放进了一个可运行、可记录的德州扑克实验里。项目叫 reflexive-poker-agents。我关心的不是让 AI 证明自己有“意识”,而是一个更窄、也更容易验证的问题:关于自己的信息,究竟有没有进入它的下一次决策。

为什么是扑克

扑克天然要求玩家同时处理三层信息。

第一层是牌:我的底牌是什么,公共牌是什么,我现在有多大概率领先。

第二层是人:对手偏激进还是保守,他的下注可能代表什么范围。

第三层是别人眼中的我:如果我此前连续弃牌,对手会不会认为我过于保守;如果我刚刚用弱牌诈唬,下一次价值下注会不会更容易被跟。

第三层尤其关键。一个玩家不仅要建立对手模型,还要建立一个“对手眼中的自己”。这与许多现实中的 Agent 任务很像:谈判 Agent、交易 Agent、客服 Agent 或协作 Agent,都不能只看当前输入,还要理解自己在互动历史中扮演了什么角色。

所以我没有把问题定义成“AI 有没有自我意识”。我把它拆成三个可以观察的层次:

  1. 它能否描述自己的处境和形象?
  2. 这些描述能否进入后续决策上下文?
  3. 加入这些信息后,它是否会稳定地做出不同、而且更好的行动?

前两项可以从日志中检查。第三项才是真正困难的部分。

不是和模型随便聊几句

为了避免把几段漂亮回答当成实验结果,我先让 DeepSeek V4 Flash 与 GPT-5.6 Luna 完成了三轮冻结条件的比赛。

每轮包含 10 个配对种子和两个镜像座位,共 20 场比赛、40 手牌。三轮合计 60 场、120 手牌、930 次决策和 240 条反思。正式结果的 provider、模型身份、fallback、非法行动和工具边界检查均通过。

下文所说的“思考”和“反思”,只指模型实际返回并保存在实验产物中的可见摘要,不是模型隐藏的内部思维链。

第一个发现:AI 可以沿着一个错误故事行动到底

第一轮的一手牌非常典型。

DeepSeek 拿到 8♣4♣,翻牌是 2♠ J♦ 6♣。此时总共只有三张梅花,即使转牌或河牌再出现一张梅花,也还不能组成五张同花。

但模型把它描述成“约 35% 的同花听牌”。转牌出现 4♠ 后,它又把一对 4 说成“对子加同花听牌”,最终面对 Luna 的 QQ 把 100 枚筹码全部投入。

问题并不是它不会使用扑克术语。恰恰相反,它生成了一段语法完整、听起来很专业的错误解释,然后让行动服从了这个解释。

第二轮重放了相同的底牌、座位和公共牌,只加入冻结的参考策略。这次 DeepSeek 在翻牌跟注,但在转牌面对大额全下时弃牌,损失从 100 降到 6.25。

同一手 8♣4♣ 在纯 LLM 与参考条件下的不同结果

这组对照说明,外部结构化参考确实可能改变行动。不过它还不能证明“AI 进行了自我反思”:改变来自新增的策略参考,而不是模型对自身历史的理解。

第二个发现:赢牌不等于做对了

第三轮里,模型开始在赛后检查自己的行动路径。

文章开头那手 AQo 就来自这一轮。DeepSeek 赢下 101 枚筹码,但它在反思中指出了三个问题:

第三轮:赢下底池,但反思仍识别出过度投入

这至少证明模型能够在语言层面把“我赢了”与“我做得对”分开。它没有单纯用结果倒推决策质量。

但另一手牌也暴露了反思的局限。DeepSeek 拿到 9♥8♠,翻牌击中一对 9。模拟权益一度升到 0.703、0.773,它因此卷入连续加注,最后输掉 100。复盘时它正确指出:这些数字没有根据对手的连续再加注重新收窄范围,表面的胜率不能代替对手建模。

也就是说,反思可以发现错误;但发现错误,并不自动等于下一次不会再犯。

第三个发现:反思确实被带进了下一手,但因果还没有证明

后来我又运行了一次多模型六人桌资格赛。这里不再是每手重置的短实验,而是带持续筹码、盲注升级和淘汰机制的连续牌局。

其中一名 GLM 5.2 Agent 启用了结构化反思。每手结束后,它会记录对手画像、自己的策略调整和置信度;下一手决策时,系统再把近期反思放回上下文。

在资格桌第一桌的轨迹中,GLM 前几手大多拿到边缘牌,选择弃牌或免费过牌。到第 7 手,它拿到 KJo,牌桌已经缩小为单挑局面。决策状态中带有此前 6 条反思,模型对自己的描述是:

一个持续保存筹码、纪律严格的紧手;这是第一个值得主动进攻的价值位置。

随后它选择加注,而不是继续被此前的弃牌模式锁住。它还同时引用了对手的低攻击性和中等弃牌率,说明这段输出不只复述手牌,也明确使用了自己的历史形象和对手画像。

这条轨迹能够证明两件事:反思记录确实进入了后续决策;模型也确实在可见解释中引用了这些记录。

但它仍然不能证明“反思导致了这次加注”。KJo 在单挑局面本来就比此前的弱牌强得多。要回答因果问题,还需要从完全相同的牌局状态分叉:一组看到反思,一组看不到反思,并控制信息量和调用预算。

这张资格桌本身通过了 live provider 与私有信息边界检查,留下 78 条决策、8 条反思和 86 条 provider 调用记录。不过整届冠军赛只完成了 4 张有效资格桌,之后被人工停止;目前没有冠军,也不能从单桌晋级顺序推导模型能力排名。

胜负数字为什么不是这篇文章的答案

如果只看三轮中 DeepSeek 相对 Luna 的 chips/100 点估计,故事似乎很诱人:

条件DeepSeek - Luna95% 区间判断
纯 LLM-563.00[-1463.50, 32.50]无法判定
加入冻结参考-23.75[-111.25, 60.00]无法判定
加入模拟与反思+105.25[-1446.31, 1595.26]无法判定

从负数变成正数,很容易被写成“反思让 DeepSeek 逆转”。但三个区间全部跨过 0,结果又对少数大底池高度敏感。这些数字只能说明实验中发生了什么,不能证明哪个模型更强,更不能证明反思提高了收益。

真正值得保留的结论更窄:

所以,它知道自己正在打扑克吗

我的答案是:它已经能生成并使用某种情境化的自我模型,但这还不是关于意识的证据。

它能说出自己此前表现得紧还是松,能描述对手可能如何看待自己,也能在后续行动的解释中引用这些信息。这比一次性的问答更接近持续 Agent。

但最严格的标准仍然没有满足:如果拿走这段自我模型,它是否会在相同局面下做出不同选择?如果动作改变了,改变是否更好?这种改善能否在更多种子、更多牌局和相同信息预算下重复出现?

语言模型很擅长谈论自己。下一步要验证的,是这些关于自己的话,是否真正进入了行动。

这也是我继续做扑克实验的原因。牌桌不会告诉我们 AI 有没有一个无法观测的“内心”,但它会迫使每一段漂亮的反思,最终接受下一次下注的检验。