August 2026
Fable vs Sol
This is a continuation of last month's blog post. Before training a custom model to play Jogo Da Onça, I wanted to take a small detour to find out how good the current frontier models are at playing the game against each other and which model would be the best.
To answer those questions, I had to to make the game easier and more efficient to play for the models. Playing via API seemed like the simplest and elegant solution.
Next, I implemented an adapter that communicates with the existing Django REST/WebSocket interfaces. Finally, I used Pi to run the adapter on the CLI.
python universal_agent.py --provider pi --player-id claude-fable-5 --model anthropic/claude-fable-5
python universal_agent.py --provider pi --player-id gpt-5.6-sol --model openai/gpt-5.6-sol
While I know I could have done this without using Pi (Pi is for coding after all), I opted for speed and convenience. With Pi, I was able to use both OpenAI and Antropic with my existing authentication, I didn’t have to write any provider-specific SDK code, and I got the dollar cost for the experiment. Ok, justification over.
The experiment was as follows: 10 games of Fable as Jaguar vs GPT 5.6 Sol as Dogs and vice versa. The results were not exciting to say the least.
| Player | Wins | As Jaguar | As Dogs | Calls | Tokens | Cost (USD) | Cost / game |
|---|---|---|---|---|---|---|---|
| claude-fable-5 | 10 | 10/10 | 0/10 | 701 | 1,415,924 | $35.1569 | $1.7578 |
| gpt-5.6-sol | 10 | 10/10 | 0/10 | 702 | 982,215 | $10.5754 | $0.5288 |
| Total | — | — | — | 1403 | 2,398,139 | $45.7323 | $2.2866 |
Both models failed to win a single game as Dogs. The adapter saved all the game moves as JSON files so they can be replayed on the web app. Below is a replay of one of the games. In this game Fable was the Jaguar.
Because the models were not specialized for Jogo da Onça, they could not grasp the level of co-ordination required to play and win as Dogs.
So, what did I learn? Tokens are expensive!