import operator from typing import Annotated, Sequence, TypedDict, Union, Optional, Dict, Any from langchain_core.messages import BaseMessage class AgentState(TypedDict): # messages 存储完整的对话历史,operator.add 表示新消息是追加而不是覆盖 messages: Annotated[Sequence[BaseMessage], operator.add] # next 存储 Supervisor 决定的下一步是谁 next: str persona: Dict[str, Any] # 存储提取出的结构化画像,例如 {"风格偏好": "北欧", "预算": "8000-12000", ...} persona_summary: str # 可选:LLM 对当前画像的自然语言总结,便于 prompt 使用 persona_complete: bool # Supervisor 用这个判断是否能去 Researcher require_suggestion: bool # 是否需要建议按钮 __end__: bool # 新增这个字段,默认 False