All games in scripts/play_game.py are configured using OmegaConf. Each game has its configuration file at ./src/agent_client/configs/{game}/config.yaml. Configurations are categorized into three main sections: runner, env, and agent.
Controls the evaluation loop behavior.
| Parameter | Description | Type | Required | Default |
|---|---|---|---|---|
max_steps |
Maximum number of game steps for evaluation | int | Yes | - |
Example:
runner:
max_steps: 50Game-specific settings and task definitions.
| Parameter | Description | Type | Required | Default |
|---|---|---|---|---|
task |
Description of the task to be completed | string | Yes | - |
action_mode |
How agent interacts with the game:"semantic" or "gui" |
string | Yes | "semantic" |
log_path |
Path where logs are saved (auto-generated from top-level log_path) |
string | Auto | - |
Only needed for games using GUI interaction (e.g., Angry Birds, PVZ, Metro).
| Parameter | Description | Type | When Needed | Default |
|---|---|---|---|---|
window_title |
Game window title for capture (supports regex) | string | GUI mode | Game-specific |
coor_trans |
Enable coordinate transformation (1000×1000 → actual resolution) | bool | GUI with VL models | false |
Common GUI timing parameters:
screenshot_interval: Time between screenshots (seconds)wait_after_action: Wait time after executing actions (seconds)timeout: Maximum time before giving up (seconds)
Each game may have unique parameters:
- Slay the Spire:
player_class,ascension_level,seed,mod_input_path,mod_output_path - Snake:
board_size,num_obstacles,game_mode("discrete"or"realtime") - TwentyFourtyEight:
target_tile,show_graphic - Angry Birds:
slingshot_pos_x,slingshot_pos_y,slingshot_pull_ratio - PVZ:
grid_rows,grid_cols,plant_slot_width
Example:
env:
task: "Slay the Spire"
action_mode: "semantic"
player_class: "IRONCLAD"
ascension_level: 0
seed: 0LLM and agent behavior settings.
| Parameter | Description | Type | Required | Default |
|---|---|---|---|---|
llm_name |
LLM model name | string | Yes | - |
agent_type |
Agent type to use | string | Yes | "zeroshot_agent" |
prompt_path |
Python module path to prompt | string | Yes | - |
Supported LLM models:
- OpenAI:
gpt-4o,gpt-4o-mini - Google:
gemini-2.5-flash,gemini-2.5-pro - Qwen:
qwen3-vl-8b-instruct,qwen3-vl-32b-instruct - Seed:
doubao-seed-1-8-251228
Supported agent types:
zeroshot_agent: Direct task completion without memorymemory_agent: Uses long-term memory and skill management
For commercial APIs or self-hosted models:
| Parameter | Description | Type | Required | Default |
|---|---|---|---|---|
api_key |
API key for authentication | string | API-based | "" |
api_base_url |
Base URL for API endpoint | string | Self-hosted | "" |
temperature |
Sampling temperature | float | No | 0.0 |
repetition_penalty |
Repetition penalty | float | No | 1.0 |
Example:
agent:
llm_name: gpt-4o
temperature: 0.0
agent_type: zeroshot_agent
prompt_path: agent_servers.slay_the_spire.prompts.semantic.zeroshot_agent| Parameter | Description | Type | Default |
|---|---|---|---|
long_term_memory_len |
Number of recent memories to retrieve | int | 10 |
embedding_model |
Embedding model:"openai" or "qwen" |
string | "openai" |
embedding_config |
Additional embedding configuration | dict | {} |
Example:
agent:
agent_type: memory_agent
long_term_memory_len: 10
embedding_model: "qwen"
embedding_config:
model: "text-embedding-v4"
dimensions: 1024| Parameter | Description | Type | Default |
|---|---|---|---|
use_reflection |
Enable video reflection experience | bool | false |
reflection_format |
Reflection file format:"json" or "txt" |
string | "json" |
reflection_file_path |
Path to reflection file | string | Auto-generated |
Example:
agent:
use_reflection: true
reflection_format: "json"
reflection_file_path: "data/reflections/Snake_reflections.json"| Parameter | Description | Type | Default |
|---|---|---|---|
debug_mode |
Enable debug logging | bool | false |