haive.core.engine.agent.pattern

Pattern configuration for agent composition.

This module provides pattern-related configuration classes for the agent system, enabling declarative, pattern-based agent composition with proper validation and integration with the GraphPatternRegistry.

Classes

PatternConfig

Configuration for a pattern to be applied to an agent.

PatternManager

Manager for pattern application and tracking.

Module Contents

class haive.core.engine.agent.pattern.PatternConfig(/, **data)[source]

Bases: pydantic.BaseModel

Configuration for a pattern to be applied to an agent.

This allows detailed configuration of pattern application, including parameters, application order, and conditions.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

merge_with(other)[source]

Merge this pattern configuration with another.

Parameters:

other (PatternConfig) – The other pattern config to merge with

Returns:

New merged pattern config

Return type:

PatternConfig

model_config

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class haive.core.engine.agent.pattern.PatternManager[source]

Manager for pattern application and tracking.

This class handles pattern ordering, validation, parameter resolution, and application tracking.

Initialize the pattern manager.

add_pattern(pattern_name, parameters=None, order=None, condition=None, enabled=True)[source]

Add a pattern to be applied.

Parameters:
  • pattern_name (str) – Name of the pattern in the registry

  • parameters (dict[str, Any] | None) – Parameters for pattern application

  • order (int | None) – Application order (lower numbers first)

  • condition (str | None) – Optional condition for pattern application

  • enabled (bool) – Whether this pattern is enabled

Return type:

None

applied_patterns_as_set()[source]

Get all applied patterns as a set.

Returns:

Set of applied pattern names

Return type:

set[str]

disable_pattern(pattern_name)[source]

Disable a pattern.

Parameters:

pattern_name (str) – Name of the pattern to disable

Return type:

None

enable_pattern(pattern_name)[source]

Enable a pattern.

Parameters:

pattern_name (str) – Name of the pattern to enable

Return type:

None

classmethod from_dict(data)[source]

Create from a dictionary representation.

Parameters:

data (dict[str, Any]) – Dictionary representation

Returns:

New PatternManager instance

Return type:

PatternManager

get_pattern_order()[source]

Get ordered list of patterns to apply.

Returns:

List of pattern names in application order

Return type:

list[str]

get_pattern_parameters(pattern_name)[source]

Get combined parameters for a pattern.

Parameters:

pattern_name (str) – Name of the pattern

Returns:

Combined parameters from pattern config and global parameters

Return type:

dict[str, Any]

get_required_components()[source]

Get components required by patterns.

Returns:

List of component requirements

Return type:

list[Any]

is_pattern_applied(pattern_name)[source]

Check if a pattern has been applied.

Parameters:

pattern_name (str) – Name of the pattern to check

Returns:

True if the pattern has been applied

Return type:

bool

mark_pattern_applied(pattern_name)[source]

Mark a pattern as applied.

Parameters:

pattern_name (str) – Name of the pattern to mark

Return type:

None

parameters_as_dict()[source]

Get all pattern parameters as a dictionary.

Returns:

Dictionary mapping pattern names to parameter dictionaries

Return type:

dict[str, dict[str, Any]]

patterns_as_list()[source]

Get all pattern configurations as a list.

Returns:

List of pattern configurations

Return type:

list[PatternConfig]

set_pattern_parameters(pattern_name, **parameters)[source]

Set global parameters for a pattern.

Parameters:
  • pattern_name (str) – Name of the pattern

  • **parameters – Parameter values

Return type:

None

to_dict()[source]

Convert to a dictionary for serialization.

Returns:

Dictionary representation

Return type:

dict[str, Any]

validate_patterns()[source]

Validate that all patterns exist in the registry.

Returns:

List of invalid pattern names

Return type:

list[str]