不训练、不求解器,LLM 怎么打出了专家级德州扑克?
你坐在一张无限注 heads-up 桌前,对面是 GTOWizard——一个接近纳什均衡的扑克 AI。你手里拿着 4♥7♠,翻牌面是 5♥4♣3♥4♠3♠。你拿着三条四,这是绝对的强牌。
但 Claude Opus 4.6 看着同样的牌面,说出了这样的话:
> "我拿着 QKo 在 5d4c3h4s 的牌面上——完全没有成牌。"
它连自己的手牌都读错了。这就是 2026 年之前,LLM 打扑克的真实水平:能写论文解释什么是最小防守频率,能在聊天里头头是道地分析极化范围,但坐上牌桌,连自己手里有几张四都搞不清楚。
然后 PokerSkill 出现了。同一个 Claude Opus 4.6,损失率从 -204 降到 -80 mbb/hand,降幅 61%。GPT-5.5 更是从 -132 降到 -57,直接超过了 2018 年 ACPC 冠军 bot Slumbot。
不需要训练,不需要求解器,不需要游戏树遍历。只需要一套精心设计的"脚手架"。
决策绑定问题:知道 ≠ 做到
PokerSkill 的作者来自清华和港中深,他们首先给这个现象起了个名字:决策绑定问题(Decision-Binding Problem)。
想象你是一个医学教授,能背诵整本《内科学》,但当急诊室推来一个同时发烧、皮疹、关节痛的病人,你需要在 30 秒内判断是登革热还是系统性红斑狼疮——这时候"知道"和"做到"之间有一道鸿沟。你需要的不只是知识,还需要一个机制帮你在正确的时刻激活正确的知识。
LLM 打扑克面临同样的困境。它知道底池赔率,知道阻挡牌,知道极化下注范围,但当一手牌同时涉及手牌强度、牌面纹理、下注历史、位置、筹码深度、合法加注尺度六个维度时,模型需要在几十个可能适用的原则中选出此刻该用的那一个。它经常选错——甚至像前面那个例子,连牌面都没读对。
三级流水线:像职业选手一样思考
PokerSkill 的核心洞察来自一个简单的观察:职业扑克选手不是每手牌都从头推导博弈论的。
他们的思维过程是: 1. 读局面——牌面纹理、位置、对手行动线 2. 调记忆——回忆这个局面该用什么策略 3. 做选择——在几个合理选项中挑一个
PokerSkill 把这个认知流程外化成了三个阶段:
第一级:上下文引擎(Context Engine)
一套确定性规则分析当前状态:牌面分类(干燥/湿润/成花/成顺)、手牌分类(23 个等级,从坚果到垃圾)、行动线识别(约 60 种场景)、位置、筹码底池比、累计下注压力。所有这些分析都是确定性的——不经过 LLM,不会幻觉。
第二级:技能检索(Skill Retrieval)
上下文标签从五层技能库中选取相关片段:
- P1(始终激活):游戏规则、合法动作、输出格式
- P2(翻前范围表):12 个翻前场景的精确频率表
- P3(通用原则):价值/诈唬分离、位置策略、底池控制
- P4(情境策略):按牌面纹理 × 手牌等级 × 行动线索引
- P5(河牌阻挡牌):阻挡牌感知的诈唬和抓诈指导
第三级:有界决策(Bounded Decision)
这是最精妙的部分。LLM 不是在无限的动作空间里自由发挥,而是在一组经过预算系统筛选的合理动作中做选择。
攻防预算:手牌的战略容量
PokerSkill 引入了一个直觉上极其自然的概念:每手牌有有限的战略容量。
一对顶对可以价值下注两条街,防守三条街。一对中对只能防守一到两条街,之后就该弃牌了。职业选手对"这手牌能承受多少压力"有清晰的直觉,这是多年打牌和求解器研究积累的经验性知识。
PokerSkill 把这种直觉编码成了攻防预算系统(ATT/DEF Budget):
- 每手牌根据等级和上下文获得一个攻击预算 B_att 和防守预算 B_def
- 每次下注消耗预算,消耗量与下注大小成正比
- 预算耗尽 = 这手牌在该方向上不再有合理动作
预算系统对 LLM 有双重作用:第一,它把复杂的多因素评估压缩成一个标量;第二,它强制多街一致性——翻牌下注消耗了预算,转牌自然就没那么激进了。没有这个机制,LLM 倾向于做出局部合理但全局不连贯的决策。
数据说话
对 GTOWizard(接近纳什均衡的 GTO 基准)的 AIVAT 结果:
| Agent | 方法 | 损失率 (mbb/hand) |
|---|---|---|
| GPT-5.5 XHigh | PokerSkill | -57 ± 21 |
| Claude Opus 4.6 | PokerSkill | -80 ± 29 |
| Claude Opus 4.7 | PokerSkill | -87 ± 64 |
| 纯规则引擎(无 LLM) | PokerSkill 仅规则 | -132 ± 19 |
| GPT-5.5 XHigh | 默认 prompt | -132 ± 25 |
| Slumbot (ACPC 2018) | 求解器 | -194 ± 41 |
| Claude Opus 4.6 | 默认 prompt | -204 ± 44 |
1 + 1 > 2。 纯规则引擎 -132,纯 LLM -132 到 -204,两者结合 -57 到 -87。规则引擎和 LLM 单独都不够强,但组合起来远超各自上限。
模型越强越不等于打牌越好。 在默认 prompt 下,GPT-5.4(-178)反而比 GPT-5.3(-160)更差。更强的推理能力意味着考虑更多因素,但没有机制来排优先级,反而更混乱。PokerSkill 的脚手架消除了这个"缩放悖论"。
验证失败率 < 0.1%。 LLM 在有界动作空间中选择时,几乎不会产生非法动作。对比默认 prompt 下频繁出现的幻觉和非法操作,这是质变。
仍然存在的裂缝
PokerSkill 不是银弹。论文诚实地指出了三个持续存在的错误模式:
尺度误判。 预算正确地允许下注,但 LLM 选了次优尺度——中等强度手牌用了满池下注(半池更优),极化范围用了小注(大注更优)。二元的下注/过牌决策比连续的尺度选择更容易激活。
类别边界模糊。 手牌分类是离散的,但手牌强度是连续的。一个弱踢脚的顶对可能被分到"顶对"类,但它的战略轮廓更接近"二对"。离散分类无法完全捕捉连续现实。
多街不连贯。 每条街的预算局部合理,但三条街的序列缺乏全局规划。翻牌下注消耗 0.6 预算,转牌消耗 0.8,河牌面对加注时预算已不足。预算系统缺乏前瞻搜索——它无法预见转牌下注会创造一个不舒服的河牌局面。
为什么这不止是扑克
PokerSkill 的真正意义不在于扑克本身,而在于它揭示了一个通用模式:
决策绑定问题无处不在。 医学诊断需要把症状绑定到正确的鉴别诊断;法律推理需要把案件事实绑定到相关法条;商业谈判需要把当前报价绑定到合适的让步策略。每个领域的挑战都不是"缺少知识",而是"在竞争性启发式之间做出情境化选择"。
PokerSkill 展示了一种架构模式: 1. 确定性上下文引擎——分类当前局面 2. 按情境索引的精选知识库——只检索相关知识 3. 有界决策接口——约束动作空间而非开放生成
这个模式可以迁移到任何"专家知识可用但 LLM 难以可靠激活"的序列决策领域。不需要微调,不需要强化学习,只需要把专家的认知管道外化成确定性脚手架。
工程启示
- 代码开源:https://github.com/lbn187/PokerSkill
- 整个技能库(包括所有 prompt 片段、预算表、上下文标签、动作约束)由人类扑克专家设计,覆盖约 60 种行动线场景、23 个手牌等级、46 个下注压力阈值
- 同一套技能库在三个不同 LLM 上通用,无需修改
- 系统除 LLM 调用外完全确定性,可复现
规则不构成强策略,LLM 也不能独自打好牌。但规则 + LLM = 不训练不求解器的专家级扑克。
这大概就是人机协作最优雅的形式:人类提供结构,模型提供判断。
---
论文:PokerSkill: LLMs Can Play Expert-Level Poker without Training or Solvers 作者:Boning Li (清华), Baoxiang Wang (港中深), Longbo Huang (清华) arXiv:https://arxiv.org/abs/2605.30094 代码:https://github.com/lbn187/PokerSkill