name: textarena description: Suite de jeux textuels pour l'entraînement et l'évaluation d'LLM (TextArena). Plus de 100 jeux en solo, deux joueurs et multijoueurs avec une interface de style OpenAI Gym. Conçu pour les benchmarks, l'auto-jeu, l'RL multi-agent et l'évaluation d'LLM axée sur le raisonnement. À utiliser pour les environnements de jeux textuels, l'RL en auto-jeu, l'évaluation du raisonnement stratégique et les tournois agent-vs-agent. license: MIT license tags: [text-games, self-play-rl, llm-benchmarking, strategic-reasoning, textarena] metadata: skill-author: K-Dense Inc. -------|--------------------| | RL en auto-jeu pour LLMs | Jeux multitours compétitifs/coopératifs | | Évaluation du raisonnement stratégique | Les jeux demandent de la planification, du bluff, de la mémoire, de l'adaptation | | Recherche en théorie de l'esprit | Interactions multi-agent avec état caché | | Benchmarking en tournoi | API d'environnement standardisée sur plusieurs jeux | | Évaluation de modèle de récompense / politique | Notation de jeu basée sur les résultats |
5. Exemple : Agent aléatoire / heuristique
import textarena as ta
class SimpleAgent:
def __call__(self, observation: str) -> str:
# Replace with parsing + strategy
return "default_action"
agents = {0: SimpleAgent(), 1: SimpleAgent()}
env = ta.make(env_id="TicTacToe-v0")
env.reset(num_players=2)
done = False
while not done:
player_id, observation = env.get_observation()
action = agents[player_id](observation)
done, step_info = env.step(action)
rewards, game_info = env.close()
print(rewards, game_info)
6. Boucle de tournoi
import textarena as ta
def play_match(agent_a, agent_b, env_id="TicTacToe-v0"):
env = ta.make(env_id=env_id)
agents = {0: agent_a, 1: agent_b}
env.reset(num_players=2)
done = False
while not done:
pid, obs = env.get_observation()
action = agents[pid](obs)
done, _ = env.step(action)
rewards, info = env.close()
return rewards, info
# Round-robin tournament
results = []
for i, a in enumerate(agent_pool):
for j, b in enumerate(agent_pool):
if i >= j:
continue
rewards, info = play_match(a, b)
results.append((i, j, rewards, info))
7. Modèle RL en auto-jeu
# Pseudocode for policy optimization with self-play
for episode in range(num_episodes):
env.reset(num_players=2)
trajectories = {0: [], 1: []}
done = False
while not done:
pid, obs = env.get_observation()
action, logprob, value = policy.sample(obs)
done, info = env.step(action)
trajectories[pid].append((obs, action, logprob, value))
rewards, game_info = env.close()
update_policy(trajectories, rewards)
Utile pour l'entraînement de style PPO/GRPO/RFT où l'environnement est entièrement linguistique.
8. Types de jeux
TextArena inclut des jeux en solo, deux joueurs et multijoueurs. Les familles typiques incluent :
- raisonnement de type jeu de plateau
- jeux à information cachée
- jeux de négociation / dialogue
- tâches de planification / puzzle
- jeux sociaux et théorie de l'esprit
Utilisez le catalogue d'environnements du repo pour sélectionner les jeux selon votre cible de capacité.
9. Recommandations de benchmarking
- Suivez le taux de victoire, le taux de match nul et la récompense moyenne.
- Évaluez contre plusieurs adversaires, pas un seul baseline fixe.
- Utilisez les mêmes wrappers de prompt et règles de parsing pour tous les agents afin d'assurer l'équité.
- Enregistrez les observations/actions par tour pour l'analyse des défaillances.
- Mélangez jeux faciles et difficiles pour séparer le suivi de syntaxe de la vraie stratégie.
10. Guide de conception d'environnement
Lors de la conception de vos propres environnements de RL textuel :
- maintenez le format d'observation stable
- rendez la grammaire d'action valide explicite
- exposez clairement les récompenses de fin de jeu
- n'incluez l'information cachée que si le benchmark l'exige
- testez d'abord avec un baseline stupide pour valider les transitions
Modèles clés
- L'observation/action est texte uniquement — parfait pour l'RL natif LLM.
- L'auto-jeu est le paradigme central pour de nombreuses expériences TextArena.
- Benchmarkez contre des adversaires diversifiés pour éviter le surapprentissage sur un seul style.
- Les journaux de tour sont importants — inspectez les traces complètes de jeu, pas seulement le taux de victoire.
- Utilisez les jeux stratégiques pour l'évaluation du raisonnement, pas seulement le suivi d'instructions.