All posts

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.

PlayerWinsAs JaguarAs DogsCallsTokensCost (USD)Cost / game
claude-fable-51010/100/107011,415,924$35.1569$1.7578
gpt-5.6-sol1010/100/10702982,215$10.5754$0.5288
Total14032,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.

Replay of Fable playing as the Jaguar at 2x speed

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!