games.debate.configurable_config¶

Configurable Debate configuration using the generic player agent system.

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

Classes¶

ConfigurableDebateConfig

Configurable Debate configuration with dynamic LLM selection.

Functions¶

create_advanced_debate_config(**kwargs)

Create an advanced Debate configuration with powerful models.

create_budget_debate_config(**kwargs)

Create a budget-friendly Debate configuration.

create_debate_config([debater1_model, debater2_model])

Create a configurable Debate configuration with simple model specifications.

create_debate_config_from_example(example_name, **kwargs)

Create a configurable Debate configuration from a predefined example.

create_debate_config_from_player_configs(...)

Create a configurable Debate configuration from detailed player configurations.

create_experimental_debate_config(**kwargs)

Create an experimental Debate 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 games.debate.configurable_config.ConfigurableDebateConfig¶

Bases: haive.games.debate.config.DebateAgentConfig

Configurable Debate configuration with dynamic LLM selection.

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

debater1_model¶

Model for debater1 (can be string or LLMConfig)

debater2_model¶

Model for debater2 (can be string or LLMConfig)

debater1_name¶

Name for debater1

debater2_name¶

Name for debater2

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

games.debate.configurable_config.create_advanced_debate_config(**kwargs)¶

Create an advanced Debate configuration with powerful models.

Return type:

ConfigurableDebateConfig

games.debate.configurable_config.create_budget_debate_config(**kwargs)¶

Create a budget-friendly Debate configuration.

Return type:

ConfigurableDebateConfig

games.debate.configurable_config.create_debate_config(debater1_model='gpt-4o', debater2_model='claude-3-5-sonnet-20240620', **kwargs)¶

Create a configurable Debate configuration with simple model specifications.

Parameters:
  • debater1_model (str) – Model for debater1 and analyzer

  • debater2_model (str) – Model for debater2 and analyzer

  • **kwargs – Additional configuration parameters

Returns:

Configured Debate game

Return type:

ConfigurableDebateConfig

Examples

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

Create a configurable Debate configuration from a predefined example.

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

  • **kwargs – Additional configuration parameters to override

Returns:

Configured Debate game

Return type:

ConfigurableDebateConfig

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_debate_config_from_example("budget", enable_analysis=False)
>>> config = create_debate_config_from_example("advanced", visualize_game=True)
games.debate.configurable_config.create_debate_config_from_player_configs(player_configs, **kwargs)¶

Create a configurable Debate configuration from detailed player configurations.

Parameters:
Returns:

Configured Debate game

Return type:

ConfigurableDebateConfig

Expected roles:
  • “debater1_player”: Player 1 configuration

  • “debater2_player”: Player 2 configuration

  • “debater1_analyzer”: Player 1 analyzer configuration

  • “debater2_analyzer”: Player 2 analyzer configuration

Examples

>>> player_configs = {
...     "debater1_player": PlayerAgentConfig(
...         llm_config="gpt-4o",
...         temperature=0.7,
...         player_name="Strategic Debater A"
...     ),
...     "debater2_player": PlayerAgentConfig(
...         llm_config="claude-3-opus",
...         temperature=0.3,
...         player_name="Tactical Debater B"
...     ),
...     "debater1_analyzer": PlayerAgentConfig(
...         llm_config="gpt-4o",
...         temperature=0.2,
...         player_name="Debate Strategist"
...     ),
...     "debater2_analyzer": PlayerAgentConfig(
...         llm_config="claude-3-opus",
...         temperature=0.2,
...         player_name="Debate Analyst"
...     ),
... }
>>> config = create_debate_config_from_player_configs(player_configs)
games.debate.configurable_config.create_experimental_debate_config(**kwargs)¶

Create an experimental Debate configuration with mixed providers.

Return type:

ConfigurableDebateConfig

games.debate.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:

ConfigurableDebateConfig

Raises:

ValueError – If the example name is not found

games.debate.configurable_config.list_example_configurations()¶

List all available example configurations.

Returns:

Mapping of configuration names to descriptions

Return type:

Dict[str, str]