haive.games.clue.configurable_config¶

Configurable Clue configuration using the generic player agent system.

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

Classes¶

ConfigurableClueConfig

Configurable Clue configuration with dynamic LLM selection.

Functions¶

create_advanced_clue_config(**kwargs)

Create an advanced Clue configuration with powerful models.

create_budget_clue_config(**kwargs)

Create a budget-friendly Clue configuration.

create_clue_config([detective_model, suspect_model])

Create a configurable Clue configuration with simple model specifications.

create_clue_config_from_example(example_name, **kwargs)

Create a configurable Clue configuration from a predefined example.

create_clue_config_from_player_configs(player_configs, ...)

Create a configurable Clue configuration from detailed player configurations.

create_experimental_clue_config(**kwargs)

Create an experimental Clue configuration with mixed providers.

get_example_config(name)

Get a predefined example configuration by name.

list_example_configurations()

List all available example configurations.

Module Contents¶

class haive.games.clue.configurable_config.ConfigurableClueConfig¶

Bases: haive.games.clue.config.ClueConfig

Configurable Clue configuration with dynamic LLM selection.

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

detective_model¶

Model for detective (can be string or LLMConfig)

suspect_model¶

Model for suspect (can be string or LLMConfig)

detective_name¶

Name for detective

suspect_name¶

Name for suspect

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.clue.configurable_config.create_advanced_clue_config(**kwargs)¶

Create an advanced Clue configuration with powerful models.

Return type:

ConfigurableClueConfig

haive.games.clue.configurable_config.create_budget_clue_config(**kwargs)¶

Create a budget-friendly Clue configuration.

Return type:

ConfigurableClueConfig

haive.games.clue.configurable_config.create_clue_config(detective_model='gpt-4o', suspect_model='claude-3-5-sonnet-20240620', **kwargs)¶

Create a configurable Clue configuration with simple model specifications.

Parameters:
  • detective_model (str) – Model for detective and analyzer

  • suspect_model (str) – Model for suspect and analyzer

  • **kwargs – Additional configuration parameters

Returns:

Configured Clue game

Return type:

ConfigurableClueConfig

Examples

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

Create a configurable Clue configuration from a predefined example.

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

  • **kwargs – Additional configuration parameters to override

Returns:

Configured Clue game

Return type:

ConfigurableClueConfig

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_clue_config_from_example("budget", enable_analysis=False)
>>> config = create_clue_config_from_example("advanced", visualize_game=True)
haive.games.clue.configurable_config.create_clue_config_from_player_configs(player_configs, **kwargs)¶

Create a configurable Clue configuration from detailed player configurations.

Parameters:
Returns:

Configured Clue game

Return type:

ConfigurableClueConfig

Expected roles:
  • “detective_player”: Player 1 configuration

  • “suspect_player”: Player 2 configuration

  • “detective_analyzer”: Player 1 analyzer configuration

  • “suspect_analyzer”: Player 2 analyzer configuration

Examples

>>> player_configs = {
...     "detective_player": PlayerAgentConfig(
...         llm_config="gpt-4o",
...         temperature=0.7,
...         player_name="Strategic Detective"
...     ),
...     "suspect_player": PlayerAgentConfig(
...         llm_config="claude-3-opus",
...         temperature=0.3,
...         player_name="Tactical Suspect"
...     ),
...     "detective_analyzer": PlayerAgentConfig(
...         llm_config="gpt-4o",
...         temperature=0.2,
...         player_name="Clue Strategist"
...     ),
...     "suspect_analyzer": PlayerAgentConfig(
...         llm_config="claude-3-opus",
...         temperature=0.2,
...         player_name="Clue Analyst"
...     ),
... }
>>> config = create_clue_config_from_player_configs(player_configs)
haive.games.clue.configurable_config.create_experimental_clue_config(**kwargs)¶

Create an experimental Clue configuration with mixed providers.

Return type:

ConfigurableClueConfig

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

ConfigurableClueConfig

Raises:

ValueError – If the example name is not found

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

List all available example configurations.

Returns:

Mapping of configuration names to descriptions

Return type:

Dict[str, str]