langgraph的四种state解析
下面我们来深入拆解这段 LangGraph 代码中出现的 四种 State状态形式并结合执行流程说明它们各自的作用、约束与数据流转方式。1. 四种 State 的定义与角色① InputState输入状态pythonclassInputState(TypedDict):user_input:str角色定义外部调用者向图Graph发起请求时必须传入的数据结构。使用位置在创建 StateGraph时通过 input_schemaInputState指定。特点仅描述“入口数据”不包含图内部产生的中间或最终结果。调用 graph.invoke({“user_input”: “My”})时参数必须兼容 InputState。与本例关系初始全局状态中只有 user_input: “My”。② OutputState输出状态pythonclassOutputState(TypedDict):graph_output:str角色定义图执行完毕后返回给外部的结果结构。使用位置在创建 StateGraph时通过 output_schemaOutputState指定。特点对全局状态进行“裁剪”最终只保留此处声明的字段。示例中返回 {‘graph_output’: ‘My name is Lance’}。与本例关系即使全局状态还包含 foo、bar、user_input输出时也被过滤得只剩 graph_output。③ OverallState总体状态pythonclassOverallState(TypedDict):foo:struser_input:strgraph_output:str角色定义整个图内部维护的完整全局状态即“总状态”。使用位置作为 StateGraph的第一个类型参数StateGraph(OverallState, …)。特点理论上应囊括所有节点需要读写的状态字段本例为了演示故意没放 bar。各节点函数的输入/输出可以只是它的子集LangGraph 负责合并。初始时由 InputState注入user_input随后被各个节点逐步填充。与本例关系初始{“user_input”: “My”}foo、graph_output暂缺node_1 写入 foo→ {“user_input”: “My”, “foo”: “My name”}node_3 写入 graph_output→ 最终全局状态含三个键外加临时的 bar④ PrivateState私有/局部状态pythonclassPrivateState(TypedDict):bar:str角色定义某两个或多个相邻节点之间传递的临时数据结构不属于全局状态的正式 schema。使用位置仅作为某些节点的输入输出类型标注非图级配置。特点用于封装中间计算结果避免污染 OverallState。LangGraph 允许节点返回未在 OverallState中声明的字段并传递给下一节点只要下一节点标注接收该结构。最终不会被 OutputState输出。与本例关系node_2返回 {“bar”: “My name is”}写入私有状态node_3接收 PrivateState读取 bar并生成最终输出。2. 数据流转全过程结合代码python graph.invoke({user_input:My})步骤节点接收的状态类型标注实际可访问的字段返回的状态全局状态变化START→node_1node_1InputStateuser_input“My”{“foo”: “My name”} foonode_1→node_2node_2OverallStateuser_input, foo{“bar”: “My name is”} bar(私有)node_2→node_3node_3PrivateStatebar{“graph_output”: “My name is Lance”} graph_outputnode_3→END输出OutputState——仅保留 graph_output最终输出python{graph_output:My name is Lance}3. 核心设计思想总结关注点分离InputState对外契约调用方知道传什么OutputState对外契约调用方知道收什么OverallState对内全景图作者管理全量状态PrivateState节点间临时契约解耦中间逻辑类型驱动LangGraph 利用 Python 类型标注TypedDict在编译期/运行期做状态校验与自动补全提示。渐进式状态构建全局状态从输入开始经各节点返回的部分状态不断合并最后按输出 schema 剪裁。代码此代码取自官方给的demofromtypingimportTypedDictfromlanggraph.graphimportEND,START,StateGraphclassInputState(TypedDict):user_input:strclassOutputState(TypedDict):graph_output:strclassOverallState(TypedDict):foo:struser_input:strgraph_output:strclassPrivateState(TypedDict):bar:strdefnode_1(state:InputState)-OverallState:# Write to OverallStatereturn{foo:state[user_input] name}defnode_2(state:OverallState)-PrivateState:# Read from OverallState, write to PrivateStatereturn{bar:state[foo] is}defnode_3(state:PrivateState)-OutputState:# Read from PrivateState, write to OutputStatereturn{graph_output:state[bar] Lance}builderStateGraph(OverallState,input_schemaInputState,output_schemaOutputState)builder.add_node(node_1,node_1)builder.add_node(node_2,node_2)builder.add_node(node_3,node_3)builder.add_edge(START,node_1)builder.add_edge(node_1,node_2)builder.add_edge(node_2,node_3)builder.add_edge(node_3,END)graphbuilder.compile()graph.invoke({user_input:My})# {graph_output: My name is Lance} 实践中为了避免混淆通常建议把所有会被多个节点使用的字段都放进OverallState而将PrivateState视为可选的精细化工具。本例特意将bar放在PrivateState是为了演示四种形态的共存与区别。

相关新闻

Claude Code Desktop安装与配置全指南

Claude Code Desktop安装与配置全指南

1. Claude Code Desktop概述与核心价值 Claude Code Desktop是Anthropic公司推出的智能编程辅助工具,专为开发者设计的多功能集成环境。不同于普通的代码编辑器,它深度融合了AI编程助手Claude的核心能力,通过图形化界面提供智能代码补全、实时…

2026/7/22 3:14:00 阅读更多 →
分布式模型预测控制在多智能体点对点转移中的应用

分布式模型预测控制在多智能体点对点转移中的应用

1. 多智能体点对点转移控制概述多智能体系统的点对点转移控制是指多个自主智能体从初始位置出发,通过协同控制策略到达各自指定目标位置的过程。这类问题在无人机编队、仓储机器人、自动驾驶车队等场景中具有广泛应用价值。传统集中式控制方法在面对大规模系统时存在…

2026/7/22 3:14:00 阅读更多 →
Windows XP进程管理技巧与安全防护实战

Windows XP进程管理技巧与安全防护实战

1. Windows XP进程管理深度解析Windows XP作为一代经典操作系统,其进程管理机制至今仍被许多老旧设备和特定场景所使用。与现代操作系统相比,XP的进程管理界面确实显得简陋——任务管理器默认不显示进程路径就是典型例子。但通过系统内置工具&#xff0c…

2026/7/22 3:14:00 阅读更多 →

最新新闻

Django+Xadmin在线教育平台CentOS 6.5部署指南

Django+Xadmin在线教育平台CentOS 6.5部署指南

1. 项目背景与核心需求在线教育平台作为当前互联网教育的主流形态,对技术架构的稳定性和可维护性有着极高要求。这个基于DjangoXadmin的在线教育平台项目,需要部署到CentOS 6.5生产环境,并确保Python 3.5.1环境的正确配置。这种组合在实际部署…

2026/7/22 4:25:28 阅读更多 →
好用的数字人直播培训公司

好用的数字人直播培训公司

很多企业想用数字人直播降低成本,但自己摸索效率极低,选择一家靠谱的培训公司至关重要。好用的数字人直播培训公司,核心不是教你怎么操作软件,而是能帮你快速搭建起一套可执行的直播运营体系,包括形象克隆、话术配置、…

2026/7/22 4:25:28 阅读更多 →
RFID标签+手持机:治具全生命周期管理的数字化破局之道

RFID标签+手持机:治具全生命周期管理的数字化破局之道

在SMT/PCBA电子制造、汽车零部件加工、精密模具注塑等制造领域,治具是衔接产品切换与设备运行的关键载体。每一套铝合金治具、工装夹具或工艺托盘,都对应着专属的产品型号、PLC运行程序与生产工艺参数。然而,长期以来,治具管理停留…

2026/7/22 4:25:28 阅读更多 →
3分钟Windows系统大扫除:告别臃肿,重获清爽体验

3分钟Windows系统大扫除:告别臃肿,重获清爽体验

3分钟Windows系统大扫除:告别臃肿,重获清爽体验 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter a…

2026/7/22 4:25:28 阅读更多 →
CPT Markets:把外汇市场服务体验做扎实,更谨慎的使用者更容易感受到的清单

CPT Markets:把外汇市场服务体验做扎实,更谨慎的使用者更容易感受到的清单

对新手与注重稳健体验的外汇内容读者而言,“能看懂”往往比“堆概念”更重要。谈到CPT Markets时,以下重点写清解释是否通俗、规则是否易查、提示是否前置,以及服务是否具备连续性。外汇相关平台的价值,体现在长期一致性与信息呈现…

2026/7/22 4:25:28 阅读更多 →
LangChain 零基础快速上手:从 Hello World 到智能文档问答助手

LangChain 零基础快速上手:从 Hello World 到智能文档问答助手

一、引言:大模型浪潮下的开发困境 随着 ChatGPT 的爆火,大模型(Large Language Model, LLM)已成为开发者工具箱中的新宠。然而,当我们兴奋地拿到 OpenAI API Key,准备大干一场时,却常常陷入这样…

2026/7/22 4:24:27 阅读更多 →

日新闻

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…

2026/7/22 0:00:26 阅读更多 →
微信Server酱:高到达率的应急通知方案实践

微信Server酱:高到达率的应急通知方案实践

1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…

2026/7/22 0:00:26 阅读更多 →
甲方要的“简洁“PPT,到底是简洁还是省事?

甲方要的“简洁“PPT,到底是简洁还是省事?

甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…

2026/7/22 0:00:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 8:25:39 阅读更多 →

月新闻