agents.experiments.supervisor.base_supervisor

Base supervisor implementation for multi-agent systems.

This module provides the core supervisor classes that can manage multiple agents, handle tool synchronization, and support dynamic agent creation.

Classes

AgentMetadata

Metadata for a registered agent.

BaseSupervisor

Base supervisor agent for managing multiple agents.

DynamicSupervisor

Extended supervisor with dynamic agent creation capabilities.

SupervisorState

State model for supervisor agents.

Module Contents

class agents.experiments.supervisor.base_supervisor.AgentMetadata(/, **data)

Bases: pydantic.BaseModel

Metadata for a registered agent.

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)

class agents.experiments.supervisor.base_supervisor.BaseSupervisor(name, engine, agents=None, **kwargs)

Bases: haive.agents.react.agent.ReactAgent

Base supervisor agent for managing multiple agents.

This supervisor can register agents, delegate tasks, and coordinate multi-agent workflows.

Initialize the supervisor.

Parameters:
  • name (str) – Supervisor name

  • engine (haive.core.engine.aug_llm.AugLLMConfig) – LLM configuration

  • agents (dict[str, Any] | None) – Optional initial agents to register

  • **kwargs – Additional arguments passed to ReactAgent

delegate_task(agent_name, task)

Delegate a task to a specific agent.

Parameters:
  • agent_name (str) – Name of the agent to delegate to

  • task (str) – Task description

Returns:

Result from the agent

Return type:

str

get_agent(name)

Get a registered agent by name.

Parameters:

name (str) – Agent identifier

Returns:

The agent instance if found, None otherwise

Return type:

Any | None

get_execution_status()

Get current execution status.

Returns:

Status information including active agent and recent history

Return type:

dict[str, Any]

list_agents()

List all registered agents.

Returns:

Dictionary of agent metadata

Return type:

dict[str, AgentMetadata]

register_agent(name, description, agent)

Register an agent with the supervisor.

Parameters:
  • name (str) – Agent identifier

  • description (str) – Description of agent capabilities

  • agent (Any) – The agent instance

Return type:

None

class agents.experiments.supervisor.base_supervisor.DynamicSupervisor(*args, **kwargs)

Bases: BaseSupervisor

Extended supervisor with dynamic agent creation capabilities.

This supervisor can create new agents on demand based on requirements.

Initialize dynamic supervisor.

create_agent(name, description, agent_type='simple')

Create a new agent dynamically.

Parameters:
  • name (str) – Agent name

  • description (str) – Agent description

  • agent_type (str) – Type of agent to create

Returns:

True if agent was created successfully

Return type:

bool

enable_agent_creation(enable=True)

Enable or disable dynamic agent creation.

Parameters:

enable (bool) – Whether to enable agent creation

Return type:

None

get_capabilities()

Get supervisor capabilities.

Returns:

Dictionary describing supervisor capabilities

Return type:

dict[str, Any]

class agents.experiments.supervisor.base_supervisor.SupervisorState(/, **data)

Bases: pydantic.BaseModel

State model for supervisor agents.

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)