Examples
This section provides detailed examples of using Game Reasoning Arena for various scenarios.
Basic Examples
Simple Game Simulation
Here’s a basic example of running a Connect Four game:
from game_reasoning_arena.arena.envs.env_initializer import EnvInitializer
from game_reasoning_arena.arena.agents.random_agent import RandomAgent
from game_reasoning_arena.arena.agents.llm_agent import LLMAgent
# Initialize environment
env = EnvInitializer.create_env("connect_four")
# Create agents
agent1 = LLMAgent(name="LLM_Player", model="gpt-3.5-turbo")
agent2 = RandomAgent(name="Random_Player")
# Run simulation
result = env.simulate_game([agent1, agent2])
print(f"Winner: {result['winner']}")
Advanced Examples
Multi-Game Tournament
Running a tournament across multiple games:
import yaml
from game_reasoning_arena.scripts.simulate import run_simulation
# Load configuration
with open('multi_game_config.yaml', 'r') as f:
config = yaml.safe_load(f)
# Run tournament
results = run_simulation(config)
Custom Agent Development
Creating a custom agent:
from game_reasoning_arena.arena.agents.base_agent import BaseAgent
import random
class MyCustomAgent(BaseAgent):
def __init__(self, name="CustomAgent"):
super().__init__(name)
def get_action(self, state, legal_actions):
# Custom logic here
if len(legal_actions) > 0:
return random.choice(legal_actions)
return None
def reset(self):
pass
Research Examples
Analyzing Agent Behavior
from analysis.reasoning_analysis import LLMReasoningAnalyzer
# Analyze game logs
analyzer = LLMReasoningAnalyzer("results/merged_logs.csv")
# Categorize reasoning patterns
analyzer.categorize_reasoning()
# Generate visualizations
analyzer.compute_metrics(plot_dir="plots")
analyzer.plot_heatmaps_by_agent(output_dir="plots")
analyzer.plot_wordclouds_by_agent(output_dir="plots")
Batch Experiments
Running large-scale experiments:
# Using SLURM for distributed execution
sbatch slurm_jobs/run_simulation.sh
Configuration Examples
LLM vs LLM Configuration
game:
name: "kuhn_poker"
num_episodes: 100
max_turns: 50
agents:
- type: "llm"
name: "Player1"
model: "gpt-4"
temperature: 0.7
- type: "llm"
name: "Player2"
model: "claude-3-sonnet"
temperature: 0.5
backend:
provider: "litellm"
api_key: "${OPENAI_API_KEY}"
logging:
save_reasoning: true
output_dir: "experiments/llm_vs_llm"
Hybrid Agent Configuration
game:
name: "connect_four"
num_episodes: 50
agents:
- type: "llm"
name: "LLM_Player"
model: "gpt-3.5-turbo"
- type: "human"
name: "Human_Player"
interface:
mode: "gradio"
port: 7860