games.connect4.generic_engines¶

Generic Connect4 engines using the new generic player agent system.

This module demonstrates how to use the generic player agent system for Connect4, showing the same pattern working with red/yellow player identifiers.

Classes¶

Connect4PromptGenerator

Connect4-specific prompt generator using the generic system.

Functions¶

create_generic_connect4_config_from_example(example_name)

Create Connect4 engines from predefined examples using generics.

create_generic_connect4_engines(player_configs)

Create Connect4 engines using the generic system.

create_generic_connect4_engines_simple([red_model, ...])

Create Connect4 engines with simple model configurations using generics.

Module Contents¶

class games.connect4.generic_engines.Connect4PromptGenerator(players)¶

Bases: haive.games.core.agent.generic_player_agent.GenericPromptGenerator[str, str]

Connect4-specific prompt generator using the generic system.

Init .

Parameters:

players (GamePlayerIdentifiers[PlayerType, PlayerType2]) – [TODO: Add description]

create_analysis_prompt(player)¶

Create a Connect4 analysis prompt for the specified player.

Parameters:

player (str) – Player color (“red” or “yellow”)

Returns:

Prompt template for position analysis

Return type:

ChatPromptTemplate

create_move_prompt(player)¶

Create a Connect4 move prompt for the specified player.

Parameters:

player (str) – Player color (“red” or “yellow”)

Returns:

Prompt template for move generation

Return type:

ChatPromptTemplate

get_analysis_output_model()¶

Get the structured output model for Connect4 analysis.

Return type:

type

get_move_output_model()¶

Get the structured output model for Connect4 moves.

Return type:

type

games.connect4.generic_engines.create_generic_connect4_config_from_example(example_name, temperature=0.7)¶

Create Connect4 engines from predefined examples using generics.

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

  • temperature (float) – Temperature for all engines

Returns:

Dictionary of engines

Return type:

dict[str, AugLLMConfig]

Available examples:
  • “gpt_vs_claude”: GPT-4 vs Claude

  • “gpt_only”: GPT-4 for both players

  • “claude_only”: Claude for both players

  • “budget”: Cost-effective models

  • “mixed”: Different provider per role

games.connect4.generic_engines.create_generic_connect4_engines(player_configs)¶

Create Connect4 engines using the generic system.

Parameters:

player_configs (dict[str, haive.games.core.agent.player_agent.PlayerAgentConfig]) – Dictionary of role name to player configuration

Returns:

Dictionary of configured engines

Return type:

dict[str, AugLLMConfig]

Example

>>> configs = {
...     "red_player": PlayerAgentConfig(llm_config="gpt-4"),
...     "yellow_player": PlayerAgentConfig(llm_config="claude-3-opus"),
...     "red_analyzer": PlayerAgentConfig(llm_config="gpt-4"),
...     "yellow_analyzer": PlayerAgentConfig(llm_config="claude-3-opus"),
... }
>>> engines = create_generic_connect4_engines(configs)
games.connect4.generic_engines.create_generic_connect4_engines_simple(red_model='gpt-4o', yellow_model='claude-3-5-sonnet-20240620', temperature=0.7, **kwargs)¶

Create Connect4 engines with simple model configurations using generics.

Parameters:
  • red_model (str | haive.core.models.llm.LLMConfig) – Model for red player and analyzer

  • yellow_model (str | haive.core.models.llm.LLMConfig) – Model for yellow player and analyzer

  • temperature (float) – Temperature for player engines

  • **kwargs – Additional configuration parameters

Returns:

Dictionary of engines

Return type:

dict[str, AugLLMConfig]

Example

>>> engines = create_generic_connect4_engines_simple("gpt-4", "claude-3-opus")
>>> engines = create_generic_connect4_engines_simple(
...     "openai:gpt-4o",
...     "anthropic:claude-3-5-sonnet-20240620",
...     temperature=0.8
... )