Inspiration
Most agent demos are one agent doing one task. I wanted agents reasoning about each other, with secrets. Avalon is the perfect test: Merlin knows who the traitors are, but if the Assassin spots him, Evil wins. Being right isn't enough. You have to be right quietly.
What it does
Five AI agents, each a random Arthurian character, play full games of The Resistance: Avalon. A replay viewer shows each agent's private reasoning next to what it says out loud, flags lies and key moments, and charts how often Merlin gets caught.
How we built it
A pure Python rules engine, checked against 1,000 random-bot games before any model call. Every player runs on Fetch.ai ASI:One through forced function calls with validation and fallbacks. The viewer is one static HTML/SVG file on GitHub Pages.
Challenges we ran into
With no Anthropic credits, we switched to ASI:One mid-hackathon and wrote an adapter. ASI's hidden reasoning cut off early answers; a bigger token budget and a JSON fallback cut format failures to 10 in 936 calls. Games took 15–50 min, so we ran them in parallel.
Accomplishments that we're proud of
Merlin survived only 3 of 13 assassinations, while a random Assassin misses him 75% of the time. He rejected 41 of 49 teams with an Evil player and 0 of 24 all-Good teams. In 2 of 3 Good wins, Percival drew the Assassin's shot as a decoy.
What we learned
LLMs are far better at deduction than concealment. Give an agent the answer and it acts on it every time, even when that loses the game. Evil found the counter on its own: let Good pass quests, then name the player whose votes were never wrong.
What's next for LLM Avalon Arena
Coach Merlin to vote like he doesn't know and measure whether he survives more. Pit models against each other, like ASI vs Claude as the Assassin. Run more games for tighter stats, and open a live table so anyone can deal a game.
Built With
- asi:one
- css3
- fetch.ai
- html5
- javascript
- matplotlib
- openai-api
- python
- svg
- web-speech-api
Log in or sign up for Devpost to join the conversation.