fromtypingimportAnnotated,Any,List,Mapping,OptionalfrompydanticimportBaseModel,Fieldfrom..messagesimport(AgentEvent,ChatMessage,)# Ensures pydantic can distinguish between types of events & messages._AgentMessage=Annotated[AgentEvent|ChatMessage,Field(discriminator="type")]
[docs]classBaseState(BaseModel):"""Base class for all saveable state"""type:str=Field(default="BaseState")version:str=Field(default="1.0.0")
[docs]classAssistantAgentState(BaseState):"""State for an assistant agent."""llm_context:Mapping[str,Any]=Field(default_factory=lambda:dict([("messages",[])]))type:str=Field(default="AssistantAgentState")
[docs]classTeamState(BaseState):"""State for a team of agents."""agent_states:Mapping[str,Any]=Field(default_factory=dict)type:str=Field(default="TeamState")
[docs]classBaseGroupChatManagerState(BaseState):"""Base state for all group chat managers."""message_thread:List[_AgentMessage]=Field(default_factory=list)current_turn:int=Field(default=0)type:str=Field(default="BaseGroupChatManagerState")
[docs]classChatAgentContainerState(BaseState):"""State for a container of chat agents."""agent_state:Mapping[str,Any]=Field(default_factory=dict)message_buffer:List[ChatMessage]=Field(default_factory=list)type:str=Field(default="ChatAgentContainerState")
[docs]classRoundRobinManagerState(BaseGroupChatManagerState):"""State for :class:`~autogen_agentchat.teams.RoundRobinGroupChat` manager."""next_speaker_index:int=Field(default=0)type:str=Field(default="RoundRobinManagerState")
[docs]classSelectorManagerState(BaseGroupChatManagerState):"""State for :class:`~autogen_agentchat.teams.SelectorGroupChat` manager."""previous_speaker:Optional[str]=Field(default=None)type:str=Field(default="SelectorManagerState")
[docs]classSwarmManagerState(BaseGroupChatManagerState):"""State for :class:`~autogen_agentchat.teams.Swarm` manager."""current_speaker:str=Field(default="")type:str=Field(default="SwarmManagerState")
[docs]classMagenticOneOrchestratorState(BaseGroupChatManagerState):"""State for :class:`~autogen_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")
[docs]classSocietyOfMindAgentState(BaseState):"""State for a Society of Mind agent."""inner_team_state:Mapping[str,Any]=Field(default_factory=dict)type:str=Field(default="SocietyOfMindAgentState")