haive.games.checkers.generic_engines¶

Generic Checkers engines using the new generic player agent system.

from typing import Any This module demonstrates how to use the generic player agent system for Checkers, showing the same pattern working across different games with different player identifiers.

Classes¶

CheckersPromptGenerator

Checkers-specific prompt generator using the generic system.

Functions¶

compare_checkers_with_other_games()

Compare the checkers pattern with other games to show generalization.

create_generic_checkers_config_from_example(example_name)

Create Checkers engines from predefined examples using generics.

create_generic_checkers_engines(player_configs)

Create Checkers engines using the generic system.

create_generic_checkers_engines_simple([red_model, ...])

Create Checkers engines with simple model configurations using generics.

create_multi_game_checkers_demo()

Create engines for multiple games including checkers.

Module Contents¶

class haive.games.checkers.generic_engines.CheckersPromptGenerator(players)¶

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

Checkers-specific prompt generator using the generic system.

Init .

Parameters:

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

create_analysis_prompt(player)¶

Create a Checkers analysis prompt for the specified player.

Parameters:

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

Returns:

Prompt template for position analysis

Return type:

ChatPromptTemplate

create_move_prompt(player)¶

Create a Checkers move prompt for the specified player.

Parameters:

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

Returns:

Prompt template for move generation

Return type:

ChatPromptTemplate

get_analysis_output_model()¶

Get the structured output model for Checkers analysis.

Return type:

type

get_move_output_model()¶

Get the structured output model for Checkers moves.

Return type:

type

haive.games.checkers.generic_engines.compare_checkers_with_other_games()¶

Compare the checkers pattern with other games to show generalization.

This function demonstrates how the same generic system works for different games with different player naming conventions.

Return type:

None

haive.games.checkers.generic_engines.create_generic_checkers_config_from_example(example_name, temperature=0.3)¶

Create Checkers 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

  • “checkers_masters”: High-powered models for competitive play

haive.games.checkers.generic_engines.create_generic_checkers_engines(player_configs)¶

Create Checkers 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"),
...     "black_player": PlayerAgentConfig(llm_config="claude-3-opus"),
...     "red_analyzer": PlayerAgentConfig(llm_config="gpt-4"),
...     "black_analyzer": PlayerAgentConfig(llm_config="claude-3-opus"),
... }
>>> engines = create_generic_checkers_engines(configs)
haive.games.checkers.generic_engines.create_generic_checkers_engines_simple(red_model='gpt-4o', black_model='claude-3-5-sonnet-20240620', temperature=0.3, **kwargs)¶

Create Checkers engines with simple model configurations using generics.

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

  • black_model (str | haive.games.models.llm.LLMConfig) – Model for black 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_checkers_engines_simple("gpt-4", "claude-3-opus")
>>> engines = create_generic_checkers_engines_simple(
...     "openai:gpt-4o",
...     "anthropic:claude-3-5-sonnet-20240620",
...     temperature=0.5
... )
haive.games.checkers.generic_engines.create_multi_game_checkers_demo()¶

Create engines for multiple games including checkers.

This demonstrates how the same configuration approach works across different games with the generic system.

Return type:

Any