AgentPool

class AgentPool:

A pool of agent instances for efficient reuse.

This pool manages a collection of pre-cloned agents. It supports auto-scaling based ondemand and intelligent reuse of existing agents.

Parameters:

  • base_agent (ChatAgent): The base agent to clone from.
  • initial_size (int): Initial number of agents in the pool. (default: :obj:1)
  • max_size (int): Maximum number of agents in the pool. (default: :obj:10)
  • auto_scale (bool): Whether to automatically scale the pool size. (default: :obj:True)
  • scale_factor (float): Factor by which to scale the pool when needed. (default: :obj:1.5)
  • idle_timeout (float): Time in seconds after which idle agents are removed. (default: :obj:180.0)

init

def __init__(
    self,
    base_agent: ChatAgent,
    initial_size: int = 1,
    max_size: int = 10,
    auto_scale: bool = True,
    scale_factor: float = 1.5,
    idle_timeout: float = 180.0
):

_initialize_pool

def _initialize_pool(self, size: int):

Initialize the pool with the specified number of agents.

_create_fresh_agent

def _create_fresh_agent(self):

Create a fresh agent instance.

get_stats

def get_stats(self):

Get pool statistics.

SingleAgentWorker

class SingleAgentWorker(Worker):

A worker node that consists of a single agent.

Parameters:

  • description (str): Description of the node.
  • worker (ChatAgent): Worker of the node. A single agent.
  • use_agent_pool (bool): Whether to use agent pool for efficiency. (default: :obj:True)
  • pool_initial_size (int): Initial size of the agent pool. (default: :obj:1)
  • pool_max_size (int): Maximum size of the agent pool. (default: :obj:10)
  • auto_scale_pool (bool): Whether to auto-scale the agent pool. (default: :obj:True)

init

def __init__(
    self,
    description: str,
    worker: ChatAgent,
    use_agent_pool: bool = True,
    pool_initial_size: int = 1,
    pool_max_size: int = 10,
    auto_scale_pool: bool = True
):

reset

def reset(self):

Resets the worker to its initial state.

get_pool_stats

def get_pool_stats(self):

Get agent pool statistics if pool is enabled.