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/26 15:06:02 阅读更多 →
分布式模型预测控制在多智能体点对点转移中的应用

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

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

2026/7/27 10:30:43 阅读更多 →
Windows XP进程管理技巧与安全防护实战

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

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

2026/7/27 3:52:40 阅读更多 →

最新新闻

STM32F1与F4系列GPIO配置差异详解:从时钟到复用功能的实战指南

STM32F1与F4系列GPIO配置差异详解:从时钟到复用功能的实战指南

1. 项目概述:为什么F1和F4的引脚配置值得深究? 如果你刚开始接触STM32,或者从经典的F1系列(比如STM32F103,也就是我们常说的“蓝桥杯神板”)过渡到性能更强的F4系列(比如STM32F407)&…

2026/7/30 9:13:44 阅读更多 →
学习资源避坑:技术博客、课程、书籍和开源项目的选择指南

学习资源避坑:技术博客、课程、书籍和开源项目的选择指南

学习资源避坑:技术博客、课程、书籍和开源项目的选择指南 一、技术学习资源的现状与陷阱 在信息爆炸的时代,技术学习资源极其丰富。从免费的技术博客、YouTube 视频,到付费的在线课程、电子书,再到开源项目和官方文档&#xff0…

2026/7/30 9:13:44 阅读更多 →
Agent 选型避坑手册:开源框架横向对比与生产选型建议

Agent 选型避坑手册:开源框架横向对比与生产选型建议

Agent 选型避坑手册:开源框架横向对比与生产选型建议 一、从"能用"到"好用":Agent 框架选型的困惑 2026 年初,某 AI 创业公司在 Agent 框架选型上踩了个大坑:他们选择了某新兴开源框架(GitHub 8…

2026/7/30 9:13:44 阅读更多 →
动画制作技术解析:从骨骼绑定到实时渲染的工程实践

动画制作技术解析:从骨骼绑定到实时渲染的工程实践

最近在二次元圈子里,一部名为《龙女为等勇者转生前世》的动画作品悄然走红。这部由菊草toon制作的动画,以其独特的"万年等待"设定和深刻的情感内核,在B站、抖音等平台引发了广泛讨论。很多观众被这个看似简单却蕴含深度的故事所吸引…

2026/7/30 9:13:44 阅读更多 →
Unity渲染深度调试实战:RenderDoc核心原理与GPU疑难杂症精准定位

Unity渲染深度调试实战:RenderDoc核心原理与GPU疑难杂症精准定位

1. 项目概述:为什么Unity开发者需要RenderDoc? 如果你是一名Unity开发者,无论是刚入行还是已经摸爬滚打多年,肯定都经历过这样的时刻:屏幕上那个本该流光溢彩的粒子特效,变成了一团意义不明的色块&#xff…

2026/7/30 9:13:44 阅读更多 →
STM32 HAL库串口通信实战:中断与DMA高效收发数据

STM32 HAL库串口通信实战:中断与DMA高效收发数据

1. 项目概述:从零到一打通串口通信搞嵌入式开发,尤其是玩STM32的,串口通信绝对是第一个要啃下来的硬骨头。它就像单片机的“嘴巴”和“耳朵”,是调试信息输出、与上位机对话、连接各种模块(比如GPS、蓝牙、Wi-Fi&#…

2026/7/30 9:12:43 阅读更多 →

日新闻

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:13 阅读更多 →
如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经在浏览…

2026/7/30 0:00:13 阅读更多 →
“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

更多请点击: https://intelliparadigm.com 第一章:AI 教师备课辅助 AI 教师备课辅助系统正逐步成为教育数字化转型的核心支撑工具,它并非替代教师,而是通过语义理解、知识图谱与多模态生成能力,将教师从重复性劳动中解…

2026/7/30 0:00:13 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻