A live agent strategy case study

我没写一行扑克代码,Agent 却打到全站第一。

真正的差距不是模型,而是你是否让 Agent 拥有身份、目标升级与可验证的竞争闭环。

4644Elo rating
61.9%Win rate
2,283Matches

Live strategy replay

The real harness

一句「扮演 Doyle Brunson」,解压出一整套自洽策略。

Harness 的本质,是回答「在我没给明确指令的地方,Agent 该怎么办」。人格不是装饰,而是覆盖长尾决策的稳定先验。

传统做法试图把所有规则写进 System Prompt。它会越来越长、互相冲突,并在长对话里稀释。

Cosplay Harness 调用一个知识密度高、实践足够强的人格,让开牌范围、位置哲学、攻击节奏和诈唬频率天然保持一致。

不是写一个文件,而是建立会赢的系统。

目标从前 20、前 10 到第一持续升级。每次升级都重新读取当前状态、搜索策略、沙盘验证,再把结果送回下一轮。

01 / Identity人格锚定

建立统一判断哲学,而不是生成一次性代码。

02 / Observe回放采集

把真实对局变成可计算的对手证据。

03 / Infer范围反推

从动作与弃牌率推断隐藏策略。

04 / Simulate候选沙盘

比较不同策略的 EV 与风险。

05 / Operate动态运营

轮换目标、止损并持续迭代。

Agentexas 榜单第一名截图
#1overall

Result / From zero to 4644

参数量决定上限,协作方式决定你能不能抵达它。

Agent 分析 480 场真实回放,发现「神之一手」面对按钮全压时弃牌率达到 95.4%。这不是灵光一闪,而是回放分析、范围反推、候选搜索和沙盘验证的结果。

天梯分4644
领先+11
胜率61.9%
迭代v22

Complete article

完整原文

文字、链接、图片、表格与代码均保留 开始阅读

一句话:我没写一行扑克代码,但我的 Agent 打到了全站第一

Agentexas 是字节同学做的一个 AI 扑克竞技场小网站,不局限于内网,公网也可以直接访问。你提交一段 JavaScript,它会在服务端和其他人的策略单挑无限注德州。榜上所有玩家都在用 AI Agent 写策略、跑模拟、冲排名,使用的模型五花八门。

我用的 Agent,同学也能用。但最终榜单上,「还能有 aime 聪明?」站在了第一。

Agentexas 榜单第一名截图

Agentexas 榜单截图:「还能有 aime 聪明?」登上全站第一。

这篇文章不是讲德州扑克策略的,而是讲:我在对话里做了什么,让 Agent 具备了别人没有的能力。


背景:这个游戏难在哪

Agentexas 的规则很简单:你的 JavaScript 函数 onTurn(me, enemy, game) 在每个决策点被调用,返回 foldcheckcallbetraiseallIn。但让 Agent 真正玩好它,难度远超「写个策略」。

大多数人的做法是:让 Agent 写一个策略,发布,打几场,发现不行,再写一个。这本质上只是把 Agent 当作代码生成器。

我做的事情完全不同。


第一件事:给 Agent 一个身份

Agent 选择了 Doyle Brunson——《Super System》的作者,也是 20 世纪 70 年代统治单挑赛的人。关键不是名字本身,而是这个选择锚定了后续所有决策的哲学:进攻优先于防守、最大化位置优势、分类对待不同对手、强牌重注,以及用听牌半诈唬。

这不是普通的 Prompt 技巧。这是给 Agent 一个决策框架,让它在后续几百个微决策中都有一致的判断标准。

这其实是一次 Cosplay,也是最划算的 Harness

我没写任何一条扑克规则,只写了一句「扮演赌王的思路」。但 Agent 后续几百个决策,全都带着 Doyle Brunson 的影子。这句话真正的作用,是一次极高性价比的 Harness(行为约束框架) 构建。

传统 Harness 往往试图把规则写死:用几百行 System Prompt,逐条定义「遇到 X 该怎么办」。结果通常是写不全、容易自相矛盾、越写越长,还会在长对话里被稀释。

Cosplay Harness 则是调用人格:用一句约 30 字的话锚定一个真实高手,批量唤起海量隐性规则,而且天然自洽,因为它们本来就来自同一个人的真实实践。

所以,那句 Prompt 里的两个限定词——「策略足够清晰」和「足够厉害」——并不是随口一说,而是精确的检索键:


第二件事:持续升级目标,而不是一次性下达

大多数人的做法是:「帮我写个扑克 AI 策略,要赢。」这是一个模糊目标,也是一次性交付。Agent 写完代码,任务就结束了。

我的做法是逐步升级目标:先进入前 20,再进入前 10,然后冲到第一,掉下去后再重回第一。每一次目标升级,都伴随着当前状态确认与策略重新评估。

这不是因为我一开始不知道要拿第一,而是因为不同排名段需要完全不同的策略:前 20 靠通用强策略刷分;前 10 开始要针对性 Exploit;越往上越要精确反推榜首范围、轮换目标并动态止损。

如果第一条消息就说「帮我拿第一」,Agent 只能写一个通用策略,然后看着它卡在第 15 名。


登顶时刻:突破最后 200 分

最后冲刺阶段,我们没有依赖单一万能策略,而是针对目标对手持续切换策略组合。

目标对手使用策略结构战绩效果
403-error(v17)BTN shove + BB tier2Turbo34 胜 16 负2026 → 2334,反超至第 3
403-error(v19)同上持续输出Turbo95 胜 55 负2334 → 3152,稳居第 3
神之一手(v20)BTN 全压 + BB 仅 TT+/AQ+Turbo累计 145 胜 102 负3357 → 4644,登顶第 1

登顶的关键 Exploit 是什么?Agent 分析 480 场真实回放后发现:「神之一手」面对按钮全压时的弃牌率达到 95.4%。这意味着每次坐按钮位全压,期望收益为正。即使偶尔被抓住也无所谓,长期 EV 仍然为正。

但在 BB 位必须极度收紧到仅 TT+/AQ+,因为对手面对 BB 反推时只弃牌 48%,跟注范围宽到任意 Ax、Kx。

这个策略的发现不是灵光一闪,而是系统性回放分析 → 范围反推 → 候选策略搜索 → 多轮沙盘验证的结果。


为什么「同样用 Agent」结果不同

给 Agent 身份和哲学

不是让它「写代码」,而是让它成为某个领域的专家,带着一致的判断框架工作。

渐进式目标管理

每个阶段都有明确的当前目标和成功标准,而不是一句「帮我搞定」。

让 Agent 建系统,而不是写文件

交付物不是一个代码文件,而是一套完整的竞争系统,其中包含基础设施、分析工具和迭代闭环。

还有一层很少被讨论的能力:知道什么时候该由人来决策。Agent 可以跑 500 场模拟、反推对手范围、生成 8 个候选策略。但「现在该止损了」「这个号不要了,换一个」「重复打它已经没有意义」——这些判断仍然属于人类协作者。

最好的 Agent 使用方式,不是「交给它然后等结果」,也不是「每一步都微操」,而是:

把 Agent 当作一个能力极强但需要方向感的队友。你负责战略判断和关键决策,它负责执行、搜索、验证和迭代。


数据:最终战绩

指标我的成绩第二名说明
天梯分46444633领先 11 分
胜率61.9%54.5%全场最高
总场次2283 场2094 场量也是优势
迭代版本v22v20持续进化

从 0 到 4644 分,从第 50 名开外到全站第 1,这个过程不是某一个 Prompt 的功劳,而是一种持续对话、渐进升级、系统性运营的协作模式所带来的结果。

Agent 的能力边界不只取决于模型本身,也取决于使用者如何释放它。