Annotated 驱动 LangGraph 状态更新
作者:互联网
2026-04-09
Annotated
语法:Annotated[type, metadata]
from typing import Annotated
# 基本形式:Annotated[实际类型, 元数据]
Annotated[list, add_messages]
- list: 状态字段的实际类型,表示这是一个列表
- add_messages: Reducer 函数(归约器),定义了状态更新策略
在 LangGraph 中,第二个参数必须是可调用对象(函数),负责处理如何将节点的输出合并到现有状态中。
不使用 Annotated 时的典型陷阱
class BadState(TypedDict):
messages: list # 没有 Annotated
# 图定义
builder = StateGraph(BadState)
builder.add_node("agent", agent_node) # 返回 {"messages": [ai_message]}
# 执行后你会发现:
# 第一轮:messages = [HumanMessage, AIMessage]
# 第二轮:messages = [AIMessage_of_round2] # 历史全丢了!
使用 Annotated 解决:
from langgraph.graph.message import add_messages
class State(TypedDict):
messages: Annotated[list, add_messages] # 历史被保留并追加
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
Laravel13 + Vue3 的免费可商用 PHP 管理后台 CatchAdmin V5.2.0 发布
04/13
Python的管道符(|)联合类型语法糖
04/12
python win32COM 对象介绍调用Word、WPS 与应用生态
04/12
【Shopee Games 年终盛典技术揭秘】用 CLIP + 大模型 为 2 亿用户生成专属动漫形象
04/12
Python空值判断避坑指南 + 图片定点缩放逻辑优化实战
04/12
VectorStoreRetriever 三种搜索类型
04/12
Scikit-learn 零基础,从安装到实战机器学习模型
04/12
一文助你了解Langchain
04/12
Fastapi中的 lifespan
04/12
LangChain1.0 实现 PDF 文档向量检索全流程
04/12
AI精选
