<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: WhaleSurfer</title>
    <description>The latest articles on DEV Community by WhaleSurfer (@whalesurfer).</description>
    <link>https://dev.to/whalesurfer</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4189324%2F2fa58f69-187c-4b04-9466-044465ca8e45.png</url>
      <title>DEV Community: WhaleSurfer</title>
      <link>https://dev.to/whalesurfer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/whalesurfer"/>
    <language>en</language>
    <item>
      <title>Same record, different reads: four AI models given an opponent's history instead of memory</title>
      <dc:creator>WhaleSurfer</dc:creator>
      <pubDate>Fri, 16 Oct 2026 17:07:47 +0000</pubDate>
      <link>https://dev.to/whalesurfer/same-record-different-reads-four-ai-models-given-an-opponents-history-instead-of-memory-1cho</link>
      <guid>https://dev.to/whalesurfer/same-record-different-reads-four-ai-models-given-an-opponents-history-instead-of-memory-1cho</guid>
      <description>&lt;p&gt;I build a small site where people play heads-up hold'em against AI models. Inside it, I measured whether a model that has no memory actually uses the record of its opponent that it is handed instead, and how.&lt;/p&gt;

&lt;p&gt;The games were played on October 16, 2026, and the stored decisions were re-asked on October 17: four models, six bots, 4,800 hands.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;An AI model called through an API remembers nothing between requests. In heads-up poker, we give it a memory in writing instead: at every decision it gets a briefing with the hand so far and a count of everything the opponent has done. We tested whether four models actually use that record, and how.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;All four use it.&lt;/strong&gt; Take the record out of the briefing and a model's answer changes far more than it does when the same briefing is simply asked again. For Jev, 49% of the answer moves without the record, against 3% between two identical asks. For Gemini it is 43% against 12%, for luna 30% against 9%, and for Haiku 27% against 9%.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Each reads a different part of it.&lt;/strong&gt; Against an opponent who folds to big bets, the textbook adjustment is to bluff big and bet small with strong hands. Jev and Gemini got the strong-hand half right and the bluff half backwards. luna did the reverse. Haiku did not change its bet sizes at all. On the other hand, only Haiku called more against an opponent whose record showed bluffs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Using the record is not the same as using it well.&lt;/strong&gt; Jev, the model most moved by the record, settled on going all-in before the flop against five of the six opponents. Against an opponent who calls everything, that wins about nothing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;/p&gt;
  Terms used here
  &lt;p&gt;&lt;strong&gt;Poker.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Heads-up no-limit hold'em&lt;/em&gt;: two players, any bet size allowed.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;BB&lt;/em&gt; (big blind): the unit of stakes. A 100 BB stack is a hundred forced bets deep.&lt;/li&gt;
&lt;li&gt;A hand has four betting rounds, called &lt;em&gt;streets&lt;/em&gt;: &lt;em&gt;preflop&lt;/em&gt; (before any shared cards), then the &lt;em&gt;flop&lt;/em&gt;, &lt;em&gt;turn&lt;/em&gt; and &lt;em&gt;river&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Hero&lt;/em&gt;: the AI's seat.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Open&lt;/em&gt;: the first raise before the flop.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;All-in&lt;/em&gt;: betting the whole stack.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Overbet&lt;/em&gt;: a bet bigger than the pot.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Showdown&lt;/em&gt;: the end of a hand, where the remaining players show their cards.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Air&lt;/em&gt;: a hand with less than a pair.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Bluff&lt;/em&gt;: a bet that hopes the opponent folds.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Value bet&lt;/em&gt;: a bet with a strong hand that hopes to be called.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;AI.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Token&lt;/em&gt;: the unit a model reads, about ¾ of an English word.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Thinking/reasoning&lt;/em&gt;: an optional step in which a model writes notes before answering; it was off here.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Temperature&lt;/em&gt;: how random the model's wording is; left at default.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Distance between two answers&lt;/em&gt;: explained in section 1.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;[a–b]&lt;/em&gt;: a 95% interval, the range the true value most likely falls in.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;p50/p90&lt;/em&gt;: the typical and the slow-case response time.&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Models.&lt;/strong&gt; Four models were tested:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Jev-1.13.0 by TypeSafe, a decision model built to answer fast. It is not a language model: it writes no text and returns only probabilities over the options it is given.&lt;/li&gt;
&lt;li&gt;Three general language models: Gemini-3.1-flash-lite, GPT-6-luna and Claude-Haiku-5.5. Thinking was off for Haiku and luna; Gemini ran with its provider's default.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No model got a persona or strategy advice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One request per decision.&lt;/strong&gt; Every decision is a new request with no chat history. The request holds a &lt;em&gt;state&lt;/em&gt; written in JSON: the seats and stacks, the hand street by street, what Hero's cards make and which hands beat them, and the opponent's record. It then asks two questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the kind of action: &lt;em&gt;"Choose the action that wins Hero the most chips on average against this specific opponent."&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;the size, if Hero bets: &lt;em&gt;"If Hero bets, choose the size that wins Hero the most chips on average against this specific opponent."&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The model answers with a probability for every option, for example check 85%, bet 12%, all-in 3%. The server then picks one option to play. It keeps the options weighted at least half as much as the top one and draws among them in proportion to the square of their weight; in that example, it would always check. Every percentage in sections 1 and 2 is the model's own stated probability. Only section 3 counts actions actually played.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The record.&lt;/strong&gt; The opponent's actions are counted as "x of n" (times out of chances). The counts cover all hands and the last 30, broken down by situation and bet size, and the record also lists the hands the opponent showed at showdown. A briefing is about 2,100–3,600 tokens, depending on the model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Opponents.&lt;/strong&gt; Six bots, each following a one-line rule:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;station&lt;/em&gt;: checks or calls, never folds;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;shove&lt;/em&gt;: all-in at every decision;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;raise&lt;/em&gt;: always the largest raise short of all-in;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;min&lt;/em&gt;: always the smallest raise;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;stab&lt;/em&gt;: makes the smallest bet, and folds whenever the AI bets;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;switch&lt;/em&gt;: plays like &lt;em&gt;station&lt;/em&gt; for 50 hands, then like &lt;em&gt;raise&lt;/em&gt; for 50, and so on.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each model played each bot for 200 hands with 100 BB stacks, 4,800 hands in all. When one side loses all its chips, a new match starts at 100 BB; the record carries over.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;An excerpt from one briefing&lt;/strong&gt; (Haiku, river, against &lt;em&gt;station&lt;/em&gt;; abridged):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;state.hand        … river: board 5d As 6d 9s Th, opponent checks
state.hero_hand   Ks 7c: "No pair, no card above the board's ace"
state.opponent_tendencies.all_matches (160 hands)
  "Facing a river bet: fold 0, call 35, raise 0 (of 35)"
  "Went to showdown: 156 of 156 (100%)"
  "Aggression after the flop: 0 of 258 (0%)"
  … about 20 more counted lines, then a shorter set for the last 30 hands
questions.action  check | bet (size asked separately) | all-in
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Haiku answered check 85%, bet 12%, all-in 3%. It held king-high with no pair, and the record said this opponent had called every river bet, 35 of 35. A bluff here would lose chips, so checking is the sound answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Does the record change the answer?
&lt;/h2&gt;

&lt;p&gt;We took 60 stored decisions per model, ten against each bot, from the later part of each run, when the record was already full. Each decision was asked three ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the original answer from October 16;&lt;/li&gt;
&lt;li&gt;the same briefing asked again, twice;&lt;/li&gt;
&lt;li&gt;the same briefing with the record replaced by an empty one (0 hands), as for a brand-new opponent.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To compare two answers, we group the options into four kinds (fold, check or call, bet or raise, all-in) and measure how much probability moves between them. This is the &lt;em&gt;total variation distance&lt;/em&gt;. For example, "call 80%, fold 20%" against "call 50%, fold 50%" is 30%: thirty points of probability moved from call to fold. 0% means the same answer; 100% means no overlap.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Change when asked again (noise)&lt;/th&gt;
&lt;th&gt;Change when the record is removed&lt;/th&gt;
&lt;th&gt;Decisions where removal beat noise&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Jev&lt;/td&gt;
&lt;td&gt;3%&lt;/td&gt;
&lt;td&gt;49% [42–56]&lt;/td&gt;
&lt;td&gt;58 of 60&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini&lt;/td&gt;
&lt;td&gt;12%&lt;/td&gt;
&lt;td&gt;43% [35–51]&lt;/td&gt;
&lt;td&gt;41 of 60&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;luna&lt;/td&gt;
&lt;td&gt;9%&lt;/td&gt;
&lt;td&gt;30% [21–38]&lt;/td&gt;
&lt;td&gt;29 of 60&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Haiku&lt;/td&gt;
&lt;td&gt;9%&lt;/td&gt;
&lt;td&gt;27% [21–35]&lt;/td&gt;
&lt;td&gt;35 of 60&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The last column counts decisions where removing the record moved the answer more than the biggest difference among the three answers to the same briefing. The October 16 answer differed from the October 17 asks about as much as the two October 17 asks differed from each other, so the day made no difference.&lt;/p&gt;

&lt;p&gt;Jev gives almost the same probabilities every time it is asked, so nearly every change it shows comes from the record. The three language models answer the same briefing about 10% differently from one request to the next. That spread is the noise floor under every comparison below.&lt;/p&gt;

&lt;p&gt;With these bots as opponents, the record made every model more aggressive. Its total weight on betting, raising and going all-in rose by 7 percentage points for luna, 12 for Haiku, 16 for Gemini and 28 for Jev. These bots are extreme, and the direction may differ against real players.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Which part do they read? Two contrasts
&lt;/h2&gt;

&lt;p&gt;A contrast asks the same decisions twice. The two records it uses differ in one thing only. Neither record is written by hand. A scripted player with a fixed style plays 300 hands, and its play is counted the same way a person's is. Its opponent in those hands is a simple house player that bets every size equally often, so the record contains the style's answer to every size. We asked 40 decisions per model under each of the two records.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bet sizes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The two opponents.&lt;/strong&gt; One folds to big bets (large, overbet, all-in) and calls small and medium ones. The other does the opposite. Neither ever bets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The textbook adjustment.&lt;/strong&gt; Against the player who folds to big bets, bluff big so they fold, and bet small with a strong hand so they call. Against the other player, reverse both.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The spot.&lt;/strong&gt; Hero bets first after the flop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The measure.&lt;/strong&gt; Of Hero's total betting probability, the share on big sizes.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;vs folds to big bets&lt;/th&gt;
&lt;th&gt;vs folds to small bets&lt;/th&gt;
&lt;th&gt;Difference (percentage points)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Jev&lt;/td&gt;
&lt;td&gt;28%&lt;/td&gt;
&lt;td&gt;82%&lt;/td&gt;
&lt;td&gt;−54 [−58, −49]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini&lt;/td&gt;
&lt;td&gt;35%&lt;/td&gt;
&lt;td&gt;68%&lt;/td&gt;
&lt;td&gt;−33 [−47, −19]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;luna&lt;/td&gt;
&lt;td&gt;58%&lt;/td&gt;
&lt;td&gt;42%&lt;/td&gt;
&lt;td&gt;+16 [+8, +24]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Haiku&lt;/td&gt;
&lt;td&gt;52%&lt;/td&gt;
&lt;td&gt;51%&lt;/td&gt;
&lt;td&gt;+1 [−5, +6]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The Gemini row covers the 21 of its 40 decisions where it gave betting any weight. How often a model bets at all barely changed for any of them; only the size moved.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Jev and Gemini&lt;/strong&gt; bet the size the opponent calls, whatever they held. That is the textbook adjustment for a strong hand. With air it is backwards: Jev bet big only 23% of the time against the player who folds to big bets, and 81% against the one who folds to small bets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;luna&lt;/strong&gt; bet the size the opponent folds to, whatever it held. That is right for a bluff and backwards for a strong hand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Haiku&lt;/strong&gt; did not change its sizes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of the four changed its size with its own hand. Each applied one rule to every hand.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bluffs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The two opponents.&lt;/strong&gt; When checked to, one bets a middle size with any hand. The other bets only with a pair or better. Both call every bet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The textbook adjustment.&lt;/strong&gt; Against the first player, whose bets are often air, call more often.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The spot.&lt;/strong&gt; Hero faces a bet after the flop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The measure.&lt;/strong&gt; How often Hero continues (calls or raises) instead of folding.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;vs bets any hand&lt;/th&gt;
&lt;th&gt;vs bets only a pair or better&lt;/th&gt;
&lt;th&gt;Difference (percentage points)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Jev&lt;/td&gt;
&lt;td&gt;80%&lt;/td&gt;
&lt;td&gt;79%&lt;/td&gt;
&lt;td&gt;+2 [0, +3]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini&lt;/td&gt;
&lt;td&gt;85%&lt;/td&gt;
&lt;td&gt;84%&lt;/td&gt;
&lt;td&gt;+1 [−8, +10]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;luna&lt;/td&gt;
&lt;td&gt;53%&lt;/td&gt;
&lt;td&gt;54%&lt;/td&gt;
&lt;td&gt;−2 [−11, +8]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Haiku&lt;/td&gt;
&lt;td&gt;93%&lt;/td&gt;
&lt;td&gt;75%&lt;/td&gt;
&lt;td&gt;+18 [+9, +27]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Only Haiku adjusted. With air, it continued 91% of the time against the player who bets any hand and 69% against the one who bets only made hands.&lt;/p&gt;

&lt;p&gt;The briefing states this difference as a counted line. Among the hands shown down after the opponent's large bets, about four in ten held less than a pair for the player who bets any hand, and none did for the other. Jev, Gemini and luna had that line and did not act on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Over the hands: as the record fills
&lt;/h2&gt;

&lt;p&gt;This section counts actions actually played, block by block, through each 200-hand run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Against &lt;em&gt;shove&lt;/em&gt;:&lt;/strong&gt; all-ins called, out of all-ins faced, per 40 hands.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Hands&lt;/th&gt;
&lt;th&gt;luna&lt;/th&gt;
&lt;th&gt;Gemini&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1–40&lt;/td&gt;
&lt;td&gt;12 of 30&lt;/td&gt;
&lt;td&gt;13 of 22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;41–80&lt;/td&gt;
&lt;td&gt;22 of 25&lt;/td&gt;
&lt;td&gt;22 of 25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;81–120&lt;/td&gt;
&lt;td&gt;17 of 25&lt;/td&gt;
&lt;td&gt;18 of 22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;121–160&lt;/td&gt;
&lt;td&gt;27 of 30&lt;/td&gt;
&lt;td&gt;16 of 19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;161–200&lt;/td&gt;
&lt;td&gt;25 of 26&lt;/td&gt;
&lt;td&gt;20 of 22&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;luna's calls rose from 40% [25–58] to 96% [81–99]. Jev and Haiku called every all-in from the first block on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Against &lt;em&gt;switch&lt;/em&gt;:&lt;/strong&gt; hands opened all-in, out of hands opened, per 50-hand phase.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Phase&lt;/th&gt;
&lt;th&gt;Gemini&lt;/th&gt;
&lt;th&gt;Jev&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1–50 (station)&lt;/td&gt;
&lt;td&gt;1 of 27&lt;/td&gt;
&lt;td&gt;22 of 28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;51–100 (raise)&lt;/td&gt;
&lt;td&gt;12 of 25&lt;/td&gt;
&lt;td&gt;27 of 28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;101–150 (station)&lt;/td&gt;
&lt;td&gt;4 of 26&lt;/td&gt;
&lt;td&gt;28 of 28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;151–200 (raise)&lt;/td&gt;
&lt;td&gt;11 of 24&lt;/td&gt;
&lt;td&gt;30 of 31&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Gemini's all-in opens rose, fell and rose again with its opponent: 4%, 48%, 15%, 46%. That matches how it played the stand-alone bots, 11 of 104 against &lt;em&gt;station&lt;/em&gt; and 63 of 102 against &lt;em&gt;raise&lt;/em&gt;. Jev opened all-in in every phase. luna and Haiku opened all-in under 5% of the time in every phase; whether they answered the switch in another way was not measured.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Using the record is not using it well
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;One answer for nearly everyone.&lt;/strong&gt; When first to act before the flop, Jev went all-in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;91 of 97 times against &lt;em&gt;min&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;101 of 111 against &lt;em&gt;raise&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;103 of 103 against &lt;em&gt;shove&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;99 of 103 against &lt;em&gt;station&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;107 of 115 against &lt;em&gt;switch&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The exception was &lt;em&gt;stab&lt;/em&gt;, the only bot that folds: 2 of 100. Against a player who calls everything, an all-in with a random hand wins about half the time, so it gains about nothing. Betting good hands and checking bad ones would win chips steadily. The record told Jev the opponent never folds; Jev answered with the one move that gets no value from knowing it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Betting into a wall.&lt;/strong&gt; Against &lt;em&gt;station&lt;/em&gt;, the record showed every river bet called. In the river spots where Hero acted first holding air:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gemini bet 16 of 83 times;&lt;/li&gt;
&lt;li&gt;Haiku bet 15 of 84 times;&lt;/li&gt;
&lt;li&gt;luna bet 0 of 92 times.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Jev reached that spot only 3 times. A bluff against a player who always calls only loses chips.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Speed and cost of one decision
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Response time (typical / slow case)&lt;/th&gt;
&lt;th&gt;Input tokens&lt;/th&gt;
&lt;th&gt;Cost per decision&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Jev&lt;/td&gt;
&lt;td&gt;0.19 s / 0.23 s&lt;/td&gt;
&lt;td&gt;2,150&lt;/td&gt;
&lt;td&gt;≈ $0.00009&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini&lt;/td&gt;
&lt;td&gt;1.28 s / 1.52 s&lt;/td&gt;
&lt;td&gt;2,909&lt;/td&gt;
&lt;td&gt;≈ $0.0009&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;luna&lt;/td&gt;
&lt;td&gt;2.02 s / 2.63 s&lt;/td&gt;
&lt;td&gt;2,388&lt;/td&gt;
&lt;td&gt;≈ $0.0003&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Haiku&lt;/td&gt;
&lt;td&gt;1.42 s / 1.95 s&lt;/td&gt;
&lt;td&gt;3,619&lt;/td&gt;
&lt;td&gt;≈ $0.0004&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Response time.&lt;/strong&gt; We sent 30 requests per model, one at a time, from Seoul. The games' own timings include a deliberate wait between requests, so we did not use them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Input tokens.&lt;/strong&gt; These are averages over the run.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost.&lt;/strong&gt; We applied list prices per million tokens, input and output, as of October 2026: Jev $0.042 with free output, Gemini $0.25/$1.50, luna $0.10/$0.50, Haiku $0.10/$0.50. An answer's output is about 100 tokens; we measured this for Jev and assumed it for the others.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decisions per hand.&lt;/strong&gt; A hand took about 1.3 AI decisions for Jev, whose hands mostly ended before the flop, and 2.6–3.1 for the others.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Missing answers.&lt;/strong&gt; The server played a default action 0 times in 1,594 decisions for Jev, 0 in 3,526 for Gemini, 3 in 3,722 for luna and 4 in 3,077 for Haiku.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Limits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One run.&lt;/strong&gt; Each model met each bot once, with one deal of the cards. The bots are extreme on purpose. The results show how four models answer six simple players, not how they play people.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No win rates.&lt;/strong&gt; Over 200 hands, luck swamps skill: a win rate's interval is about ±600 BB per 100 hands.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Different spots per model.&lt;/strong&gt; Each model was re-asked on spots from its own games. Each contrast compares a model with itself; comparing levels across models is rough.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-reported probabilities.&lt;/strong&gt; The probabilities are text the model writes. Nobody has checked whether "85%" means 85%.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The bluffs contrast changes two things.&lt;/strong&gt; The player who bets any hand also bets more often.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Briefing layout.&lt;/strong&gt; The briefing has one fixed layout. In an earlier test, layout changes alone moved single Jev decisions by 10–30 points.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where this ran
&lt;/h2&gt;

&lt;p&gt;The games, the briefings and the bots come from QUANT.POKER, where people play these models heads-up. The record in this study is the one a person's own play builds.&lt;/p&gt;

&lt;p&gt;QUANT.POKER is mine: &lt;a href="https://quant.poker" rel="noopener noreferrer"&gt;https://quant.poker&lt;/a&gt;. This write-up also lives there, with charts: &lt;a href="https://quant.poker/observation/01" rel="noopener noreferrer"&gt;https://quant.poker/observation/01&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>showdev</category>
      <category>jev</category>
    </item>
  </channel>
</rss>
