1. convert dataclass types to pydantic basemodel
2. add save_state and load_state for ChatAgent
3. state types for AgentChat
---------
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
* Agentchat refactor
* Move termination stop message to a separate field in task result
* Update quick start example
* Use string stop reason instead of stop message in task result for simpler API
* Use main function
Add handoff message type to chat message types
Add Swarm group chat that uses handoff message to select next speaker
Remove tool call and tool call result message types from chat message types
Remove BaseToolUseChatAgent, move tool call handling from group chat's chat agent container upward to the ToolUseAssistantAgent implementation, which subclasses BaseChatAgent directly.
Renaming for better clarity
---------
Co-authored-by: Victor Dibia <victordibia@microsoft.com>