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¶

ConfigurableMonopolyConfig

Configurable Monopoly configuration with dynamic LLM selection.

Functions¶

create_budget_monopoly_config(**kwargs)

Create a budget-friendly Monopoly configuration.

create_experimental_monopoly_config(**kwargs)

Create an experimental Monopoly configuration with mixed providers.

create_monopoly_config([player1_model, player2_model])

Create a configurable Monopoly configuration with simple model specifications.

create_monopoly_config_from_example(example_name, **kwargs)

Create a configurable Monopoly configuration from a predefined example.

create_monopoly_config_from_player_configs(...)

Create a configurable Monopoly configuration from detailed player configurations.

create_property_tycoon_monopoly_config(**kwargs)

Create a property tycoon-style Monopoly configuration.

create_real_estate_mogul_monopoly_config(**kwargs)

Create a real estate mogul-style Monopoly configuration with powerful models.

get_example_config(name)

Get a predefined example configuration by name.

list_example_configurations()

List all available example configurations.

Module Contents¶

class 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

games.monopoly.configurable_config.create_budget_monopoly_config(**kwargs)¶

Create a budget-friendly Monopoly configuration.

Return type:

ConfigurableMonopolyConfig

games.monopoly.configurable_config.create_experimental_monopoly_config(**kwargs)¶

Create an experimental Monopoly configuration with mixed providers.

Return type:

ConfigurableMonopolyConfig

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:
  • player1_model (str) – Model for player 1 and analyzer

  • player2_model (str) – Model for player 2 and analyzer

  • **kwargs – Additional configuration parameters

Returns:

Configured Monopoly game

Return type:

ConfigurableMonopolyConfig

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
... )
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:

ConfigurableMonopolyConfig

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)
games.monopoly.configurable_config.create_monopoly_config_from_player_configs(player_configs, **kwargs)¶

Create a configurable Monopoly configuration from detailed player configurations.

Parameters:
Returns:

Configured Monopoly game

Return type:

ConfigurableMonopolyConfig

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)
games.monopoly.configurable_config.create_property_tycoon_monopoly_config(**kwargs)¶

Create a property tycoon-style Monopoly configuration.

Return type:

ConfigurableMonopolyConfig

games.monopoly.configurable_config.create_real_estate_mogul_monopoly_config(**kwargs)¶

Create a real estate mogul-style Monopoly configuration with powerful models.

Return type:

ConfigurableMonopolyConfig

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:

ConfigurableMonopolyConfig

Raises:

ValueError – If the example name is not found

games.monopoly.configurable_config.list_example_configurations()¶

List all available example configurations.

Returns:

Mapping of configuration names to descriptions

Return type:

Dict[str, str]