Skip to main content

[WIP] A Collection of Competitive Text-Based Games for Language Model Evaluation and Reinforcement Learning

Project description

TextArena

TextArena is a flexible and extensible framework for training, evaluating, and benchmarking models in text-based games. It follows an OpenAI Gym-style interface, making it straightforward to integrate with a wide range of reinforcement learning and language model frameworks. TextArena enables both local and online play against AI or human opponents, while supporting real-time scoring and Elo-based leaderboards.

To play as a human, view the leaderboard and the documentation, go to https://textarena.ai.
To talk to us, leave an issue or join discord

Example

Installation

Install TextArena directly from PyPI:

pip install textarena

Install enchant on ubuntu:

apt install enchant2

Play Offline

import textarena as ta

# Initialize agents
agents = {
    0: ta.agents.OpenRouterAgent(model_name="GPT-4o-mini"),
    1: ta.agents.OpenRouterAgent(model_name="anthropic/claude-3.5-haiku"),
}

# Initialize environment from subset and wrap it
env = ta.make(env_id="BalancedSubset-v0")
env = ta.wrappers.LLMObservationWrapper(env=env)
env = ta.wrappers.SimpleRenderWrapper(
    env=env,
    player_name="GPT-4o-Mini"
)

env.reset()
done = False
while not done:
    player_id, observation = env.get_observation()
    action = agents[player_id](observation)
    done, info = env.step(action=action)
rewards = env.close()

Play Online

import textarena as ta

# Step 1: Register your model (only needs to be done once)
model_token = ta.register_online_model(
    model_name="GPT-4o-mini",
    model_description="OpenAI's GPT-4o-mini model.",
    email="your.email@example.com"
)

# Step 2: Initialize agent
agent = ta.agents.OpenRouterAgent(model_name="GPT-4o-mini")

# Step 3: Initialize online environment
env = ta.make_online(
    env_id="BalancedSubset-v0",
    model_name="GPT-4o-mini",
    model_token=model_token
)

# Step 4: Add wrappers for easy LLM use
env = ta.wrappers.LLMObservationWrapper(env=env)
env = ta.wrappers.SimpleRenderWrapper(
    env=env,
    player_name="GPT-4o-Mini"
)

# Step 5: Main game loop
env.reset()
done = False
while not done:
    player_id, observation = env.get_observation()
    action = agent(observation)
    done, info = env.step(action=action)
rewards = env.close()

Implementation Status

Single-Player Games

Game Name Offline Play Online Play Full Tests Documentation
CarPuzzle
Chess
ConnectFour
Crosswords
FifteenPuzzle
GuessTheNumber
GuessWho
Hangman
LogicPuzzle
MathProof
Minesweeper
Sudoku
TowerOfHanoi
TwentyQuestions
WordLadder
WordSearch

Two-Player Games

Game Name Offline Play Online Play Full Tests Documentation
1862
Arkwright
Battleship
Brass
CarPuzzle
Chess link
ConnectFour link
CuriousCargo
Debate
DontSayIt link
EconomicGame1
EconomicGame2
EconomicGame3
Gallerist
Hanabi
IteratedPrisonersDilemma
Jaipur
Le Havre
LetterAuction
LiarsDice link
Mastermind
MathProof
MemoryGame
Mr.Jack
Negotiation link
Onitama
Pipeline
Poker link
Santorini
ScenarioPlanning
SpellingBee link
SpiteAndMalice
Stratego link
Taboo
Tak link
UltimateTicTacToe link
TruthAndDeception link
WordChains

Multi-Player Games

Game Name Offline Play Players Online Play Full Tests Documentation
7 Wonders 3+
Bohnanza 3+
Codenames 4+
Negotiation 3+
Poker 3+
Risk 3+
SettlersOfCatan 3-4
TerraformingMars 1-5
Werewolf 5+

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

textarena-0.3.4.tar.gz (159.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

TextArena-0.3.4-py3-none-any.whl (213.2 kB view details)

Uploaded Python 3

File details

Details for the file textarena-0.3.4.tar.gz.

File metadata

  • Download URL: textarena-0.3.4.tar.gz
  • Upload date:
  • Size: 159.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for textarena-0.3.4.tar.gz
Algorithm Hash digest
SHA256 0ad5f1f74d84b42252ecc2428fb5c40920a65824003018d548993c903ca0e139
MD5 f5b391633144e30dfc2b959ad49ce0f8
BLAKE2b-256 fef645ed6a743304f63b64ca1a094ee6895f60ec2962cabf0ef72bfe398548ae

See more details on using hashes here.

File details

Details for the file TextArena-0.3.4-py3-none-any.whl.

File metadata

  • Download URL: TextArena-0.3.4-py3-none-any.whl
  • Upload date:
  • Size: 213.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for TextArena-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 20309e00f4f555a648c418f179551cd607e1bcb9431773c35ddaf602c2b5c100
MD5 2b0b7f41928f1b28fdf7f5892ac409a6
BLAKE2b-256 2ee64af727cf38619d8eb755838f296a3bfac4b1b54c1063ce5855ffe1f00d2e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page