Competitive Pokémon is a demanding testbed for artificial intelligence: it combines the long decision horizons of board games with the hidden information, opponent modeling, and stochasticity of card games, all layered over an encyclopedic set of species, moves, abilities, and items. Recent work has explored two broad strategies for the game — guiding tree search with a large language model (LLM), and learning to play through model-free offline reinforcement learning — yet turn-by-turn LLM agents remain limited by token-heavy prompts, weak opponent modeling, and brittle hand-crafted heuristics. This thesis presents PolimiBot, an LLM-driven agent for Generation 9 OverUsed singles battles on Pokémon Showdown, together with a Bayesian Predictor that infers hidden opponent information from statistical models trained on roughly 140,000 historical Generation 9 OU teams. Both are designed as direct responses to concrete weaknesses of PokéChamp, the strongest existing LLM-based agent. PolimiBot encodes the current battle state exhaustively in structured blocks — grounding the LLM in exact turns-to-KO figures from a canonical damage calculator — and decomposes each decision into a three-prompt flow (move selection, switch selection, and a numerically anchored merger) rather than a single conflated call. The Bayesian Predictor fuses per-species replay frequencies with metagame usage statistics, models team composition with a latent-archetype topic model, and conditions its estimates on evidence observed during the battle, supplying the agent with a complete view of the opponent from the first turn. The two components are evaluated against a heuristic baseline (AbyssalPlayer) and the PokéChamp baseline across five teams of contrasting styles. PolimiBot wins 89% of games against the heuristic baseline and 68% against the LLM baseline, while reducing prompt size by 19% relative to PokéChamp. The predictor's confidence scores are shown to be well calibrated against accuracy, so that a high-confidence prediction holds roughly nine times in ten and can be relied on by the agent. Taken together, the results indicate that careful state encoding, numerical grounding, and calibrated opponent modeling let a scaffolded LLM agent outplay a strong LLM baseline; each gain, and its limitations, is discussed in relation to the specific weakness the design set out to address.

Il Pokémon competitivo costituisce un banco di prova impegnativo per l'intelligenza artificiale: combina i lunghi orizzonti decisionali dei giochi da tavolo con l'informazione nascosta, la modellazione dell'avversario e la stocasticità dei giochi di carte, il tutto sovrapposto a un vastissimo repertorio di specie, mosse, abilità e strumenti. Lavori recenti hanno esplorato due strategie principali per affrontare il gioco — guidare la ricerca ad albero tramite un modello linguistico di grandi dimensioni (LLM) e imparare a giocare mediante apprendimento per rinforzo offline e senza modello (model free) — ma gli agenti LLM che decidono turno per turno restano limitati da prompt molto onerosi in termini di token, da una debole modellazione dell'avversario e da euristiche fragili costruite manualmente. Questa tesi presenta PolimiBot, un agente guidato da un LLM per le battaglie singole nel formato Generazione 9 OverUsed su Pokémon Showdown, insieme a un Predittore Bayesiano che inferisce le informazioni nascoste dell'avversario a partire da modelli statistici addestrati su circa 140.000 squadre storiche di Generazione 9 OU. Entrambi sono progettati come risposte dirette a debolezze concrete di PokéChamp, il più avanzato agente basato su LLM esistente. PolimiBot codifica in modo esaustivo lo stato corrente della battaglia in blocchi strutturati — fornendo all'LLM i valori esatti del numero di turni necessari a mettere fuori combattimento un Pokémon, calcolati da un calcolatore di danni — e scompone ogni decisione in un flusso a tre prompt (selezione della mossa, selezione del cambio e una fusione guidata da valori numerici) anziché in un'unica chiamata indistinta. Il Predittore Bayesiano fonde le frequenze osservate nei replay, specifiche per ciascuna specie, con le statistiche d'uso del metagame, modella la composizione delle squadre tramite un topic model ad archetipi latenti e aggiorna le proprie stime in base alle informazioni osservate durante la battaglia, fornendo all'agente una visione completa dell'avversario fin dal primo turno. I due componenti sono valutati rispetto a un riferimento euristico (AbyssalPlayer) e a PokéChamp, su cinque squadre dagli stili molto diversi. PolimiBot vince l'89% delle partite contro il riferimento euristico e il 68% contro quello basato su LLM, riducendo al contempo del 19% la dimensione dei prompt rispetto a PokéChamp. Si dimostra inoltre che i punteggi di confidenza del predittore sono ben calibrati rispetto all'accuratezza, cosicché una predizione ad alta confidenza risulta corretta circa nove volte su dieci e l'agente può farvi pieno affidamento. Nel complesso, i risultati indicano che una codifica accurata dello stato, solide basi numeriche e una modellazione calibrata dell'avversario consentono a un agente LLM opportunamente strutturato di superare un solido riferimento basato su LLM; ciascun miglioramento, con i suoi limiti, viene discusso in relazione alla specifica debolezza a cui risponde.

An LLM-driven agent for competitive Pokémon battling with Bayesian opponent modeling

De Vito, Alessio
2025/2026

Abstract

Competitive Pokémon is a demanding testbed for artificial intelligence: it combines the long decision horizons of board games with the hidden information, opponent modeling, and stochasticity of card games, all layered over an encyclopedic set of species, moves, abilities, and items. Recent work has explored two broad strategies for the game — guiding tree search with a large language model (LLM), and learning to play through model-free offline reinforcement learning — yet turn-by-turn LLM agents remain limited by token-heavy prompts, weak opponent modeling, and brittle hand-crafted heuristics. This thesis presents PolimiBot, an LLM-driven agent for Generation 9 OverUsed singles battles on Pokémon Showdown, together with a Bayesian Predictor that infers hidden opponent information from statistical models trained on roughly 140,000 historical Generation 9 OU teams. Both are designed as direct responses to concrete weaknesses of PokéChamp, the strongest existing LLM-based agent. PolimiBot encodes the current battle state exhaustively in structured blocks — grounding the LLM in exact turns-to-KO figures from a canonical damage calculator — and decomposes each decision into a three-prompt flow (move selection, switch selection, and a numerically anchored merger) rather than a single conflated call. The Bayesian Predictor fuses per-species replay frequencies with metagame usage statistics, models team composition with a latent-archetype topic model, and conditions its estimates on evidence observed during the battle, supplying the agent with a complete view of the opponent from the first turn. The two components are evaluated against a heuristic baseline (AbyssalPlayer) and the PokéChamp baseline across five teams of contrasting styles. PolimiBot wins 89% of games against the heuristic baseline and 68% against the LLM baseline, while reducing prompt size by 19% relative to PokéChamp. The predictor's confidence scores are shown to be well calibrated against accuracy, so that a high-confidence prediction holds roughly nine times in ten and can be relied on by the agent. Taken together, the results indicate that careful state encoding, numerical grounding, and calibrated opponent modeling let a scaffolded LLM agent outplay a strong LLM baseline; each gain, and its limitations, is discussed in relation to the specific weakness the design set out to address.
ING - Scuola di Ingegneria Industriale e dell'Informazione
22-lug-2026
2025/2026
Il Pokémon competitivo costituisce un banco di prova impegnativo per l'intelligenza artificiale: combina i lunghi orizzonti decisionali dei giochi da tavolo con l'informazione nascosta, la modellazione dell'avversario e la stocasticità dei giochi di carte, il tutto sovrapposto a un vastissimo repertorio di specie, mosse, abilità e strumenti. Lavori recenti hanno esplorato due strategie principali per affrontare il gioco — guidare la ricerca ad albero tramite un modello linguistico di grandi dimensioni (LLM) e imparare a giocare mediante apprendimento per rinforzo offline e senza modello (model free) — ma gli agenti LLM che decidono turno per turno restano limitati da prompt molto onerosi in termini di token, da una debole modellazione dell'avversario e da euristiche fragili costruite manualmente. Questa tesi presenta PolimiBot, un agente guidato da un LLM per le battaglie singole nel formato Generazione 9 OverUsed su Pokémon Showdown, insieme a un Predittore Bayesiano che inferisce le informazioni nascoste dell'avversario a partire da modelli statistici addestrati su circa 140.000 squadre storiche di Generazione 9 OU. Entrambi sono progettati come risposte dirette a debolezze concrete di PokéChamp, il più avanzato agente basato su LLM esistente. PolimiBot codifica in modo esaustivo lo stato corrente della battaglia in blocchi strutturati — fornendo all'LLM i valori esatti del numero di turni necessari a mettere fuori combattimento un Pokémon, calcolati da un calcolatore di danni — e scompone ogni decisione in un flusso a tre prompt (selezione della mossa, selezione del cambio e una fusione guidata da valori numerici) anziché in un'unica chiamata indistinta. Il Predittore Bayesiano fonde le frequenze osservate nei replay, specifiche per ciascuna specie, con le statistiche d'uso del metagame, modella la composizione delle squadre tramite un topic model ad archetipi latenti e aggiorna le proprie stime in base alle informazioni osservate durante la battaglia, fornendo all'agente una visione completa dell'avversario fin dal primo turno. I due componenti sono valutati rispetto a un riferimento euristico (AbyssalPlayer) e a PokéChamp, su cinque squadre dagli stili molto diversi. PolimiBot vince l'89% delle partite contro il riferimento euristico e il 68% contro quello basato su LLM, riducendo al contempo del 19% la dimensione dei prompt rispetto a PokéChamp. Si dimostra inoltre che i punteggi di confidenza del predittore sono ben calibrati rispetto all'accuratezza, cosicché una predizione ad alta confidenza risulta corretta circa nove volte su dieci e l'agente può farvi pieno affidamento. Nel complesso, i risultati indicano che una codifica accurata dello stato, solide basi numeriche e una modellazione calibrata dell'avversario consentono a un agente LLM opportunamente strutturato di superare un solido riferimento basato su LLM; ciascun miglioramento, con i suoi limiti, viene discusso in relazione alla specifica debolezza a cui risponde.
File allegati
File Dimensione Formato  
executive_summary.pdf

accessibile in internet per tutti

Descrizione: executive summary
Dimensione 710.54 kB
Formato Adobe PDF
710.54 kB Adobe PDF Visualizza/Apri
Thesis.pdf

accessibile in internet per tutti

Descrizione: thesis
Dimensione 2.62 MB
Formato Adobe PDF
2.62 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/260605