haive.games.mancala.configurable_config¶

Configurable Mancala configuration using the generic player agent system.

This module provides configurable Mancala game configurations that replace hardcoded LLM settings with dynamic, configurable player agents.

Classes¶

ConfigurableMancalaConfig

Configurable Mancala configuration with dynamic LLM selection.

Functions¶

create_advanced_mancala_config(**kwargs)

Create an advanced Mancala configuration with powerful models.

create_budget_mancala_config(**kwargs)

Create a budget-friendly Mancala configuration.

create_experimental_mancala_config(**kwargs)

Create an experimental Mancala configuration with mixed providers.

create_mancala_config([player1_model, player2_model])

Create a configurable Mancala configuration with simple model specifications.

create_mancala_config_from_example(example_name, **kwargs)

Create a configurable Mancala configuration from a predefined example.

create_mancala_config_from_player_configs(...)

Create a configurable Mancala configuration from detailed player configurations.

get_example_config(name)

Get a predefined example configuration by name.

list_example_configurations()

List all available example configurations.

Module Contents¶

class haive.games.mancala.configurable_config.ConfigurableMancalaConfig¶

Bases: haive.games.mancala.config.MancalaConfig

Configurable Mancala configuration with dynamic LLM selection.

This configuration allows users to specify different LLMs for different roles in the Mancala game, providing flexibility and avoiding hardcoded models.

player1_model¶

Model for player1 (can be string or LLMConfig)

player2_model¶

Model for player2 (can be string or LLMConfig)

player1_name¶

Name for player1

player2_name¶

Name for player2

example_config¶

Optional example configuration name

player_configs¶

Optional detailed player configurations

temperature¶

Temperature for LLM generation

enable_analysis¶

Whether to enable strategic analysis

visualize_game¶

Whether to visualize game state

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.mancala.configurable_config.create_advanced_mancala_config(**kwargs)¶

Create an advanced Mancala configuration with powerful models.

Return type:

ConfigurableMancalaConfig

haive.games.mancala.configurable_config.create_budget_mancala_config(**kwargs)¶

Create a budget-friendly Mancala configuration.

Return type:

ConfigurableMancalaConfig

haive.games.mancala.configurable_config.create_experimental_mancala_config(**kwargs)¶

Create an experimental Mancala configuration with mixed providers.

Return type:

ConfigurableMancalaConfig

haive.games.mancala.configurable_config.create_mancala_config(player1_model='gpt-4o', player2_model='claude-3-5-sonnet-20240620', **kwargs)¶

Create a configurable Mancala configuration with simple model specifications.

Parameters:
  • player1_model (str) – Model for player1 and analyzer

  • player2_model (str) – Model for player2 and analyzer

  • **kwargs – Additional configuration parameters

Returns:

Configured Mancala game

Return type:

ConfigurableMancalaConfig

Examples

>>> config = create_mancala_config("gpt-4o", "claude-3-opus", temperature=0.5)
>>> config = create_mancala_config(
...     "openai:gpt-4o",
...     "anthropic:claude-3-5-sonnet-20240620",
...     enable_analysis=True
... )
haive.games.mancala.configurable_config.create_mancala_config_from_example(example_name, **kwargs)¶

Create a configurable Mancala configuration from a predefined example.

Parameters:
  • example_name (str) – Name of the example configuration

  • **kwargs – Additional configuration parameters to override

Returns:

Configured Mancala game

Return type:

ConfigurableMancalaConfig

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

  • “advanced”: High-powered models for strategic gameplay

Examples

>>> config = create_mancala_config_from_example("budget", enable_analysis=False)
>>> config = create_mancala_config_from_example("advanced", visualize_game=True)
haive.games.mancala.configurable_config.create_mancala_config_from_player_configs(player_configs, **kwargs)¶

Create a configurable Mancala configuration from detailed player configurations.

Parameters:
Returns:

Configured Mancala game

Return type:

ConfigurableMancalaConfig

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="Strategic Mancala Player"
...     ),
...     "player2_player": PlayerAgentConfig(
...         llm_config="claude-3-opus",
...         temperature=0.3,
...         player_name="Tactical Mancala Expert"
...     ),
...     "player1_analyzer": PlayerAgentConfig(
...         llm_config="gpt-4o",
...         temperature=0.2,
...         player_name="Mancala Strategist"
...     ),
...     "player2_analyzer": PlayerAgentConfig(
...         llm_config="claude-3-opus",
...         temperature=0.2,
...         player_name="Mancala Analyst"
...     ),
... }
>>> config = create_mancala_config_from_player_configs(player_configs)
haive.games.mancala.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:

ConfigurableMancalaConfig

Raises:

ValueError – If the example name is not found

haive.games.mancala.configurable_config.list_example_configurations()¶

List all available example configurations.

Returns:

Mapping of configuration names to descriptions

Return type:

Dict[str, str]