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