haive.games.monopoly.configurable_config¶
Configurable Monopoly configuration using the generic player agent system.
This module provides configurable Monopoly game configurations that replace hardcoded LLM settings with dynamic, configurable player agents.
Classes¶
Configurable Monopoly configuration with dynamic LLM selection. |
Functions¶
|
Create a budget-friendly Monopoly configuration. |
|
Create an experimental Monopoly configuration with mixed providers. |
|
Create a configurable Monopoly configuration with simple model specifications. |
|
Create a configurable Monopoly configuration from a predefined example. |
Create a configurable Monopoly configuration from detailed player configurations. |
|
|
Create a property tycoon-style Monopoly configuration. |
|
Create a real estate mogul-style Monopoly configuration with powerful models. |
|
Get a predefined example configuration by name. |
List all available example configurations. |
Module Contents¶
- class haive.games.monopoly.configurable_config.ConfigurableMonopolyConfig¶
Bases:
haive.games.monopoly.config.MonopolyGameAgentConfig
Configurable Monopoly configuration with dynamic LLM selection.
This configuration allows users to specify different LLMs for different roles in the Monopoly game, providing flexibility and avoiding hardcoded models.
- player1_model¶
Model for player 1 (can be string or LLMConfig)
- player2_model¶
Model for player 2 (can be string or LLMConfig)
- player1_name¶
Name for player 1
- player2_name¶
Name for player 2
- example_config¶
Optional example configuration name
- player_configs¶
Optional detailed player configurations
- temperature¶
Temperature for LLM generation
- enable_analysis¶
Whether to enable strategic analysis
- enable_trading¶
Whether to enable property trading
- enable_building¶
Whether to enable house/hotel building
- recursion_limit¶
Python recursion limit for game execution
- model_post_init(__context)¶
Initialize engines after model creation.
- Parameters:
__context (Any)
- Return type:
None
- haive.games.monopoly.configurable_config.create_budget_monopoly_config(**kwargs)¶
Create a budget-friendly Monopoly configuration.
- Return type:
- haive.games.monopoly.configurable_config.create_experimental_monopoly_config(**kwargs)¶
Create an experimental Monopoly configuration with mixed providers.
- Return type:
- haive.games.monopoly.configurable_config.create_monopoly_config(player1_model='gpt-4o', player2_model='claude-3-5-sonnet-20240620', **kwargs)¶
Create a configurable Monopoly configuration with simple model specifications.
- Parameters:
- Returns:
Configured Monopoly game
- Return type:
Examples
>>> config = create_monopoly_config("gpt-4o", "claude-3-opus", temperature=0.5) >>> config = create_monopoly_config( ... "openai:gpt-4o", ... "anthropic:claude-3-5-sonnet-20240620", ... enable_trading=True ... )
- haive.games.monopoly.configurable_config.create_monopoly_config_from_example(example_name, **kwargs)¶
Create a configurable Monopoly configuration from a predefined example.
- Parameters:
example_name (str) – Name of the example configuration
**kwargs – Additional configuration parameters to override
- Returns:
Configured Monopoly game
- Return type:
- Available examples:
“gpt_vs_claude”: GPT vs Claude
“gpt_only”: GPT for both players
“claude_only”: Claude for both players
“budget”: Cost-effective models
“mixed”: Different provider per role
“real_estate_moguls”: High-powered models for strategic gameplay
“property_tycoons”: Specialized for property investment
Examples
>>> config = create_monopoly_config_from_example("budget", enable_trading=False) >>> config = create_monopoly_config_from_example("real_estate_moguls", enable_building=True)
- haive.games.monopoly.configurable_config.create_monopoly_config_from_player_configs(player_configs, **kwargs)¶
Create a configurable Monopoly configuration from detailed player configurations.
- Parameters:
player_configs (dict[str, haive.games.core.agent.player_agent.PlayerAgentConfig]) – Dictionary mapping role names to player configurations
**kwargs – Additional configuration parameters
- Returns:
Configured Monopoly game
- Return type:
- Expected roles:
“player1_player”: Player 1 configuration
“player2_player”: Player 2 configuration
“player1_analyzer”: Player 1 analyzer configuration
“player2_analyzer”: Player 2 analyzer configuration
Examples
>>> player_configs = { ... "player1_player": PlayerAgentConfig( ... llm_config="gpt-4o", ... temperature=0.7, ... player_name="Property Mogul" ... ), ... "player2_player": PlayerAgentConfig( ... llm_config="claude-3-opus", ... temperature=0.3, ... player_name="Real Estate Tycoon" ... ), ... "player1_analyzer": PlayerAgentConfig( ... llm_config="gpt-4o", ... temperature=0.2, ... player_name="Investment Strategist" ... ), ... "player2_analyzer": PlayerAgentConfig( ... llm_config="claude-3-opus", ... temperature=0.2, ... player_name="Market Analyst" ... ), ... } >>> config = create_monopoly_config_from_player_configs(player_configs)
- haive.games.monopoly.configurable_config.create_property_tycoon_monopoly_config(**kwargs)¶
Create a property tycoon-style Monopoly configuration.
- Return type:
- haive.games.monopoly.configurable_config.create_real_estate_mogul_monopoly_config(**kwargs)¶
Create a real estate mogul-style Monopoly configuration with powerful models.
- Return type:
- haive.games.monopoly.configurable_config.get_example_config(name)¶
Get a predefined example configuration by name.
- Parameters:
name (str) – Name of the example configuration
- Returns:
The example configuration
- Return type:
- Raises:
ValueError – If the example name is not found