首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >LangGraph >LangGraph 的状态管理机制是如何工作的?

LangGraph 的状态管理机制是如何工作的?

词条归属:LangGraph

1. 状态 schema 定义

LangGraph 的状态通过类型化的数据结构定义,支持 TypedDict、Pydantic BaseModel 或 dataclass。TypedDict 是最常用的方式,性能最优;Pydantic 提供递归数据验证但性能略低。每个节点的输入和输出都遵循状态的 schema,确保类型安全。从 LangGraph 1.0 开始,官方推荐使用 Pydantic BaseModel 定义状态;Pydantic v3 的验证性能相比 v2 有显著提升,适合生产环境使用。

2. 通道与 Reducer

状态中的每个键对应一个通道(Channel),通道决定了当多个节点同时写入同一字段时如何进行合并。常见的 reducer 包括:add_messages(追加模式,用于消息历史累加)、last_value(覆盖模式,用于标量值)、merge(字典合并)和自定义 reducer。开发者可以通过 Annotated[..., reducer] 语法为每个状态键指定合并策略,避免并发写入时的数据冲突。

3. 子图和模块化状态

LangGraph 支持子图(Subgraph)机制,可以将复杂的 Agent 拆分为多个独立的子状态机。子图作为一个整体节点嵌入父图中,通过定义的输入/输出 schema 与父图通信。这种模块化设计允许不同团队各自开发子图模块,最后组装成完整系统,也便于单元测试和复用。

4. 上下文 Schema

除了状态之外,LangGraph 还支持 context schema,用于注入运行时不变的上下文数据(如 user_id、数据库连接等)。context 对所有节点可见但不可修改,适合传递只读的配置信息,避免了将这些数据放入可变状态中带来的复杂度。

相关文章
Flink中可查询状态是如何工作的
QueryableStates 允许用户对流的内部状态进行实时查询,而无需将结果存储到任何外部存储中。 这制造了许多有趣的可能,因为我们不再需要等待系统写入外部存储(这一直是此类系统的主要瓶颈之一)。 甚至可能没有任何类型的数据库能让用户的应用程序直接查询流,这将使应用程序更快、更便宜。 这可能不适用于所有用例,但如果您的 Pipeline 必须维护内部状态(可能是进行一些聚合),则最好使状态可用于查询。
smartsi
2021-06-29
3.6K0
聊聊Flink框架中的状态管理机制
在目前所有流式计算的场景中,将数据流的状态分为有状态和无状态两种类型。无状态指的就是无状态的计算观察每个独立的事件,并且只根据最后一个事件输出结果。举个栗子:一个流处理程序,从传感器接收温度数据然后在温度为90摄氏度发出报警信息。有状态的计算则会根据多个事件输出结果。举个栗子:计算过去一小时的平均温度,就是有状态的计算、若在一分钟内收到两个相差 20 度以上的温度读数,则发出警告等等。
百思不得小赵
2022-12-01
9130
HTTPS是如何工作的
大家在浏览网页的时候一定有这样的体验,有一些网站在网址那里会显示一个绿色的挂锁,并且网址中“https”相关的字样也是绿色的,聪明的朋友肯定会问,这些颜色和符号代表什么意思呢?想想大家在上网的时候,经常要输入账号和密码,有时候网购还要输入信用卡信息,如果这些信息被偷了,后果是很严重的。是的,这个绿色的锁就是用来保护大家的信息不被黑客窃取。现在很多网站默认使用HTTPS来保护用户的信息,截止2018年4月,Alexa前100万的网站中,32.2%使用HTTPS作为默认设置,互联网最受欢迎的137971个网站中,57.1%使用了HTTPS;Firefox遥测数据显示,70%的网站使用了HTTPS。
大蟒传奇
2018-07-31
4.5K0
PROFIBUS是如何工作的?
我们先总体看下PROFIBUS技术系统的结构,可以帮助我们清晰了解这一技术的具体协议内容及不同的应用类别等。
Hello工控
2024-07-20
2.3K0
Goroutine是如何工作的
一、Go语言简介 如果你是Go语言新手,或如果你对"并发(Concurrency)不是并行(parallelism)"这句话毫无赶脚,那么请看一下Rob Pike大神关于这个主题的演讲吧,演讲共30分 钟,我敢保证你在这个演讲上花费30分钟是绝对值得的。 总结一下两者(Concurrency和Parallelism)的不同:"当人们听到并发(Concurrency)这个词时,总是会想起并行 (Parallelism),它们之间有相关性,但却是两个明显不同的概念。在编程领域,并发(Concurrency)是独
李海彬
2018-03-21
4.1K0
点击加载更多
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券