first commit
This commit is contained in:
27
agent_dhal/agentdhal_agentchat/state/__init__.py
Normal file
27
agent_dhal/agentdhal_agentchat/state/__init__.py
Normal file
@@ -0,0 +1,27 @@
|
||||
"""State management for agents, teams and termination conditions."""
|
||||
|
||||
from ._states import (
|
||||
AssistantAgentState,
|
||||
BaseGroupChatManagerState,
|
||||
BaseState,
|
||||
ChatAgentContainerState,
|
||||
MagenticOneOrchestratorState,
|
||||
RoundRobinManagerState,
|
||||
SelectorManagerState,
|
||||
SocietyOfMindAgentState,
|
||||
SwarmManagerState,
|
||||
TeamState,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
"BaseState",
|
||||
"AssistantAgentState",
|
||||
"BaseGroupChatManagerState",
|
||||
"ChatAgentContainerState",
|
||||
"RoundRobinManagerState",
|
||||
"SelectorManagerState",
|
||||
"SwarmManagerState",
|
||||
"MagenticOneOrchestratorState",
|
||||
"TeamState",
|
||||
"SocietyOfMindAgentState",
|
||||
]
|
||||
79
agent_dhal/agentdhal_agentchat/state/_states.py
Normal file
79
agent_dhal/agentdhal_agentchat/state/_states.py
Normal file
@@ -0,0 +1,79 @@
|
||||
from typing import Any, List, Mapping, Optional
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class BaseState(BaseModel):
|
||||
"""Base class for all saveable state"""
|
||||
|
||||
type: str = Field(default="BaseState")
|
||||
version: str = Field(default="1.0.0")
|
||||
|
||||
|
||||
class HalState(BaseState):
|
||||
"""State for an assistant agent."""
|
||||
|
||||
llm_context: Mapping[str, Any] = Field(default_factory=lambda: dict([("messages", [])]))
|
||||
type: str = Field(default="AssistantAgentState")
|
||||
|
||||
|
||||
class TeamState(BaseState):
|
||||
"""State for a team of agents."""
|
||||
|
||||
agent_states: Mapping[str, Any] = Field(default_factory=dict)
|
||||
type: str = Field(default="TeamState")
|
||||
|
||||
|
||||
class BaseGroupChatManagerState(BaseState):
|
||||
"""Base state for all group chat managers."""
|
||||
|
||||
message_thread: List[Mapping[str, Any]] = Field(default_factory=list)
|
||||
current_turn: int = Field(default=0)
|
||||
type: str = Field(default="BaseGroupChatManagerState")
|
||||
|
||||
|
||||
class ChatAgentContainerState(BaseState):
|
||||
"""State for a container of chat agents."""
|
||||
|
||||
agent_state: Mapping[str, Any] = Field(default_factory=dict)
|
||||
message_buffer: List[Mapping[str, Any]] = Field(default_factory=list)
|
||||
type: str = Field(default="ChatAgentContainerState")
|
||||
|
||||
|
||||
class RoundRobinManagerState(BaseGroupChatManagerState):
|
||||
"""State for :class:`~agentdhal_agentchat.teams.RoundRobinGroupChat` manager."""
|
||||
|
||||
next_speaker_index: int = Field(default=0)
|
||||
type: str = Field(default="RoundRobinManagerState")
|
||||
|
||||
|
||||
class SelectorManagerState(BaseGroupChatManagerState):
|
||||
"""State for :class:`~agentdhal_agentchat.teams.SelectorGroupChat` manager."""
|
||||
|
||||
previous_speaker: Optional[str] = Field(default=None)
|
||||
type: str = Field(default="SelectorManagerState")
|
||||
|
||||
|
||||
class SwarmManagerState(BaseGroupChatManagerState):
|
||||
"""State for :class:`~agentdhal_agentchat.teams.Swarm` manager."""
|
||||
|
||||
current_speaker: str = Field(default="")
|
||||
type: str = Field(default="SwarmManagerState")
|
||||
|
||||
|
||||
class MagenticOneOrchestratorState(BaseGroupChatManagerState):
|
||||
"""State for :class:`~agentdhal_agentchat.teams.MagneticOneGroupChat` orchestrator."""
|
||||
|
||||
task: str = Field(default="")
|
||||
facts: str = Field(default="")
|
||||
plan: str = Field(default="")
|
||||
n_rounds: int = Field(default=0)
|
||||
n_stalls: int = Field(default=0)
|
||||
type: str = Field(default="MagenticOneOrchestratorState")
|
||||
|
||||
|
||||
class SocietyOfMindAgentState(BaseState):
|
||||
"""State for a Society of Mind agent."""
|
||||
|
||||
inner_team_state: Mapping[str, Any] = Field(default_factory=dict)
|
||||
type: str = Field(default="SocietyOfMindAgentState")
|
||||
Reference in New Issue
Block a user