Orchestrator Modules
In this section, we'll cover:
- 🤖 What is an Orchestrator Module?
- 📝 Orchestrator Configurations
- 🐋 Orchestrator Deployments
- 🚀 Running an Orchestrator Module
🎮 What is an Orchestrator Module?
Agent orchestrators are modules that manage the orchestration of agents, tools, environments, and personas, as defined through interaction patterns and workflows. Examples of agent orchestrators include:
- Orchestration of numerous social agents e.g. agents that take part in debate or social simulations
- Orchestration of numerous task-solving agents e.g. agents that work together to solve a problem or write code (like BabyAGI or MetaGPT)
- Orchestration of numerous market agents e.g. agents that work together to make predictions
The code for the orchestration logic is usually contained in the run.py
file of the orchestrator module (for a detailed breakdown of the structure of an orchestrator module, see the overview page).
📝 Orchestrator Configurations
As well as the core orchestration logic, Orchestrator Modules are configured by specifying:
- An LLM Configuration - The language model that the orchestrator uses to generate responses
- Max Rounds - The maximum number of rounds of interaction between agents
The configuration of an orchestrator module can be specified using the OrchestratorConfig
class:
#naptha-sdk OrchestratorConfig
class OrchestratorConfig(BaseModel):
config_name: Optional[str] = "orchestrator_config"
llm_config: Optional[LLMConfig] = None
max_rounds: Optional[int] = 5
🐋 Orchestrator Deployments
Orchestrator deployments allow you to specify other modules that the orchestrator module interacts with:
- Agents - Agents that the orchestrator module interacts with
- Environments - Environments that the orchestrator module interacts with
- Knowledge Bases - Knowledge bases that the orchestrator module interacts with
- Memory - Contextual storage enabling agents to maintain state and learn from interactions
They also allow you to specify the node
that the orchestrator will run on. The configuration of an orchestrator deployment can be specified using the OrchestratorDeployment
class:
#naptha-sdk/schemas.py
class OrchestratorDeployment(BaseModel):
node: Union[NodeConfig, NodeConfigUser, Dict]
name: Optional[str] = None
module: Optional[Dict] = None
config: Optional[OrchestratorConfig] = None
agent_deployments: Optional[List[AgentDeployment]] = None
environment_deployments: Optional[List[EnvironmentDeployment]] = None
kb_deployments: Optional[List[KBDeployment]] = None
memory_deployments: Optional[List[MemoryDeployment]] = None