haive.games.hold_em.configurable_config¶

Configurable Hold’em configuration using the generic player agent system.

This module provides configurable Texas Hold’em game configurations that replace hardcoded LLM settings with dynamic, configurable player agents.

Classes¶

ConfigurableHoldemConfig

Configurable Hold'em configuration with dynamic LLM selection.

Functions¶

create_budget_holdem_config(**kwargs)

Create a budget-friendly Hold'em configuration.

create_experimental_holdem_config(**kwargs)

Create an experimental Hold'em configuration with mixed providers.

create_heads_up_holdem_config(**kwargs)

Create a heads-up specialized Hold'em configuration.

create_holdem_config([player1_model, player2_model])

Create a configurable Hold'em configuration with simple model specifications.

create_holdem_config_from_example(example_name, **kwargs)

Create a configurable Hold'em configuration from a predefined example.

create_holdem_config_from_player_configs(...)

Create a configurable Hold'em configuration from detailed player configurations.

create_poker_pro_holdem_config(**kwargs)

Create a poker professional-style Hold'em 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 haive.games.hold_em.configurable_config.ConfigurableHoldemConfig¶

Bases: haive.games.hold_em.config.HoldemGameAgentConfig

Configurable Hold’em configuration with dynamic LLM selection.

This configuration allows users to specify different LLMs for different roles in the Texas Hold’em 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

heads_up_mode¶

Whether this is heads-up play

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.hold_em.configurable_config.create_budget_holdem_config(**kwargs)¶

Create a budget-friendly Hold’em configuration.

Return type:

ConfigurableHoldemConfig

haive.games.hold_em.configurable_config.create_experimental_holdem_config(**kwargs)¶

Create an experimental Hold’em configuration with mixed providers.

Return type:

ConfigurableHoldemConfig

haive.games.hold_em.configurable_config.create_heads_up_holdem_config(**kwargs)¶

Create a heads-up specialized Hold’em configuration.

Return type:

ConfigurableHoldemConfig

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

Create a configurable Hold’em 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 Hold’em game

Return type:

ConfigurableHoldemConfig

Examples

>>> config = create_holdem_config("gpt-4o", "claude-3-opus", temperature=0.5)
>>> config = create_holdem_config(
...     "openai:gpt-4o",
...     "anthropic:claude-3-5-sonnet-20240620",
...     heads_up_mode=True
... )
haive.games.hold_em.configurable_config.create_holdem_config_from_example(example_name, **kwargs)¶

Create a configurable Hold’em configuration from a predefined example.

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

  • **kwargs – Additional configuration parameters to override

Returns:

Configured Hold’em game

Return type:

ConfigurableHoldemConfig

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

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

  • “heads_up”: Specialized for heads-up play

Examples

>>> config = create_holdem_config_from_example("budget", temperature=0.3)
>>> config = create_holdem_config_from_example("poker_pros", heads_up_mode=True)
haive.games.hold_em.configurable_config.create_holdem_config_from_player_configs(player_configs, **kwargs)¶

Create a configurable Hold’em configuration from detailed player configurations.

Parameters:
Returns:

Configured Hold’em game

Return type:

ConfigurableHoldemConfig

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="Poker Pro"
...     ),
...     "player2_player": PlayerAgentConfig(
...         llm_config="claude-3-opus",
...         temperature=0.3,
...         player_name="Card Shark"
...     ),
...     "player1_analyzer": PlayerAgentConfig(
...         llm_config="gpt-4o",
...         temperature=0.2,
...         player_name="Strategic Analyst"
...     ),
...     "player2_analyzer": PlayerAgentConfig(
...         llm_config="claude-3-opus",
...         temperature=0.2,
...         player_name="Game Theory Expert"
...     ),
... }
>>> config = create_holdem_config_from_player_configs(player_configs)
haive.games.hold_em.configurable_config.create_poker_pro_holdem_config(**kwargs)¶

Create a poker professional-style Hold’em configuration with powerful models.

Return type:

ConfigurableHoldemConfig

haive.games.hold_em.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:

ConfigurableHoldemConfig

Raises:

ValueError – If the example name is not found

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

List all available example configurations.

Returns:

Mapping of configuration names to descriptions

Return type:

Dict[str, str]