架构变更:
- 新增 app/services/agent/ 模块(state/prompts/graph/tools)
- 7 个工具从 _tool_xxx 方法提取为 @tool 装饰器函数
- 构建 assistant + ToolNode 的 ReAct 图
- agent_dispatcher.py 改为薄壳入口,支持 USE_LANGGRAPH 开关
- MemorySaver checkpoint 持久化对话(thread_id=wechat-{user_id})
- 新增依赖:langchain-core, langchain-openai, langgraph
向后兼容:
- USE_LANGGRAPH=false 可切回旧版 FC 循环
- LangGraph 初始化失败自动降级到 Legacy 模式
- 企微图片处理/VLM分析逻辑不变
22 lines
697 B
Python
22 lines
697 B
Python
"""
|
||
Agent 状态定义
|
||
"""
|
||
|
||
from typing import Annotated, List
|
||
from typing_extensions import TypedDict
|
||
from langgraph.graph.message import AnyMessage, add_messages
|
||
|
||
|
||
class AgentState(TypedDict):
|
||
"""LangGraph Agent 状态
|
||
|
||
messages: 对话消息列表(append-only,LangGraph 自动合并)
|
||
user_id: 企微 userid(图入口注入,工具通过 config 读取)
|
||
pending_images: 工具执行期间收集的待发图片 URL(告警截图等)
|
||
user_uploaded_images: 用户上传的图片 COS 永久 URL(用于工单结单)
|
||
"""
|
||
messages: Annotated[list[AnyMessage], add_messages]
|
||
user_id: str
|
||
pending_images: List[str]
|
||
user_uploaded_images: List[str]
|