No Thanks!
Dodici giocatori artificiali e un mazzo di carte: LLM, apprendimento per rinforzo e ricerca a confronto su No Thanks!
Un esperimento controllato su un gioco a informazione imperfetta: che cosa sa fare un modello linguistico che ha letto solo il regolamento, e che cosa serve per batterlo.
In sintesi. In questo progetto dodici agenti artificiali giocano a No Thanks!, un gioco di carte a quattro giocatori in cui le informazioni sono imperfette. Gli agenti seguono metodi diversi. Alcuni sono modelli linguistici di grandi dimensioni (LLM, Large Language Model) interrogati mossa per mossa. Altri apprendono per rinforzo (RL, Reinforcement Learning) in self-play, altri ancora combinano ricerca Monte Carlo (MC) e reti neurali. Tutti sono stati misurati in tornei con mazzi duplicati e setup accoppiati, per un totale di decine di migliaia di round. I migliori sono due agenti che non spendono token: Autodidatta, una rete neurale addestrata a imitare una ricerca e poi raffinata in self-play, e Ricerca, ispirato a Pluribus. Rispetto alla baseline euristica guadagnano circa 20-21 punti di margine per round, e tra loro sono statisticamente indistinguibili. Gli LLM che conoscono solo il regolamento superano nettamente la baseline (circa +16-18 punti), ma restano sotto i migliori e ogni mossa costa token.
Acronimi
| Sigla | Significato |
|---|---|
| AI | Artificial Intelligence, intelligenza artificiale |
| CFR | Counterfactual Regret Minimization, minimizzazione del rimpianto controfattuale |
| CFR+ | variante di CFR con rimpianti negativi azzerati |
| CLI | Command Line Interface, interfaccia a riga di comando |
| G5, G5.1-G5.3, G6b | sigle interne dei tornei del progetto |
| LLM | Large Language Model, modello linguistico di grandi dimensioni |
| MC | Monte Carlo; anche nome dell’agente A8 |
| MCCFR | Monte Carlo Counterfactual Regret Minimization |
| MLP | Multilayer Perceptron, rete neurale a più strati |
| NIPS, NeurIPS | Neural Information Processing Systems (conferenza; NeurIPS dal 2018) |
| PIMC | Perfect Information Monte Carlo |
| PPO | Proximal Policy Optimization; anche nome dell’agente A7 |
| RL | Reinforcement Learning, apprendimento per rinforzo; anche nome dell’agente A4 |
1.0 Scopo del progetto
Un modello linguistico generalista può giocare bene a un gioco da tavolo dopo averne letto soltanto il regolamento? E quanto vale questa capacità rispetto ai metodi classici dell’intelligenza artificiale (AI, Artificial Intelligence) per i giochi, che non leggono nulla ma accumulano esperienza giocando milioni di mosse contro sé stessi? Il progetto nasce per rispondere a queste due domande con un esperimento concreto e misurabile, invece che con impressioni aneddotiche.
L’obiettivo dichiarato nella specifica è verificare la fattibilità: costruire agenti AI che giochino a No Thanks!, ciascuno addestrato in modo diverso, e farli giocare tra loro o contro un essere umano. La specifica fissa due personalità obbligatorie. La prima conosce soltanto il regolamento. La seconda è addestrata con un rinforzo positivo e usa i modelli Claude Sonnet e Opus. Gli altri metodi di addestramento sono stati scelti durante il lavoro, con un criterio preciso: coprire le principali famiglie di tecniche per i giochi a informazione imperfetta, cioè regole fisse, apprendimento per rinforzo tabellare, minimizzazione del rimpianto controfattuale (CFR, Counterfactual Regret Minimization), gradiente della politica (come PPO, Proximal Policy Optimization), ricerca Monte Carlo e reti addestrate su una ricerca.
Il gioco si presta bene. Le regole stanno in una pagina, quindi un LLM può riceverle per intero nel prompt. Lo spazio delle decisioni è minimo: a ogni turno ci sono soltanto due mosse. Eppure il gioco contiene gli ingredienti che rendono difficili i giochi reali: informazione nascosta, casualità, più avversari e un’economia di risorse in cui il valore di una mossa dipende da ciò che faranno gli altri. Un vincolo di progetto, infine, impone che ogni agente veda solo ciò che vedrebbe un giocatore umano seduto al tavolo, mai i gettoni degli avversari.

2.0 Regolamenti di No Thanks!
No Thanks! è un gioco di carte di Thorsten Gimmler. Amigo Spiele lo ha pubblicato per la prima volta in Germania nel 2004 con il titolo Geschenkt! [1, 2]. Il regolamento usato come riferimento è quello dell’edizione inglese di Mayfair Games [1]. Il gioco ammette da 3 a 7 giocatori. Lo scopo è chiudere con il punteggio più basso.
Il mazzo contiene 33 carte numerate da 3 a 35. All’inizio se ne scartano 9 coperte, che nessuno vede, e le restanti 24 formano il mazzo di pesca. Con 3-5 giocatori ciascuno riceve 11 gettoni, che tiene segreti; le carte prese, invece, sono pubbliche. La prima carta del mazzo viene girata ed è la carta attiva.
Nel proprio turno il giocatore ha due sole possibilità:
- passare: mette un gettone sulla carta attiva e il turno va al giocatore a sinistra. Chi non ha più gettoni non può passare.
- prendere: si porta via la carta attiva con tutti i gettoni accumulati sopra, gira una nuova carta e decide di nuovo, cioè continua il turno.
Il round finisce quando viene presa l’ultima carta. Ogni carta vale il suo numero in punti, ma una sequenza di carte consecutive conta solo per la carta più bassa. Alla fine ogni gettone rimasto in mano sottrae un punto. Il regolamento propone questo esempio: con le carte 8, 13, 14, 15 e 17 si totalizzano 8 + 13 + 17 = 38 punti; con 13 gettoni in mano il punteggio scende a 25 [1].
Da queste poche regole nasce una tensione strategica sottile. I gettoni sono l’unica difesa contro le carte alte, ma ogni passaggio arricchisce la carta per chi la prenderà dopo. Una carta che allunga una propria sequenza costa poco o nulla: conviene allora lasciarla girare per «mungere» gettoni dagli avversari, con il rischio che qualcuno se la prenda prima. Le 9 carte scartate, infine, rendono incerto se un buco in una sequenza potrà mai essere colmato.
2.1 Adattamento per il test
Il regolamento consiglia di giocare quattro round sommando i punteggi, ma ammette esplicitamente anche un solo round di punteggio («a single scoring round») [1]. Il progetto adotta sempre questa seconda forma: una partita è un solo round, in addestramento, nei tornei e nella webapp. Si gioca sempre in 4, con 11 gettoni a testa, e senza le varianti ufficiali del regolamento.
La scelta ha due conseguenze. La prima è positiva: ogni round è un’unità di misura indipendente, quindi i tornei sono più semplici da progettare e da analizzare. La seconda è un limite: un agente ottimizzato per un round singolo non tiene conto di strategie legate al punteggio cumulato, come rischiare di più quando si è in svantaggio. I risultati valgono quindi per il formato a round singolo e non si estendono automaticamente alla partita completa in quattro round.
Per confrontare gli agenti si usa il margine: la media dei punteggi degli altri tre giocatori meno il proprio punteggio. Un margine positivo significa aver fatto meglio della media del tavolo; poiché vince chi ha meno punti, più alto è il margine, meglio è.

3.0 Tipologie di agente
Tutti gli agenti hanno la stessa interfaccia. Ricevono la vista del giocatore: carta attiva, gettoni sopra la carta, carte pubbliche di tutti, i propri gettoni e il numero di carte rimaste. Ricevono anche la lista delle mosse legali. Restituiscono una mossa (prendere o passare) e una breve motivazione in italiano, che la webapp mostra nel log. Nessun agente vede i gettoni degli avversari. Quando un giocatore non ha gettoni, l’unica mossa legale è prendere: tutti gli agenti la eseguono senza ragionare, e gli LLM non vengono interrogati.
La tabella riassume i dodici agenti, identificati con le sigle da A1 ad A11 più Casuale. La colonna «Riferimento» indica il lavoro noto in letteratura a cui l’agente si ispira, quando esiste. L’ultima colonna anticipa il risultato del torneo G6b (sezione 5.2; le sigle G5, G5.1-G5.3 e G6b indicano i tornei del progetto): differenza media di margine rispetto a Euristica sugli stessi setup, con il relativo errore standard.
| ID | Nome | Famiglia | Riferimento | Addestramento | Token in gioco | G6b: diff. vs Euristica |
|---|---|---|---|---|---|---|
| A1 | Regolamento | LLM (Sonnet) | — | nessuno: solo regolamento nel prompt | sì | +15,68 ±3,66 (82 round) |
| A2 | Rinforzo | LLM (Opus) + valori Q | Reflexion (affine) [16] | valori Q da self-play + lezioni premiate dal risultato | sì | +17,76 ±2,96 (69 round) |
| A3 | Esperto | LLM (Sonnet) | — | nessuno: regolamento + strategia esperta | sì | +13,16 ±6,12 (30 round) |
| A4 | RL | apprendimento per rinforzo tabellare | controllo Monte Carlo [4]; Q-learning [3] | Monte Carlo in self-play | no | +11,57 ±2,09 |
| A5 | Euristica | regola fissa | — | nessuno | no | 0 (riferimento) |
| A6 | CFR | minimizzazione del rimpianto | CFR [5], MCCFR [6], CFR+ [7] | Monte Carlo CFR+ in self-play | no | +10,23 ±2,03 |
| A7 | PPO | gradiente della politica, rete neurale | PPO [8] | PPO contro avversari misti | no | +13,73 ±2,02 |
| A8 | MC | ricerca Monte Carlo con determinizzazione | PIMC [11] | nessuno | no | +8,27 ±2,04 |
| A9 | Ricerca | strategia di base CFR + ricerca | Pluribus [13, 17] | nessuno oltre ad A6 | no | +20,22 ±2,04 |
| A10 | Autodidatta | rete neurale + ricerca breve | AlphaGo Zero, AlphaZero [14, 15, 18] | imitazione della ricerca di A9, poi self-play a tavoli misti | no | +21,52 ±2,05 |
| A11 | Haiku (scartato) | LLM (Haiku) consigliato da A10 | — | nessuno | sì | +21,77 ±3,00 (133 round) |
| — | Casuale | baseline casuale | — | nessuno | no | −89,69 ±2,45 |
3.1 Agente A1 — Regolamento
3.1.1 Logica dell’agente
Regolamento è un LLM, Claude Sonnet, interrogato a ogni decisione tramite l’interfaccia a riga di comando (CLI, Command Line Interface) claude -p. Il prompt di sistema contiene una sintesi fedele del regolamento in inglese, compresi i tre consigli del regolamento ufficiale. Il primo: meglio prendere una carta con qualche gettone che restare senza. Il secondo: si può passare su una carta desiderata per raccogliere gettoni. Il terzo: le 9 carte scartate rendono incerto colmare i buchi. A ogni mossa il prompt descrive lo stato visibile: carta attiva, gettoni sopra, carte rimaste, i propri gettoni e le carte di tutti. Il modello risponde su una riga con la mossa e un motivo di al massimo 12 parole.
È l’agente che risponde più direttamente alla domanda centrale del progetto: misura quanto gioco «sappia» già un modello linguistico generalista senza alcun addestramento specifico.
3.1.2 Metodo di addestramento
Nessuno. L’agente non conserva memoria tra le mosse né tra i round: ogni decisione è una chiamata indipendente, con il regolamento come unica conoscenza del gioco. Se la chiamata fallisce, per esempio per un limite d’uso o un timeout, l’agente ritenta una volta. Se la risposta resta mancante o non interpretabile, nell’uso interattivo ripiega su prendere, che è sempre legale. Nei tornei invece il round fallito viene scartato, per non attribuire all’agente una mossa che non ha scelto (modalità STRICT).
3.1.3 Costo
In una calibrazione di 30 round, Regolamento ha fatto in media circa 10,6 chiamate per round. Ha consumato circa 11.300 token in ingresso e 2.400 in uscita per round. Il costo equivalente stimato dalla CLI è circa 0,07 dollari per round. Sul piano in abbonamento usato nel progetto ogni round è costato circa lo 0,12% della quota del piano Pro. In calibrazione un round ha richiesto circa un minuto, quasi tutto per l’attesa delle risposte.
3.2 Agente A2 — Rinforzo
3.2.1 Logica dell’agente
Rinforzo è un LLM, Claude Opus, che riceve due aiuti oltre al regolamento. Il primo è un consulente numerico: per lo stato corrente, il prompt riporta i valori attesi di prendere e passare stimati dall’agente RL (A4), espressi come margine finale atteso. Il secondo è una memoria di lezioni: nel prompt di sistema compaiono le cinque lezioni scritte nei round precedenti che hanno ottenuto i risultati migliori. Il modello decide integrando regolamento, stima numerica e lezioni.
3.2.2 Metodo di addestramento
L’addestramento ha due fasi, chiamate nel progetto cold e warm. La fase cold è l’apprendimento per rinforzo in self-play di A4 (sezione 3.4), da cui provengono i valori Q. La fase warm avviene a ogni fine round e procede in due passi:
- ogni lezione usata nel round riceve come ricompensa il margine ottenuto, che aggiorna la sua media;
- Opus rilegge le mosse giocate, le motivazioni, le carte finali e i punteggi, e scrive una nuova lezione concreta di al massimo 25 parole.
Il file conserva le 20 lezioni con la media migliore. L’idea è affine a Reflexion [16], in cui un agente linguistico migliora tramite riflessioni verbali conservate in memoria invece che aggiornando i pesi del modello. A differenza di Reflexion, qui le lezioni competono tra loro e vengono selezionate in base al risultato. Un esempio di lezione appresa: «quando una carta allunga la tua sequenza e porta già molti gettoni, prendila subito: mungerla troppo lascia agli avversari l’occasione di bloccarti».
Un limite da tenere presente: la ricompensa di una lezione è il margine dell’intero round. In No Thanks! questo margine dipende molto dal mazzo, quindi una lezione usata in pochi round può risultare «buona» per fortuna.
3.2.3 Costo
È l’agente più costoso. In calibrazione ha fatto in media circa 11,2 chiamate per round, compresa quella che scrive la lezione. Ha consumato circa 16.200 token in ingresso e 1.900 in uscita per round. Il costo equivalente stimato dalla CLI è circa 0,11 dollari per round, pari a circa lo 0,19% della quota del piano Pro. Poiché aggiorna un file di memoria condiviso, nei tornei deve girare in un processo solo, un round alla volta: è stato il collo di bottiglia dei tornei LLM (in calibrazione circa 67 secondi di chiamate per round, senza parallelismo; il tempo reale per round nel G6b non è registrato).
3.3 Agente A3 — Esperto
3.3.1 Logica dell’agente
Esperto è uguale a Regolamento (Sonnet, stesso formato di risposta), con un blocco di strategia esperta aggiunto al prompt. La strategia contiene sei regole:
- calcolare il costo netto di una carta: punti aggiunti meno gettoni sopra;
- dare più valore ai gettoni quando ne restano meno di tre;
- lasciare girare le carte alte con pochi gettoni;
- mungere le carte che allungano solo le proprie sequenze;
- non regalare carte utili agli avversari;
- a fine round dare meno peso ai gettoni.
3.3.2 Metodo di addestramento
Nessuno: la conoscenza strategica è scritta a mano nel prompt. L’agente serve a capire se istruzioni esplicite migliorano un LLM che conosce già il regolamento.
3.3.3 Costo
In calibrazione ha fatto circa 9,7 chiamate per round, con circa 13.300 token in ingresso e 2.000 in uscita. Il costo equivalente è circa 0,05 dollari per round, pari a circa lo 0,08% del piano Pro. In ingresso consuma più di Regolamento perché il prompt è più lungo, ma in totale costa meno, perché le sue risposte sono più brevi.
3.4 Agente A4 — RL
3.4.1 Logica dell’agente
RL consulta una tabella di valori. Ogni stato del gioco è ridotto a quattro caratteristiche:
- il costo netto della carta attiva, limitato all’intervallo da −10 a 30;
- i propri gettoni, fino a 12;
- la fase del round, in tre fasce;
- un indicatore che dice se la carta è adiacente alle carte di un avversario.
Per ciascuno di questi stati compressi la tabella contiene una stima del margine finale atteso se si prende e se si passa. L’agente sceglie la mossa con il valore più alto. Se uno dei due valori non è mai stato stimato, sceglie quello noto o, in mancanza di entrambi, a caso.
3.4.2 Metodo di addestramento
Il progetto chiama il metodo Q-learning Monte Carlo. Tecnicamente è un controllo Monte Carlo tabellare in self-play [4]. A differenza del Q-learning di Watkins [3], che aggiorna le stime usando la stima dello stato successivo, qui ogni stima viene spostata verso il margine finale effettivo del round. Durante l’addestramento quattro copie dell’agente giocano tra loro, esplorando con una mossa casuale nel 10% dei casi (ε = 0,1). Il passo di aggiornamento è 1/n, con un minimo di 0,02, così le stime continuano ad adattarsi mentre cambiano gli avversari, che sono copie dell’agente stesso. La tabella finale contiene 2.924 stati.
L’addestramento si può riprendere da dove si era interrotto e il comando documentato esegue 300.000 round per sessione. Il numero totale di round accumulati nelle varie sessioni non è registrato nei file del progetto.
3.4.3 Costo
Zero token. In gioco l’agente fa una sola consultazione di tabella per mossa. La stessa tabella fornisce i valori Q che Rinforzo (A2) riceve nel prompt.
3.5 Agente A5 — Euristica
3.5.1 Logica dell’agente
Euristica applica una sola regola. Calcola il costo netto della carta: di quanto salirebbe il proprio punteggio prendendola, meno i gettoni che ci sono sopra. Prende la carta se il costo netto è al massimo 2. Quando gli restano 3 gettoni o meno, la soglia sale a 8, perché senza gettoni si è costretti a prendere carte peggiori. La regola cattura l’idea base del gioco ma ignora gli avversari, le sequenze altrui e la possibilità di mungere gettoni.
3.5.2 Metodo di addestramento
Nessuno: le soglie sono fisse e sono state tarate a mano. Euristica è la baseline di riferimento di tutti i tornei con gli LLM.
3.5.3 Costo
Zero token, costo di calcolo trascurabile.
3.6 Agente A6 — CFR
3.6.1 Logica dell’agente
CFR gioca una strategia mista: per ogni stato non sceglie una mossa fissa, ma prende con una certa probabilità e passa con la probabilità complementare. Gli stati sono le stesse quattro caratteristiche di A4, che qui fungono da insiemi di informazione: raggruppano le situazioni che il giocatore non sa distinguere. La casualità è voluta. Nei giochi a informazione imperfetta una strategia deterministica è prevedibile e quindi sfruttabile; una strategia mista ben calibrata lo è meno.
3.6.2 Metodo di addestramento
L’agente usa la minimizzazione del rimpianto controfattuale (Counterfactual Regret Minimization, CFR) [5]. Il rimpianto di una mossa misura quanto si sarebbe guadagnato giocando sempre quella mossa invece della strategia attuale. CFR accumula i rimpianti in self-play e rende più probabili le mosse con rimpianto positivo (regret matching). Nei giochi a due giocatori a somma zero la strategia media converge a un equilibrio di Nash [5]. Il progetto usa due varianti:
- campionamento Monte Carlo (MCCFR) [6]: a ogni decisione la mossa non giocata viene valutata con una sola simulazione del resto del round, sullo stesso mazzo;
- CFR+ [7]: i rimpianti negativi vengono azzerati, il che in genere accelera la convergenza.
Due limiti meritano attenzione. No Thanks! in quattro è un gioco a più giocatori e non a somma zero: le garanzie teoriche di convergenza di CFR non valgono, e la strategia ottenuta va considerata un’euristica ben fondata, non un equilibrio. Inoltre l’astrazione a quattro caratteristiche è grossolana, e la media della strategia è uniforme, una scelta semplice indicata nel codice come migliorabile. La tabella finale contiene 2.828 insiemi di informazione; il comando documentato esegue 50.000 round per sessione.
3.6.3 Costo
Zero token. In gioco l’agente fa una consultazione di tabella e un’estrazione casuale. La sua strategia media è anche la base di Ricerca (A9).
3.7 Agente A7 — PPO
3.7.1 Logica dell’agente
PPO è una piccola rete neurale (MLP, Multilayer Perceptron, nella configurazione predefinita della libreria). Riceve un vettore di 137 numeri: carta attiva, gettoni sulla carta, gettoni propri, carte rimaste e costo netto, più un bit per ogni carta di ciascun giocatore, nell’ordine dei posti a partire da sé. Ne ricava la probabilità di prendere. In gioco prende se la probabilità è almeno il 50%. A differenza di A4 e A6, vede l’intero tavolo e non una sintesi in quattro caratteristiche.
3.7.2 Metodo di addestramento
L’addestramento usa la Proximal Policy Optimization (PPO) [8], un metodo a gradiente della politica. PPO alterna la raccolta di esperienza e l’ottimizzazione della politica, e limita l’ampiezza di ogni aggiornamento per mantenere stabile l’apprendimento. L’implementazione è quella di Stable-Baselines3 [9], su un ambiente Gymnasium [10] che incapsula il motore di gioco. Ogni episodio è un round. Gli avversari vengono estratti a ogni round tra Euristica, RL, CFR e Casuale. La ricompensa arriva solo a fine round ed è il margine. Il comando documentato esegue 1.000.000 di passi.
Non si addestra contro sé stesso ma contro avversari esterni, ed è l’unico agente che ha incontrato Casuale durante l’addestramento. Questo spiega un suo tratto notevole nei tornei: è molto bravo a sfruttarlo (sezione 5.1).
3.7.3 Costo
Zero token. Ogni mossa richiede una passata della rete sul processore (CPU, Central Processing Unit). Richiede le librerie gymnasium, stable-baselines3 e torch: è l’unica dipendenza esterna del progetto oltre a quella di A10.
3.8 Agente A8 — MC
3.8.1 Logica dell’agente
MC non impara nulla in anticipo: ragiona a ogni mossa per simulazione. Non conosce l’ordine del mazzo, né quali carte sono state scartate, né i gettoni degli avversari. Per questo costruisce 32 mondi possibili coerenti con ciò che vede, con una procedura chiamata determinizzazione. In ogni mondo mescola a caso le carte non ancora viste e divide in parti uguali tra gli avversari i gettoni che non vede. Poi gioca il round fino in fondo, una volta prendendo e una volta passando. Gli avversari simulati sono estratti tra Euristica, RL e CFR. Infine sceglie la mossa con il margine medio migliore. Le due mosse vengono provate sugli stessi mondi (numeri casuali comuni), così la differenza tra le due medie riflette la mossa e non la fortuna del campione.
Questo approccio si chiama Perfect Information Monte Carlo (PIMC). Funziona sorprendentemente bene in molti giochi di carte, ma ha difetti noti, in particolare la strategy fusion: in ogni mondo simulato l’agente «sa» cose che nella realtà non può sapere [11, 12, 20].
3.8.2 Metodo di addestramento
Nessuno. Il codice prevede anche una tattica di «estorsione», cioè passare sulle proprie carte di sequenza finché il piatto non cresce. Le prove l’hanno misurata come peggiore, quindi è disattivata.
3.8.3 Costo
Zero token, ma costo di calcolo alto: circa 64 simulazioni complete del round per ogni decisione. È uno degli agenti più lenti.
3.9 Agente A9 — Ricerca
3.9.1 Logica dell’agente
Ricerca usa la stessa ricerca di MC con due differenze, ispirate a Pluribus, il programma che nel 2019 ha superato professionisti umani nel poker Texas hold’em a sei giocatori [13]:
- strategia di base (blueprint): nelle simulazioni l’agente gioca la strategia media di CFR (A6), non un’euristica;
- avversari multipli: ogni avversario simulato segue una di quattro politiche, estratta a caso: la strategia di base, una sua variante sbilanciata verso prendere (probabilità pesata ×5), una sbilanciata verso passare, oppure Euristica. Così la ricerca non si fida di un unico modello di avversario. Aggiungere Euristica alle varianti ha migliorato i risultati in una verifica su dati separati.
L’analogia con Pluribus è parziale. Pluribus usa una ricerca a profondità limitata in cui gli avversari scelgono tra più strategie di continuazione alle foglie [13, 17]. Qui invece ogni simulazione arriva a fine round e la politica di ogni avversario è estratta a caso.
3.9.2 Metodo di addestramento
Nessun addestramento proprio: riusa la tabella di A6.
3.9.3 Costo
Zero token, costo di calcolo alto come MC. È il «maestro» da cui Autodidatta (A10) impara.
3.10 Agente A10 — Autodidatta
3.10.1 Logica dell’agente
Autodidatta sostituisce le lunghe simulazioni di Ricerca con una rete neurale che stima il valore delle due mosse. Lo stato è codificato in 72 numeri: le proprie carte, le carte degli avversari, carta attiva, piatto, gettoni, carte rimaste, costo netto e adiacenza. La rete ha due strati nascosti, da 128 e 64 unità, e restituisce il margine atteso di prendere e di passare.
In gioco l’agente non si affida solo alla rete. Esegue una ricerca breve in quattro passi:
- genera 16 mondi possibili per ciascuna mossa;
- gioca la mossa;
- lascia rispondere gli avversari simulati fino al proprio turno successivo;
- valuta la posizione raggiunta con la rete, oppure con il punteggio reale se il round è finito.
L’inferenza usa solo numpy, senza simulazioni pesanti fino a fine round.
3.10.2 Metodo di addestramento
L’addestramento procede in due fasi.
Imitazione della ricerca. In 1.500 round a tavoli misti, con i posti assegnati a caso tra Euristica, RL, CFR e Ricerca, Ricerca etichetta ogni decisione con i margini medi stimati per le due mosse: circa 180.000 stati. Il valore è una stima: il log registra 170.590 stati dopo 1.400 partite su 1.500 e non riporta il totale finale. La rete impara a riprodurli con una regressione ai minimi quadrati.
Raffinamento stile AlphaZero. La rete gioca con la ricerca breve, contro copie di sé e contro Euristica, RL e CFR. Le nuove etichette prodotte da questa ricerca riaddestrano la rete. La nuova rete sostituisce la precedente solo se la batte in un confronto diretto di 1.000 round.
- Prima iterazione: la nuova rete è stata promossa, con +1,34 punti di margine.
- Seconda iterazione: la nuova rete è stata respinta (−0,42) e il ciclo si è fermato.
Sui dati di verifica la rete sceglie la stessa mossa delle etichette nell’88% circa dei casi.
L’ispirazione è il ciclo di AlphaGo Zero e AlphaZero, in cui una rete guida la ricerca e la ricerca produce gli obiettivi per migliorare la rete [14, 15]. Anche qui l’analogia è parziale. Non c’è un albero di ricerca né una testa di politica, ma solo una rete di valore con una ricerca campionata di un turno. La regola «la nuova rete sostituisce la vecchia solo se vince» era presente in AlphaGo Zero, con una soglia del 55% di vittorie [14], ed è stata abbandonata in AlphaZero [15, 18].
È stata provata anche una variante in cui un autoencoder non supervisionato comprimeva lo stato prima della rete: ha ottenuto risultati peggiori ed è stata scartata.
3.10.3 Costo
Zero token. In gioco l’agente fa 32 brevi simulazioni di un turno, valutate dalla rete: molto meno delle 64 simulazioni complete di MC e Ricerca. L’addestramento richiede torch e richiede circa 20 minuti per generare i dati e circa 2 minuti per addestrare la rete, secondo le stime del progetto.
3.11 Agente A11 — Haiku (scartato)
3.11.1 Logica dell’agente
Haiku è un LLM, Claude Haiku, che riceve nel prompt il consiglio della rete di Autodidatta. L’ipotesi da verificare era se un modello linguistico, piccolo ed economico, potesse aggiungere giudizio a una rete già forte, correggendone gli errori.
3.11.2 Metodo di addestramento
Nessuno. L’esperimento (torneo G5.3) ha fissato in anticipo una regola di decisione: tenere Haiku solo se superava Autodidatta di almeno 2,6 punti di margine. Su 300 round previsti, 133 sono stati completati e 167 sono falliti perché il modello non rispettava il formato di risposta. Sui round completati, la differenza rispetto ad Autodidatta è stata −0,06 ±2,60 punti, cioè nessun guadagno misurabile. L’agente è stato scartato e il suo codice non fa parte della versione finale del progetto.
3.11.3 Costo
I token per round di Haiku non sono riportati nei file del progetto. Il costo era comunque superiore a zero, mentre Autodidatta da solo, che ha ottenuto lo stesso risultato, non spende token.
3.12 Agente Casuale
3.12.1 Logica dell’agente
Casuale sceglie a caso tra le mosse legali. Non è un avversario credibile: è un controllo di sanità. Ogni agente che impara qualcosa deve batterlo, e i test automatici dei moduli di apprendimento e di ricerca lo verificano.
3.12.2 Metodo di addestramento
Nessuno.
3.12.3 Costo
Zero token, costo di calcolo nullo.

4.0 Webapp
La webapp permette di osservare e giocare: si può guardare quattro agenti sfidarsi oppure sedersi al tavolo con tre di loro. È costruita per funzionare senza alcuna dipendenza esterna. Il server usa il modulo http.server della libreria standard di Python e risponde solo sulla macchina locale (127.0.0.1:8765). L’interfaccia è un’unica pagina HTML (HyperText Markup Language) con JavaScript senza framework.
Il server espone poche operazioni:
- creare una nuova partita con quattro posti, di cui al massimo uno umano;
- registrare la mossa umana;
- far eseguire una mossa all’agente di turno;
- restituire lo stato corrente.
Il server controlla che i posti siano validi e che ogni richiesta arrivi nel turno giusto. A fine round chiama gli aggiornamenti di fine partita degli agenti che imparano, così Rinforzo scrive la sua lezione anche dopo una partita giocata in webapp.
Dall’interfaccia l’utente può:
- scegliere l’agente di ciascun posto, aiutato da schede descrittive che indicano anche se l’agente consuma token;
- far giocare gli agenti in automatico o una mossa alla volta;
- giocare in prima persona con i pulsanti prendi e passa (il secondo compare solo se è legale);
- leggere il log delle ultime mosse, ciascuna con la motivazione breve dell’agente;
- attivare «Mostra gettoni avversari». L’opzione mostra i gettoni solo all’umano, a scopo didattico. Gli agenti continuano a ricevere solo la propria vista.
Le etichette sono in italiano e in inglese. La webapp gestisce una sola partita alla volta, una semplificazione adatta a un uso locale con un solo utente.
5.0 Torneo di validazione
Misurare la forza di un agente in un gioco con forte componente casuale è più difficile di quanto sembri. Un singolo round dipende moltissimo dal mazzo: un buon giocatore può perdere per sfortuna. Per questo il progetto usa tre accorgimenti, presi dalla pratica dei tornei di bridge [19] e dalla statistica sperimentale.
- Mazzi duplicati. Nel torneo zero-token (G5) ogni mazzo viene giocato quattro volte, ruotando i posti, così ogni agente gioca le stesse carte da ogni posizione. La fortuna della distribuzione si compensa invece di sommarsi.
- Setup accoppiati. Nei tornei con gli LLM (G5.1-G5.3 e G6b) il round k ha sempre lo stesso posto, la stessa terna di avversari e lo stesso mazzo per tutti gli agenti misurati. Il confronto con Euristica usa la differenza accoppiata: per ogni setup si calcola la differenza tra il margine dell’agente e quello di Euristica, poi se ne fa la media. Questo elimina gran parte della varianza dovuta al mazzo.
- Soglia di separazione dichiarata in anticipo. Due agenti sono considerati diversi solo se la loro differenza è almeno 2 errori standard. Altrimenti stanno nello stesso gruppo.
Punti di forza. Il disegno è riproducibile: ogni mazzo dipende da un seme numerico. È bilanciato: nel G5 ogni agente incontra ogni altro lo stesso numero di volte. È onesto sui fallimenti: i round in cui un LLM non risponde nel formato richiesto non vengono contati come mosse valide. È anche economico: i round con gli LLM vengono salvati in una cache e un’interruzione non costringe a ripagarli. Le regole di decisione, come la soglia per tenere Haiku, sono state fissate prima di vedere i dati.
Limiti. Gli errori standard trattano i round come indipendenti. Nel formato duplicato non lo sono del tutto: secondo il report questa scelta rende le stime leggermente pessimistiche. Gli avversari dei tornei LLM sono gli stessi agenti zero-token del progetto. Alcuni si sono addestrati l’uno contro l’altro, quindi la classifica misura la forza dentro questo ecosistema, non contro avversari esterni. Quando un agente compare anche nella terna di avversari, gioca contro una propria copia: è una piccola distorsione, accettata. Per gli LLM i round sono pochi (da 30 a 133), quindi gli errori standard sono ampi e non separano gli agenti con differenze di pochi punti. I modelli sono richiamati per alias (sonnet, opus, haiku), non per versione esatta, e un aggiornamento del modello potrebbe cambiare i risultati. Infine, tutto vale per il formato a round singolo.
5.1 Risultato torneo zero-token
Il torneo G5 mette a confronto gli otto agenti che non consumano token. Ci sono 70 tavoli, cioè tutte le combinazioni di 4 agenti diversi su 8. Ogni tavolo gioca 100 mazzi, ciascuno in 4 rotazioni: in totale 28.000 round, 14.000 per agente.
| # | Agente | Margine | Vittorie | Margine senza Casuale | Vittorie senza Casuale |
|---|---|---|---|---|---|
| 1 | Autodidatta | +20,38 ±0,22 | 36,3% | +8,76 ±0,27 | 35,8% |
| 2 | PPO | +18,09 ±0,27 | 39,7% | +0,99 ±0,32 | 28,9% |
| 3 | Ricerca | +15,40 ±0,21 | 26,2% | +5,50 ±0,26 | 29,8% |
| 4 | RL | +15,16 ±0,23 | 28,1% | +1,32 ±0,27 | 24,0% |
| 5 | MC | +13,58 ±0,23 | 24,9% | +0,10 ±0,27 | 22,7% |
| 6 | CFR | +10,60 ±0,23 | 21,8% | −1,39 ±0,27 | 22,4% |
| 7 | Euristica | +5,08 ±0,29 | 23,1% | −15,28 ±0,30 | 11,4% |
| 8 | Casuale | −98,29 ±0,28 | 0,0% | — | — |
La quota «vittorie» indica i round chiusi con il punteggio più basso; a parità di forza la quota attesa è il 25%.
Autodidatta è primo in entrambe le classifiche e batte ogni altro agente negli scontri diretti. Senza i tavoli con Casuale supera Ricerca di 2,1 punti, RL di 6,2, PPO di 8,8 ed Euristica di 19,6. È il risultato più interessante del torneo: lo studente supera il maestro. Una spiegazione plausibile, non verificata con un esperimento dedicato, è che la rete abbia imparato una stima del valore più regolare della ricerca rumorosa che imitava, e che il raffinamento in self-play abbia aggiunto il resto.
Il secondo posto di PPO nella classifica generale è in gran parte un effetto di Casuale. PPO è l’unico agente che ha incontrato Casuale in addestramento e lo sfrutta meglio di tutti. Senza quei tavoli il suo margine crolla a +0,99, alla pari di RL e MC. La classifica senza Casuale è quindi la più informativa.
Il resto è in linea con le aspettative. Tutti gli agenti che apprendono o cercano battono nettamente la regola fissa di Euristica. Ricerca supera MC: a parità di ricerca, la strategia di base di CFR e gli avversari modellati con più varianti pagano. CFR chiude ultimo tra gli agenti appresi, probabilmente a causa dell’astrazione grossolana e della mancanza di garanzie teoriche fuori dai giochi a due giocatori. Questa resta un’ipotesi.
5.2 Risultato torneo giocatori AI a token
Gli LLM costano token a ogni mossa, quindi non si possono far giocare per 28.000 round. Per loro è stato usato un formato diverso, a setup accoppiati. Nel round k l’agente misurato siede al posto k mod 4, contro una delle 20 terne formate da sei agenti zero-token: Euristica, RL, CFR, PPO, MC e Ricerca. Gli stessi setup vengono giocati anche da Euristica, che fa da riferimento accoppiato.
Nei primi tornei (G5.1-G5.3, da 30 a 60 round per LLM) tutti gli LLM hanno battuto Euristica di 13-21 punti, ma nessuna coppia di LLM risultava separabile: gli errori standard erano di ±3-6 punti. Il torneo G6b ha quindi riportato tutti gli agenti sulla stessa scala. Ha usato 300 setup accoppiati per gli agenti zero-token e fino a 100 previsti per i due LLM principali.
| Agente | Round | Diff. vs Euristica | Diff. vs Autodidatta | Vittorie |
|---|---|---|---|---|
| Haiku (A11, scartato) | 133 | +21,77 ±3,00 | −0,06 ±2,60 | 35% |
| Autodidatta | 300 | +21,52 ±2,05 | — | 41% |
| Ricerca | 300 | +20,22 ±2,04 | −1,30 ±1,80 | 35% |
| Rinforzo | 69 | +17,76 ±2,96 | −5,02 ±3,14 | 33% |
| Regolamento | 82 | +15,68 ±3,66 | −7,68 ±3,33 | 30% |
| PPO | 300 | +13,73 ±2,02 | −7,79 ±2,00 | 31% |
| Esperto | 30 | +13,16 ±6,12 | −5,91 ±5,75 | 30% |
| RL | 300 | +11,57 ±2,09 | −9,95 ±1,89 | 23% |
| CFR | 300 | +10,23 ±2,03 | −11,29 ±1,93 | 29% |
| MC | 300 | +8,27 ±2,04 | −13,25 ±1,94 | 20% |
| Euristica | 300 | — | −21,52 ±2,05 | 14% |
| Casuale | 300 | −89,69 ±2,45 | −111,21 ±2,43 | 0% |
Due LLM sono incompleti. Per Regolamento si sono completati 82 round su 100 e per Rinforzo 69 su 100: 49 round sono falliti per il formato di risposta, per una causa non verificata. Il progetto ha scelto di non rifarli, perché non avrebbero cambiato la lettura. Esperto e Haiku sono riportati ma esclusi dalla classifica finale: il primo per i pochi round, il secondo perché scartato in G5.3.
Con la soglia dei due errori standard, la lettura è questa:
- In testa, indistinguibili tra loro: Autodidatta e Ricerca (differenza −1,30 ±1,80).
- Gli LLM stanno nel mezzo. Rinforzo (+17,76) non si separa statisticamente da nessuno degli agenti vicini (Autodidatta, Ricerca, Regolamento, PPO): pochi round e varianza alta. Regolamento (+15,68) è sotto Autodidatta e Ricerca di circa 2,2-2,3 errori standard, ma non si separa da PPO. Rinforzo e Regolamento non si distinguono tra loro.
- Dietro Ricerca di 6-12 punti (8-13 punti rispetto ad Autodidatta), in un unico gruppo: PPO, RL, CFR e MC. Al loro interno solo la coppia PPO-MC si separa.
Confronto con gli zero-token. Il dato più notevole riguarda Regolamento. Un modello linguistico che conosce solo il regolamento, senza alcun addestramento sul gioco, fa meglio della baseline di circa 16 punti per round. Nelle stime puntuali è sopra a tutti gli agenti di apprendimento per rinforzo e di ricerca «semplice» (PPO, RL, CFR, MC); rispetto a PPO, il più vicino, la differenza non è statisticamente separabile. Resta però sotto i due agenti migliori, che sono anche gratuiti in esercizio.
Due risultati smentiscono le attese. Il primo: la strategia esperta scritta a mano non ha migliorato Esperto rispetto a Regolamento, almeno sui 30 round disponibili; le stime puntuali vanno anzi nella direzione opposta. Il secondo: l’apprendimento persistente di Rinforzo non ha prodotto un guadagno visibile. Già nel G5.2 la sua differenza a 60 round era +17,9 ±3,1, simile a quella di Regolamento.
Il caso Haiku chiude il quadro. Aggiungere un LLM al consiglio della rete migliore non ha aggiunto forza: −0,06 ±2,60 rispetto alla sola rete. Ha anzi introdotto un problema operativo, perché più della metà dei round è fallita per il formato di risposta.
Paired margin difference vs Euristica (G6b tournament)
Data table
| Agent | Type | Rounds | Diff. vs Euristica | SE |
|---|
6.0 Conclusioni
I due agenti più forti non leggono alcun regolamento e non spendono token: Autodidatta e Ricerca. Sono in testa a pari merito, con circa 20-21 punti di margine per round sulla baseline euristica. Se si deve indicarne uno, la scelta pratica è Autodidatta. È primo nel torneo zero-token da 28.000 round, batte ogni altro agente negli scontri diretti e ottiene la stima puntuale migliore nella classifica unica. In più gioca con una frazione del calcolo di Ricerca: brevi simulazioni valutate da una rete, invece di decine di simulazioni complete. La sua forza nasce da una combinazione, non da un singolo metodo. Una ricerca Monte Carlo fornisce gli esempi, una rete neurale li generalizza e un ciclo di self-play con verifica la raffina. È la stessa ricetta, in miniatura, che ha portato ai risultati di AlphaZero.
La domanda iniziale riguardava però i modelli linguistici, e la risposta è più sfumata di un «sì» o di un «no». Un LLM generalista che ha letto solo il regolamento gioca in modo competente fin dalla prima mossa: batte nettamente una regola sensata scritta a mano e si colloca nella fascia alta degli agenti addestrati. Questo dice molto sulla quantità di ragionamento strategico che un modello linguistico porta con sé. Allo stesso tempo, i tentativi di migliorarlo dall’esterno non hanno prodotto guadagni misurabili: la strategia esperta nel prompt, la memoria di lezioni premiate dal risultato, l’abbinamento alla rete migliore. Inoltre ogni mossa ha un costo in token, latenza e affidabilità del formato di risposta.
Restano aperte alcune domande. Con più round, i due LLM principali si separerebbero davvero tra loro e dai migliori? Il quadro cambierebbe nella partita completa in quattro round, dove conta il punteggio cumulato? Gli agenti migliori resterebbero tali contro avversari esterni all’ecosistema in cui si sono addestrati? Il progetto ha costruito gli strumenti per rispondere: motore verificato, tornei riproducibili e webapp. Il risultato più solido, intanto, è anche il più istruttivo. In un gioco piccolo ma insidioso, la combinazione di ricerca e apprendimento batte la sola conoscenza del regolamento, e lo fa senza spendere token.
7.0 Bibliografia
- Gimmler, T. No Thanks! Regolamento, edizione inglese. Mayfair Games / AMIGO Spiel + Freizeit GmbH, © 2004-2015 (file
mfg5715-rules-en.pdf, usato localmente e non distribuito). - «No Thanks! (game)». Wikipedia. https://en.wikipedia.org/wiki/No_Thanks!_(game)
- Watkins, C. J. C. H., & Dayan, P. (1992). Q-learning. Machine Learning, 8(3-4), 279-292. https://doi.org/10.1007/BF00992698
- Sutton, R. S., & Barto, A. G. (2018). Reinforcement Learning: An Introduction (2ª ed.). MIT Press.
- Zinkevich, M., Johanson, M., Bowling, M., & Piccione, C. (2007). Regret Minimization in Games with Incomplete Information. Advances in Neural Information Processing Systems 20 (NIPS 2007). https://proceedings.neurips.cc/paper/2007/hash/08d98638c6fcd194a4b1e6992063e944-Abstract.html
- Lanctot, M., Waugh, K., Zinkevich, M., & Bowling, M. (2009). Monte Carlo Sampling for Regret Minimization in Extensive Games. Advances in Neural Information Processing Systems 22 (NIPS 2009), 1078-1086. https://proceedings.neurips.cc/paper/2009/hash/00411460f7c92d2124a67ea0f4cb5f85-Abstract.html
- Tammelin, O. (2014). Solving Large Imperfect Information Games Using CFR+. arXiv:1407.5042. https://arxiv.org/abs/1407.5042
- Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Klimov, O. (2017). Proximal Policy Optimization Algorithms. arXiv:1707.06347. https://arxiv.org/abs/1707.06347
- Raffin, A., Hill, A., Gleave, A., Kanervisto, A., Ernestus, M., & Dormann, N. (2021). Stable-Baselines3: Reliable Reinforcement Learning Implementations. Journal of Machine Learning Research, 22(268), 1-8. https://jmlr.org/papers/v22/20-1364.html
- Towers, M., et al. (2024). Gymnasium: A Standard Interface for Reinforcement Learning Environments. arXiv:2407.17032v3. https://arxiv.org/abs/2407.17032v3 (la v4, 2025, è intitolata «A Standardized Interface» ed è apparsa a NeurIPS 2025, Datasets and Benchmarks Track).
- Long, J., Sturtevant, N., Buro, M., & Furtak, T. (2010). Understanding the Success of Perfect Information Monte Carlo Sampling in Game Tree Search. Proceedings of the AAAI Conference on Artificial Intelligence, 24(1), 134-140. https://ojs.aaai.org/index.php/AAAI/article/view/7562
- Cowling, P. I., Powley, E. J., & Whitehouse, D. (2012). Information Set Monte Carlo Tree Search. IEEE Transactions on Computational Intelligence and AI in Games, 4(2), 120-143. https://doi.org/10.1109/TCIAIG.2012.2200894
- Brown, N., & Sandholm, T. (2019). Superhuman AI for multiplayer poker. Science, 365(6456), 885-890. https://doi.org/10.1126/science.aay2400
- Silver, D., et al. (2017). Mastering the game of Go without human knowledge. Nature, 550, 354-359. https://doi.org/10.1038/nature24270
- Silver, D., et al. (2018). A general reinforcement learning algorithm that masters chess, shogi, and Go through self-play. Science, 362(6419), 1140-1144. https://doi.org/10.1126/science.aar6404
- Shinn, N., Cassano, F., Gopinath, A., Narasimhan, K., & Yao, S. (2023). Reflexion: Language Agents with Verbal Reinforcement Learning. Advances in Neural Information Processing Systems 36 (NeurIPS 2023). https://proceedings.neurips.cc/paper_files/paper/2023/hash/1b44b878bb782e6954cd888628510e90-Abstract.html (la versione arXiv:2303.11366 elenca anche B. Labash ed E. Berman).
- Brown, N., Sandholm, T., & Amos, B. (2018). Depth-Limited Solving for Imperfect-Information Games. Advances in Neural Information Processing Systems 31 (NeurIPS 2018). arXiv:1805.08195. https://arxiv.org/abs/1805.08195
- Silver, D., et al. (2017). Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm. arXiv:1712.01815. https://arxiv.org/abs/1712.01815
- «Duplicate bridge movements». Wikipedia. https://en.wikipedia.org/wiki/Duplicate_bridge_movements
- Świechowski, M., Godlewski, K., Sawicki, B., & Mańdziuk, J. (2021). Monte Carlo Tree Search: A Review of Recent Modifications and Applications. Artificial Intelligence Review, 56(3), 2497-2562 (2023). https://doi.org/10.1007/s10462-022-10228-y (preprint arXiv:2103.04931)
Fonti interne del progetto: output/g5_report.md (torneo G5), output/g51_report.md, output/g52_report.md e output/g53_report.md (tornei G5.1-G5.3), output/g6b_report.md (classifica unica G6b), output/calib.log (consumi di calibrazione degli LLM), output/a10_gen.log e output/a10_az.log (addestramento di A10), docs/contratto.md (decisioni ed esiti), codice in source/, verifica dei fatti in docs/report/article_fact_checking.md.
Progetto disponibile su: https://github.com/volpegiocosa-rgb/nothanks-ai
No Thanks!
Twelve artificial players and a deck of cards: LLMs, reinforcement learning and search compared on No Thanks!
A controlled experiment on an imperfect-information game: what can a language model that has read only the rulebook do, and what does it take to beat it.
In brief. In this project twelve artificial agents play No Thanks!, a four-player card game with imperfect information. The agents follow different methods. Some are large language models (LLM) queried move by move. Others learn by reinforcement learning (RL) through self-play, and others still combine Monte Carlo (MC) search with neural networks. All of them were measured in tournaments with duplicate decks and paired setups, for a total of tens of thousands of rounds. The best are two agents that spend no tokens: Autodidatta, a neural network trained to imitate a search and then refined through self-play, and Ricerca, inspired by Pluribus. Compared with the heuristic baseline they gain about 20-21 points of margin per round, and they are statistically indistinguishable from each other. LLMs that know only the rulebook clearly beat the baseline (about +16-18 points), but remain below the best, and every move costs tokens.
Acronyms
| Acronym | Meaning |
|---|---|
| AI | Artificial Intelligence |
| CFR | Counterfactual Regret Minimization |
| CFR+ | variant of CFR with negative regrets reset to zero |
| CLI | Command Line Interface |
| G5, G5.1-G5.3, G6b | internal labels of the project’s tournaments |
| LLM | Large Language Model |
| MC | Monte Carlo; also the name of agent A8 |
| MCCFR | Monte Carlo Counterfactual Regret Minimization |
| MLP | Multilayer Perceptron, a multi-layer neural network |
| NIPS, NeurIPS | Neural Information Processing Systems (conference; NeurIPS since 2018) |
| PIMC | Perfect Information Monte Carlo |
| PPO | Proximal Policy Optimization; also the name of agent A7 |
| RL | Reinforcement Learning; also the name of agent A4 |
1.0 Purpose of the project
Can a general-purpose language model play a board game well after reading only its rulebook? And how does that ability compare with the classical artificial intelligence (AI) methods for games, which read nothing but accumulate experience by playing millions of moves against themselves? The project was built to answer these two questions with a concrete, measurable experiment instead of anecdotal impressions.
The goal stated in the specification is to verify feasibility: to build AI agents that play No Thanks!, each trained in a different way, and to have them play each other or a human being. The specification fixes two mandatory personalities. The first knows only the rulebook. The second is trained with positive reinforcement and uses the Claude Sonnet and Opus models. The other training methods were chosen during the work, with a precise criterion: to cover the main families of techniques for imperfect-information games, namely fixed rules, tabular reinforcement learning, counterfactual regret minimization (CFR), policy gradients (such as PPO, Proximal Policy Optimization), Monte Carlo search, and networks trained on a search.
The game is well suited to this. The rules fit on one page, so an LLM can receive them in full in the prompt. The decision space is minimal: on each turn there are only two moves. Yet the game contains the ingredients that make real games hard: hidden information, chance, several opponents, and a resource economy in which the value of a move depends on what the others will do. Finally, a project constraint requires that each agent sees only what a human player sitting at the table would see, never the opponents’ chips.

2.0 The rules of No Thanks!
No Thanks! is a card game by Thorsten Gimmler. Amigo Spiele first published it in Germany in 2004 under the title Geschenkt! [1, 2]. The rulebook used as reference is that of the English edition by Mayfair Games [1]. The game supports 3 to 7 players. The goal is to finish with the lowest score.
The deck contains 33 cards numbered from 3 to 35. At the start 9 of them are discarded face down, so that nobody sees them, and the remaining 24 form the draw deck. With 3-5 players each receives 11 chips, which are kept secret; the cards taken, on the other hand, are public. The first card of the deck is turned over and becomes the active card.
On their turn the player has only two options:
- pass: put one chip on the active card, and the turn goes to the player on the left. A player with no chips left cannot pass.
- take: take the active card together with all the chips accumulated on it, turn over a new card and decide again, that is, continue the turn.
The round ends when the last card is taken. Each card is worth its number in points, but a run of consecutive cards counts only for its lowest card. At the end each chip left in hand subtracts one point. The rulebook gives this example: with the cards 8, 13, 14, 15 and 17 one totals 8 + 13 + 17 = 38 points; with 13 chips in hand the score drops to 25 [1].
From these few rules a subtle strategic tension arises. Chips are the only defence against high cards, but every pass enriches the card for whoever takes it next. A card that extends one’s own run costs little or nothing: it is then worth letting it go around to “milk” chips from the opponents, at the risk that someone takes it first. Finally, the 9 discarded cards make it uncertain whether a gap in a run can ever be filled.
2.1 Adaptation for the test
The rulebook recommends playing four rounds and adding up the scores, but it explicitly also allows a single scoring round [1]. The project always adopts this second form: a game is a single round, in training, in the tournaments and in the webapp. It is always played with 4 players, 11 chips each, and without the official variants of the rulebook.
This choice has two consequences. The first is positive: every round is an independent unit of measurement, so the tournaments are simpler to design and analyse. The second is a limit: an agent optimized for a single round does not account for strategies tied to the cumulative score, such as taking more risks when behind. The results therefore hold for the single-round format and do not automatically extend to the full four-round game.
To compare the agents the project uses the margin: the average of the other three players’ scores minus one’s own score. A positive margin means having done better than the table average; since the player with the fewest points wins, the higher the margin, the better.

3.0 Types of agent
All agents share the same interface. They receive the player’s view: active card, chips on the card, the public cards of everyone, their own chips and the number of cards left. They also receive the list of legal moves. They return a move (take or pass) and a short rationale in Italian, which the webapp shows in the log. No agent sees the opponents’ chips. When a player has no chips, the only legal move is to take: all agents play it without reasoning, and the LLMs are not queried.
Agent names are those used in the project, in Italian: Regolamento (Rules), Rinforzo (Reinforcement), Esperto (Expert), Euristica (Heuristic), Ricerca (Search), Autodidatta (Self-taught), Casuale (Random). The table summarizes the twelve agents, identified by the labels A1 to A11 plus Casuale. The “Reference” column indicates the known work in the literature that inspired the agent, where one exists. The last column anticipates the result of the G6b tournament (section 5.2; the labels G5, G5.1-G5.3 and G6b denote the project’s tournaments): the mean difference in margin against Euristica on the same setups, with its standard error.
| ID | Name | Family | Reference | Training | Tokens in play | G6b: diff. vs Euristica |
|---|---|---|---|---|---|---|
| A1 | Regolamento | LLM (Sonnet) | — | none: only the rulebook in the prompt | yes | +15.68 ±3.66 (82 rounds) |
| A2 | Rinforzo | LLM (Opus) + Q-values | Reflexion (related) [16] | Q-values from self-play + lessons rewarded by the result | yes | +17.76 ±2.96 (69 rounds) |
| A3 | Esperto | LLM (Sonnet) | — | none: rulebook + expert strategy | yes | +13.16 ±6.12 (30 rounds) |
| A4 | RL | tabular reinforcement learning | Monte Carlo control [4]; Q-learning [3] | Monte Carlo in self-play | no | +11.57 ±2.09 |
| A5 | Euristica | fixed rule | — | none | no | 0 (reference) |
| A6 | CFR | regret minimization | CFR [5], MCCFR [6], CFR+ [7] | Monte Carlo CFR+ in self-play | no | +10.23 ±2.03 |
| A7 | PPO | policy gradient, neural network | PPO [8] | PPO against mixed opponents | no | +13.73 ±2.02 |
| A8 | MC | Monte Carlo search with determinization | PIMC [11] | none | no | +8.27 ±2.04 |
| A9 | Ricerca | CFR blueprint + search | Pluribus [13, 17] | none beyond A6 | no | +20.22 ±2.04 |
| A10 | Autodidatta | neural network + short search | AlphaGo Zero, AlphaZero [14, 15, 18] | imitation of A9’s search, then self-play at mixed tables | no | +21.52 ±2.05 |
| A11 | Haiku (discarded) | LLM (Haiku) advised by A10 | — | none | yes | +21.77 ±3.00 (133 rounds) |
| — | Casuale | random baseline | — | none | no | −89.69 ±2.45 |
3.1 Agent A1 — Regolamento
3.1.1 Agent logic
Regolamento is an LLM, Claude Sonnet, queried at every decision through the command line interface (CLI) claude -p. The system prompt contains a faithful summary of the rulebook in English, including the three tips of the official rulebook. The first: it is better to take a card with some chips than to run out of chips. The second: one can pass on a desired card to collect chips. The third: the 9 discarded cards make it uncertain whether gaps can be filled. At every move the prompt describes the visible state: active card, chips on it, cards left, one’s own chips and everyone’s cards. The model answers on one line with the move and a reason of at most 12 words.
It is the agent that answers the project’s central question most directly: it measures how much of the game a general-purpose language model already “knows” without any specific training.
3.1.2 Training method
None. The agent keeps no memory between moves or between rounds: every decision is an independent call, with the rulebook as its only knowledge of the game. If the call fails, for example because of a usage limit or a timeout, the agent retries once. If the answer remains missing or cannot be interpreted, in interactive use it falls back to take, which is always legal. In the tournaments, on the other hand, the failed round is discarded, so as not to attribute to the agent a move it did not choose (STRICT mode).
3.1.3 Cost
In a 30-round calibration, Regolamento made on average about 10.6 calls per round. It consumed about 11,300 input tokens and 2,400 output tokens per round. The equivalent cost estimated by the CLI is about 0.07 dollars per round. On the subscription plan used in the project each round cost about 0.12% of the Pro plan quota. In calibration a round took about one minute, almost all of it waiting for the answers.
3.2 Agent A2 — Rinforzo
3.2.1 Agent logic
Rinforzo is an LLM, Claude Opus, which receives two aids beyond the rulebook. The first is a numerical advisor: for the current state, the prompt reports the expected values of take and pass estimated by the RL agent (A4), expressed as expected final margin. The second is a memory of lessons: the system prompt contains the five lessons, written in previous rounds, that obtained the best results. The model decides by integrating the rulebook, the numerical estimate and the lessons.
3.2.2 Training method
Training has two phases, called cold and warm in the project. The cold phase is the self-play reinforcement learning of A4 (section 3.4), which the Q-values come from. The warm phase happens at the end of every round and proceeds in two steps:
- each lesson used in the round receives the margin obtained as its reward, which updates its average;
- Opus rereads the moves played, the rationales, the final cards and the scores, and writes one new concrete lesson of at most 25 words.
The file keeps the 20 lessons with the best average. The idea is related to Reflexion [16], in which a language agent improves through verbal reflections stored in memory instead of updating the model’s weights. Unlike Reflexion, here the lessons compete with each other and are selected on the basis of the result. An example of a learned lesson: “when a card extends your run and already carries many chips, take it right away: milking it too long gives the opponents the chance to block you”.
A limit to keep in mind: the reward of a lesson is the margin of the whole round. In No Thanks! this margin depends heavily on the deck, so a lesson used in few rounds may turn out “good” by luck.
3.2.3 Cost
It is the most expensive agent. In calibration it made on average about 11.2 calls per round, including the one that writes the lesson. It consumed about 16,200 input tokens and 1,900 output tokens per round. The equivalent cost estimated by the CLI is about 0.11 dollars per round, equal to about 0.19% of the Pro plan quota. Because it updates a shared memory file, in the tournaments it has to run in a single process, one round at a time: it was the bottleneck of the LLM tournaments (in calibration about 67 seconds of calls per round, without parallelism; the real time per round in G6b was not recorded).
3.3 Agent A3 — Esperto
3.3.1 Agent logic
Esperto is the same as Regolamento (Sonnet, same answer format), with a block of expert strategy added to the prompt. The strategy contains six rules:
- compute the net cost of a card: points added minus chips on it;
- give more value to chips when fewer than three are left;
- let high cards with few chips go around;
- milk the cards that extend only one’s own runs;
- do not hand useful cards to the opponents;
- at the end of the round give less weight to chips.
3.3.2 Training method
None: the strategic knowledge is handwritten in the prompt. The agent serves to find out whether explicit instructions improve an LLM that already knows the rulebook.
3.3.3 Cost
In calibration it made about 9.7 calls per round, with about 13,300 input tokens and 2,000 output tokens. The equivalent cost is about 0.05 dollars per round, equal to about 0.08% of the Pro plan. It consumes more input than Regolamento because the prompt is longer, but in total it costs less, because its answers are shorter.
3.4 Agent A4 — RL
3.4.1 Agent logic
RL consults a table of values. Every game state is reduced to four features:
- the net cost of the active card, limited to the range from −10 to 30;
- one’s own chips, up to 12;
- the phase of the round, in three bands;
- an indicator saying whether the card is adjacent to an opponent’s cards.
For each of these compressed states the table holds an estimate of the expected final margin if one takes and if one passes. The agent picks the move with the higher value. If one of the two values has never been estimated, it picks the known one or, if neither is known, picks at random.
3.4.2 Training method
The project calls the method Monte Carlo Q-learning. Technically it is tabular Monte Carlo control in self-play [4]. Unlike Watkins’ Q-learning [3], which updates the estimates using the estimate of the next state, here every estimate is moved toward the actual final margin of the round. During training four copies of the agent play each other, exploring with a random move 10% of the time (ε = 0.1). The update step is 1/n, with a minimum of 0.02, so the estimates keep adapting while the opponents change, since they are copies of the agent itself. The final table contains 2,924 states.
Training can be resumed from where it stopped, and the documented command runs 300,000 rounds per session. The total number of rounds accumulated across sessions is not recorded in the project files.
3.4.3 Cost
Zero tokens. In play the agent makes a single table lookup per move. The same table supplies the Q-values that Rinforzo (A2) receives in the prompt.
3.5 Agent A5 — Euristica
3.5.1 Agent logic
Euristica applies a single rule. It computes the net cost of the card: by how much its score would rise by taking it, minus the chips on it. It takes the card if the net cost is at most 2. When it has 3 chips or fewer left, the threshold rises to 8, because without chips one is forced to take worse cards. The rule captures the basic idea of the game but ignores the opponents, other players’ runs and the possibility of milking chips.
3.5.2 Training method
None: the thresholds are fixed and were tuned by hand. Euristica is the reference baseline of all the tournaments with LLMs.
3.5.3 Cost
Zero tokens, negligible computing cost.
3.6 Agent A6 — CFR
3.6.1 Agent logic
CFR plays a mixed strategy: for each state it does not choose a fixed move, but takes with a certain probability and passes with the complementary probability. The states are the same four features as A4, which here act as information sets: they group the situations that the player cannot tell apart. The randomness is deliberate. In imperfect-information games a deterministic strategy is predictable and therefore exploitable; a well-calibrated mixed strategy is less so.
3.6.2 Training method
The agent uses counterfactual regret minimization (CFR) [5]. The regret of a move measures how much would have been gained by always playing that move instead of the current strategy. CFR accumulates regrets in self-play and makes moves with positive regret more probable (regret matching). In two-player zero-sum games the average strategy converges to a Nash equilibrium [5]. The project uses two variants:
- Monte Carlo sampling (MCCFR) [6]: at every decision the move not played is evaluated with a single simulation of the rest of the round, on the same deck;
- CFR+ [7]: negative regrets are reset to zero, which generally speeds up convergence.
Two limits deserve attention. No Thanks! with four players is a multiplayer, non-zero-sum game: the theoretical convergence guarantees of CFR do not hold, and the resulting strategy should be regarded as a well-founded heuristic, not an equilibrium. Moreover the four-feature abstraction is coarse, and the strategy average is uniform, a simple choice marked in the code as improvable. The final table contains 2,828 information sets; the documented command runs 50,000 rounds per session.
3.6.3 Cost
Zero tokens. In play the agent makes one table lookup and one random draw. Its average strategy is also the basis of Ricerca (A9).
3.7 Agent A7 — PPO
3.7.1 Agent logic
PPO is a small neural network (MLP, Multilayer Perceptron, in the library’s default configuration). It receives a vector of 137 numbers: active card, chips on the card, own chips, cards left and net cost, plus one bit for each card of each player, in seat order starting from itself. From it, the network derives the probability of taking. In play the agent takes if the probability is at least 50%. Unlike A4 and A6, it sees the whole table and not a summary in four features.
3.7.2 Training method
Training uses Proximal Policy Optimization (PPO) [8], a policy-gradient method. PPO alternates between collecting experience and optimizing the policy, and limits the size of each update to keep learning stable. The implementation is that of Stable-Baselines3 [9], on a Gymnasium environment [10] that wraps the game engine. Each episode is a round. The opponents are drawn at every round among Euristica, RL, CFR and Casuale. The reward arrives only at the end of the round and is the margin. The documented command runs 1,000,000 steps.
It does not train against itself but against external opponents, and it is the only agent that met Casuale during training. This explains a notable trait of its performance in the tournaments: it is very good at exploiting it (section 5.1).
3.7.3 Cost
Zero tokens. Each move requires one forward pass of the network on the processor (CPU, Central Processing Unit). It requires the gymnasium, stable-baselines3 and torch libraries: it is the project’s only external dependency besides that of A10.
3.8 Agent A8 — MC
3.8.1 Agent logic
MC learns nothing in advance: it reasons at every move by simulation. It does not know the order of the deck, nor which cards were discarded, nor the opponents’ chips. For this reason it builds 32 possible worlds consistent with what it sees, with a procedure called determinization. In each world it shuffles the cards not yet seen at random and splits evenly among the opponents the chips it cannot see. Then it plays the round to the end, once by taking and once by passing. The simulated opponents are drawn among Euristica, RL and CFR. Finally it picks the move with the better average margin. The two moves are tried on the same worlds (common random numbers), so the difference between the two averages reflects the move and not the luck of the sample.
This approach is called Perfect Information Monte Carlo (PIMC). It works surprisingly well in many card games, but it has known flaws, in particular strategy fusion: in every simulated world the agent “knows” things that in reality it cannot know [11, 12, 20].
3.8.2 Training method
None. The code also provides an “extortion” tactic, that is, passing on one’s own run cards until the pot grows. Tests measured it as worse, so it is disabled.
3.8.3 Cost
Zero tokens, but high computing cost: about 64 complete simulations of the round for every decision. It is one of the slowest agents.
3.9 Agent A9 — Ricerca
3.9.1 Agent logic
Ricerca uses the same search as MC with two differences, inspired by Pluribus, the program that in 2019 beat human professionals at six-player Texas hold’em poker [13]:
- blueprint strategy: in the simulations the agent plays the average strategy of CFR (A6), not a heuristic;
- multiple opponents: each simulated opponent follows one of four policies, drawn at random: the blueprint strategy, a variant of it biased toward take (probability weighted ×5), one biased toward pass, or Euristica. In this way the search does not trust a single opponent model. Adding Euristica to the variants improved the results in a check on separate data.
The analogy with Pluribus is partial. Pluribus uses a depth-limited search in which the opponents choose among several continuation strategies at the leaves [13, 17]. Here, instead, every simulation runs to the end of the round and each opponent’s policy is drawn at random.
3.9.2 Training method
No training of its own: it reuses the table of A6.
3.9.3 Cost
Zero tokens, high computing cost like MC. It is the “teacher” from which Autodidatta (A10) learns.
3.10 Agent A10 — Autodidatta
3.10.1 Agent logic
Autodidatta replaces the long simulations of Ricerca with a neural network that estimates the value of the two moves. The state is encoded in 72 numbers: own cards, opponents’ cards, active card, pot, chips, cards left, net cost and adjacency. The network has two hidden layers, of 128 and 64 units, and returns the expected margin of take and of pass.
In play the agent does not rely on the network alone. It runs a short search in four steps:
- it generates 16 possible worlds for each move;
- it plays the move;
- it lets the simulated opponents respond until its own next turn;
- it evaluates the position reached with the network, or with the real score if the round is over.
Inference uses only numpy, with no heavy simulations to the end of the round.
3.10.2 Training method
Training proceeds in two phases.
Imitation of the search. Over 1,500 rounds at mixed tables, with seats assigned at random among Euristica, RL, CFR and Ricerca, Ricerca labels every decision with the estimated average margins for the two moves: about 180,000 states. The value is an estimate: the log records 170,590 states after 1,400 games out of 1,500 and does not report the final total. The network learns to reproduce them with a least-squares regression.
AlphaZero-style refinement. The network plays with the short search, against copies of itself and against Euristica, RL and CFR. The new labels produced by this search retrain the network. The new network replaces the previous one only if it beats it in a head-to-head comparison of 1,000 rounds.
- First iteration: the new network was promoted, with +1.34 points of margin.
- Second iteration: the new network was rejected (−0.42) and the cycle stopped.
On the validation data the network picks the same move as the labels in about 88% of cases.
The inspiration is the loop of AlphaGo Zero and AlphaZero, in which a network guides the search and the search produces the targets to improve the network [14, 15]. Here too the analogy is partial. There is no search tree and no policy head, only a value network with a sampled one-turn search. The rule “the new network replaces the old one only if it wins” was present in AlphaGo Zero, with a 55% win threshold [14], and was dropped in AlphaZero [15, 18].
A variant was also tried in which an unsupervised autoencoder compressed the state before the network: it obtained worse results and was discarded.
3.10.3 Cost
Zero tokens. In play the agent runs 32 brief one-turn simulations, evaluated by the network: far fewer than the 64 complete simulations of MC and Ricerca. Training requires torch and takes about 20 minutes to generate the data and about 2 minutes to train the network, according to the project’s estimates.
3.11 Agent A11 — Haiku (discarded)
3.11.1 Agent logic
Haiku is an LLM, Claude Haiku, which receives the advice of the Autodidatta network in the prompt. The hypothesis to test was whether a small, cheap language model could add judgement to an already strong network by correcting its errors.
3.11.2 Training method
None. The experiment (tournament G5.3) fixed a decision rule in advance: keep Haiku only if it beat Autodidatta by at least 2.6 points of margin. Out of 300 planned rounds, 133 were completed and 167 failed because the model did not respect the answer format. On the completed rounds, the difference from Autodidatta was −0.06 ±2.60 points, that is, no measurable gain. The agent was discarded and its code is not part of the project’s final version.
3.11.3 Cost
Haiku’s tokens per round are not reported in the project files. The cost was in any case above zero, whereas Autodidatta alone, which obtained the same result, spends no tokens.
3.12 Agent Casuale
3.12.1 Agent logic
Casuale chooses at random among the legal moves. It is not a credible opponent: it is a sanity check. Every agent that learns something must beat it, and the automatic tests of the learning and search modules verify this.
3.12.2 Training method
None.
3.12.3 Cost
Zero tokens, zero computing cost.

4.0 Webapp
The webapp lets you watch and play: you can watch four agents face each other or sit at the table with three of them. It is built to work without any external dependency. The server uses the http.server module of the Python standard library and answers only on the local machine (127.0.0.1:8765). The interface is a single HTML (HyperText Markup Language) page with JavaScript and no framework.
The server exposes a few operations:
- create a new game with four seats, at most one of them human;
- record the human move;
- have the agent whose turn it is play a move;
- return the current state.
The server checks that the seats are valid and that every request arrives on the right turn. At the end of the round it calls the end-of-game updates of the learning agents, so Rinforzo writes its lesson even after a game played in the webapp.
From the interface the user can:
- choose the agent for each seat, helped by descriptive cards that also show whether the agent consumes tokens;
- have the agents play automatically or one move at a time;
- play in person with the take and pass buttons (the latter appears only if it is legal);
- read the log of the latest moves, each with the agent’s short rationale;
- turn on “Show opponents’ chips”. The option shows the chips to the human only, for educational purposes. The agents still receive only their own view.
The labels are in Italian and English. The webapp handles one game at a time, a simplification suited to local use by a single user.
5.0 Validation tournament
Measuring the strength of an agent in a game with a strong chance component is harder than it seems. A single round depends enormously on the deck: a good player can lose through bad luck. For this reason the project uses three devices, taken from the practice of bridge tournaments [19] and from experimental statistics.
- Duplicate decks. In the zero-token tournament (G5) every deck is played four times, rotating the seats, so every agent plays the same cards from every position. The luck of the deal is compensated instead of accumulating.
- Paired setups. In the tournaments with LLMs (G5.1-G5.3 and G6b) round k always has the same seat, the same trio of opponents and the same deck for all the agents measured. The comparison with Euristica uses the paired difference: for each setup the difference between the agent’s margin and that of Euristica is computed, and then averaged. This removes much of the variance due to the deck.
- Separation threshold declared in advance. Two agents are considered different only if their difference is at least 2 standard errors. Otherwise they belong to the same group.
Strengths. The design is reproducible: every deck depends on a numerical seed. It is balanced: in G5 every agent meets every other the same number of times. It is honest about failures: rounds in which an LLM does not answer in the required format are not counted as valid moves. It is also economical: the rounds with LLMs are saved in a cache and an interruption does not force one to pay for them again. The decision rules, such as the threshold for keeping Haiku, were fixed before seeing the data.
Limits. The standard errors treat rounds as independent. In the duplicate format they are not entirely so: according to the report this choice makes the estimates slightly pessimistic. The opponents in the LLM tournaments are the project’s own zero-token agents. Some were trained against one another, so the ranking measures strength within this ecosystem, not against external opponents. When an agent also appears in the trio of opponents, it plays against a copy of itself: a small distortion, accepted. For the LLMs the rounds are few (from 30 to 133), so the standard errors are wide and do not separate agents that differ by only a few points. The models are called by alias (sonnet, opus, haiku), not by exact version, and a model update could change the results. Finally, everything holds for the single-round format.
5.1 Result of the zero-token tournament
The G5 tournament compares the eight agents that consume no tokens. There are 70 tables, that is, all the combinations of 4 different agents out of 8. Each table plays 100 decks, each in 4 rotations: in total 28,000 rounds, 14,000 per agent.
| # | Agent | Margin | Wins | Margin without Casuale | Wins without Casuale |
|---|---|---|---|---|---|
| 1 | Autodidatta | +20.38 ±0.22 | 36.3% | +8.76 ±0.27 | 35.8% |
| 2 | PPO | +18.09 ±0.27 | 39.7% | +0.99 ±0.32 | 28.9% |
| 3 | Ricerca | +15.40 ±0.21 | 26.2% | +5.50 ±0.26 | 29.8% |
| 4 | RL | +15.16 ±0.23 | 28.1% | +1.32 ±0.27 | 24.0% |
| 5 | MC | +13.58 ±0.23 | 24.9% | +0.10 ±0.27 | 22.7% |
| 6 | CFR | +10.60 ±0.23 | 21.8% | −1.39 ±0.27 | 22.4% |
| 7 | Euristica | +5.08 ±0.29 | 23.1% | −15.28 ±0.30 | 11.4% |
| 8 | Casuale | −98.29 ±0.28 | 0.0% | — | — |
The “wins” share indicates the rounds closed with the lowest score; at equal strength the expected share is 25%.
Autodidatta is first in both rankings and beats every other agent head to head. Without the tables with Casuale it beats Ricerca by 2.1 points, RL by 6.2, PPO by 8.8 and Euristica by 19.6. It is the most interesting result of the tournament: the student surpasses the teacher. A plausible explanation, not verified with a dedicated experiment, is that the network learned a smoother value estimate than the noisy search it imitated, and that the self-play refinement added the rest.
PPO’s second place in the overall ranking is largely an effect of Casuale. PPO is the only agent that met Casuale in training and it exploits it better than anyone. Without those tables its margin collapses to +0.99, on a par with RL and MC. The ranking without Casuale is therefore the more informative one.
The rest is in line with expectations. All the agents that learn or search clearly beat the fixed rule of Euristica. Ricerca beats MC: with the same search, the CFR blueprint strategy and the opponents modelled with several variants pay off. CFR finishes last among the learned agents, probably because of the coarse abstraction and the lack of theoretical guarantees outside two-player games. This remains a hypothesis.
5.2 Result of the token-spending AI players tournament
LLMs cost tokens at every move, so they cannot be made to play 28,000 rounds. For them a different format was used, with paired setups. In round k the measured agent sits at seat k mod 4, against one of the 20 trios formed from six zero-token agents: Euristica, RL, CFR, PPO, MC and Ricerca. The same setups are also played by Euristica, which serves as the paired reference.
In the first tournaments (G5.1-G5.3, from 30 to 60 rounds per LLM) all the LLMs beat Euristica by 13-21 points, but no pair of LLMs could be separated: the standard errors were ±3-6 points. The G6b tournament therefore put all the agents back on the same scale. It used 300 paired setups for the zero-token agents and up to 100 planned for the two main LLMs.
| Agent | Rounds | Diff. vs Euristica | Diff. vs Autodidatta | Wins |
|---|---|---|---|---|
| Haiku (A11, discarded) | 133 | +21.77 ±3.00 | −0.06 ±2.60 | 35% |
| Autodidatta | 300 | +21.52 ±2.05 | — | 41% |
| Ricerca | 300 | +20.22 ±2.04 | −1.30 ±1.80 | 35% |
| Rinforzo | 69 | +17.76 ±2.96 | −5.02 ±3.14 | 33% |
| Regolamento | 82 | +15.68 ±3.66 | −7.68 ±3.33 | 30% |
| PPO | 300 | +13.73 ±2.02 | −7.79 ±2.00 | 31% |
| Esperto | 30 | +13.16 ±6.12 | −5.91 ±5.75 | 30% |
| RL | 300 | +11.57 ±2.09 | −9.95 ±1.89 | 23% |
| CFR | 300 | +10.23 ±2.03 | −11.29 ±1.93 | 29% |
| MC | 300 | +8.27 ±2.04 | −13.25 ±1.94 | 20% |
| Euristica | 300 | — | −21.52 ±2.05 | 14% |
| Casuale | 300 | −89.69 ±2.45 | −111.21 ±2.43 | 0% |
Two LLMs are incomplete. For Regolamento 82 rounds out of 100 were completed and for Rinforzo 69 out of 100: 49 rounds failed because of the answer format, for a cause that was not verified. The project chose not to redo them, because they would not have changed the reading. Esperto and Haiku are reported but excluded from the final ranking: the first because of the few rounds, the second because it was discarded in G5.3.
With the two-standard-error threshold, the reading is this:
- At the top, indistinguishable from each other: Autodidatta and Ricerca (difference −1.30 ±1.80).
- The LLMs sit in the middle. Rinforzo (+17.76) is not statistically separable from any of the nearby agents (Autodidatta, Ricerca, Regolamento, PPO): few rounds and high variance. Regolamento (+15.68) is below Autodidatta and Ricerca by about 2.2-2.3 standard errors, but is not separable from PPO. Rinforzo and Regolamento are not distinguishable from each other.
- Behind Ricerca by 6-12 points (8-13 points relative to Autodidatta), in a single group: PPO, RL, CFR and MC. Within it only the PPO-MC pair separates.
Comparison with the zero-token agents. The most notable finding concerns Regolamento. A language model that knows only the rulebook, with no training on the game, does better than the baseline by about 16 points per round. In the point estimates it is above all the reinforcement learning and “simple” search agents (PPO, RL, CFR, MC); relative to PPO, the closest, the difference is not statistically separable. It remains, however, below the two best agents, which are also free to run.
Two results contradict expectations. The first: the handwritten expert strategy did not improve Esperto relative to Regolamento, at least over the 30 available rounds; the point estimates even go in the opposite direction. The second: the persistent learning of Rinforzo did not produce a visible gain. Already in G5.2 its difference at 60 rounds was +17.9 ±3.1, similar to that of Regolamento.
The Haiku case completes the picture. Adding an LLM to the advice of the best network added no strength: −0.06 ±2.60 relative to the network alone. It even introduced an operational problem, because more than half of the rounds failed because of the answer format.
Paired margin difference vs Euristica (G6b tournament)
Data table
| Agent | Type | Rounds | Diff. vs Euristica | SE |
|---|
6.0 Conclusions
The two strongest agents read no rulebook and spend no tokens: Autodidatta and Ricerca. They are tied at the top, with about 20-21 points of margin per round over the heuristic baseline. If one has to be named, the practical choice is Autodidatta. It is first in the 28,000-round zero-token tournament, beats every other agent head to head and obtains the best point estimate in the unified ranking. Moreover it plays with a fraction of the computation of Ricerca: brief simulations evaluated by a network, instead of dozens of complete simulations. Its strength comes from a combination, not from a single method. A Monte Carlo search supplies the examples, a neural network generalizes them and a self-play cycle with verification refines it. It is the same recipe, in miniature, that led to the results of AlphaZero.
The initial question, however, concerned language models, and the answer is more nuanced than a “yes” or a “no”. A general-purpose LLM that has read only the rulebook plays competently from the very first move: it clearly beats a sensible handwritten rule and sits in the upper band of the trained agents. This says a lot about the amount of strategic reasoning a language model brings with it. At the same time, the attempts to improve it from outside produced no measurable gains: the expert strategy in the prompt, the memory of lessons rewarded by the result, the pairing with the best network. Moreover every move has a cost in tokens, latency and reliability of the answer format.
Some questions remain open. With more rounds, would the two main LLMs really separate from each other and from the best? Would the picture change in the full four-round game, where the cumulative score matters? Would the best agents remain the best against opponents outside the ecosystem they were trained in? The project built the tools to answer: a verified engine, reproducible tournaments and a webapp. The most solid result, meanwhile, is also the most instructive. In a small but treacherous game, the combination of search and learning beats knowledge of the rulebook alone, and it does so without spending tokens.
7.0 Bibliography
- Gimmler, T. No Thanks! Rulebook, English edition. Mayfair Games / AMIGO Spiel + Freizeit GmbH, © 2004-2015 (file
mfg5715-rules-en.pdf, used locally and not distributed). - “No Thanks! (game)”. Wikipedia. https://en.wikipedia.org/wiki/No_Thanks!_(game)
- Watkins, C. J. C. H., & Dayan, P. (1992). Q-learning. Machine Learning, 8(3-4), 279-292. https://doi.org/10.1007/BF00992698
- Sutton, R. S., & Barto, A. G. (2018). Reinforcement Learning: An Introduction (2nd ed.). MIT Press.
- Zinkevich, M., Johanson, M., Bowling, M., & Piccione, C. (2007). Regret Minimization in Games with Incomplete Information. Advances in Neural Information Processing Systems 20 (NIPS 2007). https://proceedings.neurips.cc/paper/2007/hash/08d98638c6fcd194a4b1e6992063e944-Abstract.html
- Lanctot, M., Waugh, K., Zinkevich, M., & Bowling, M. (2009). Monte Carlo Sampling for Regret Minimization in Extensive Games. Advances in Neural Information Processing Systems 22 (NIPS 2009), 1078-1086. https://proceedings.neurips.cc/paper/2009/hash/00411460f7c92d2124a67ea0f4cb5f85-Abstract.html
- Tammelin, O. (2014). Solving Large Imperfect Information Games Using CFR+. arXiv:1407.5042. https://arxiv.org/abs/1407.5042
- Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Klimov, O. (2017). Proximal Policy Optimization Algorithms. arXiv:1707.06347. https://arxiv.org/abs/1707.06347
- Raffin, A., Hill, A., Gleave, A., Kanervisto, A., Ernestus, M., & Dormann, N. (2021). Stable-Baselines3: Reliable Reinforcement Learning Implementations. Journal of Machine Learning Research, 22(268), 1-8. https://jmlr.org/papers/v22/20-1364.html
- Towers, M., et al. (2024). Gymnasium: A Standard Interface for Reinforcement Learning Environments. arXiv:2407.17032v3. https://arxiv.org/abs/2407.17032v3 (v4, 2025, is titled “A Standardized Interface” and appeared at NeurIPS 2025, Datasets and Benchmarks Track).
- Long, J., Sturtevant, N., Buro, M., & Furtak, T. (2010). Understanding the Success of Perfect Information Monte Carlo Sampling in Game Tree Search. Proceedings of the AAAI Conference on Artificial Intelligence, 24(1), 134-140. https://ojs.aaai.org/index.php/AAAI/article/view/7562
- Cowling, P. I., Powley, E. J., & Whitehouse, D. (2012). Information Set Monte Carlo Tree Search. IEEE Transactions on Computational Intelligence and AI in Games, 4(2), 120-143. https://doi.org/10.1109/TCIAIG.2012.2200894
- Brown, N., & Sandholm, T. (2019). Superhuman AI for multiplayer poker. Science, 365(6456), 885-890. https://doi.org/10.1126/science.aay2400
- Silver, D., et al. (2017). Mastering the game of Go without human knowledge. Nature, 550, 354-359. https://doi.org/10.1038/nature24270
- Silver, D., et al. (2018). A general reinforcement learning algorithm that masters chess, shogi, and Go through self-play. Science, 362(6419), 1140-1144. https://doi.org/10.1126/science.aar6404
- Shinn, N., Cassano, F., Gopinath, A., Narasimhan, K., & Yao, S. (2023). Reflexion: Language Agents with Verbal Reinforcement Learning. Advances in Neural Information Processing Systems 36 (NeurIPS 2023). https://proceedings.neurips.cc/paper_files/paper/2023/hash/1b44b878bb782e6954cd888628510e90-Abstract.html (the arXiv version 2303.11366 also lists B. Labash and E. Berman).
- Brown, N., Sandholm, T., & Amos, B. (2018). Depth-Limited Solving for Imperfect-Information Games. Advances in Neural Information Processing Systems 31 (NeurIPS 2018). arXiv:1805.08195. https://arxiv.org/abs/1805.08195
- Silver, D., et al. (2017). Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm. arXiv:1712.01815. https://arxiv.org/abs/1712.01815
- “Duplicate bridge movements”. Wikipedia. https://en.wikipedia.org/wiki/Duplicate_bridge_movements
- Świechowski, M., Godlewski, K., Sawicki, B., & Mańdziuk, J. (2021). Monte Carlo Tree Search: A Review of Recent Modifications and Applications. Artificial Intelligence Review, 56(3), 2497-2562 (2023). https://doi.org/10.1007/s10462-022-10228-y (preprint arXiv:2103.04931)
Internal project sources: output/g5_report.md (G5 tournament), output/g51_report.md, output/g52_report.md and output/g53_report.md (G5.1-G5.3 tournaments), output/g6b_report.md (G6b unified ranking), output/calib.log (LLM calibration consumption), output/a10_gen.log and output/a10_az.log (A10 training), docs/contratto.md (decisions and outcomes), code in source/, fact-checking in docs/report/article_fact_checking.md.
Project available at: https://github.com/volpegiocosa-rgb/nothanks-ai