新闻详情

新闻详情

首页 / 资讯中心 / 详情

Day1 LangGraph 状态机与 Checkpoint

发布时间:2026/9/25 17:03:33来源:尧图网络
Day1 LangGraph 状态机与 Checkpoint
1. 核心概念StateGraph / Node / Edge / CheckpointerStateGraph状态图StateGraph 是一种基于状态机的图编排框架。所有节点共享同一份State通常定义为TypedDict节点之间并不直接传递数据而是通过读写这份全局状态来完成通信。Node节点工作流中的执行单元每个节点只负责单一职责的业务逻辑如数据清洗、LLM 调用、工具执行。节点接收当前 State返回需要更新的字段。复杂场景下可使用子图SubGraph封装。Edge边节点之间的连接通道。分两种直接边无条件从一个节点到下一个节点。条件边Conditional Edge纯函数根据 State 的内容决定下一步路由到哪个节点。关键原则重试、分支等控制逻辑应该通过条件边实现而不是在节点内部写while循环。节点内循环会阻塞执行且无法被 Checkpointer 记录中间状态导致无法中断恢复。Checkpointer检查点/快照在每个 super-step调度步骤边界自动保存当前 State 完整快照的存储器。按thread_id隔离不同任务的历史记录。用途包括断点恢复、人工干预Human-in-the-loop、历史回溯Time Travel和审计。2. State 定义陷阱、Checkpointer 使用注意State 定义陷阱陷阱一State 过大导致存储爆炸Checkpointer 每次保存的是整个 State 的序列化快照。如果在 State 中直接存放大文件、超长文本、DataFrame 等快照体积会迅速膨胀。解法大对象只存指针如 OSS/S3 的 URL、数据库 ID真实数据放在外部存储中。陷阱二重试计数器字段膨胀每个需要重试的节点都定义一个retry_count_A、retry_count_B……字段会越来越多State 变得臃肿。解法用一个字典字段 Reducer 机制统一管理。定义attempts: Annotated[dict, operator.add]节点失败时返回{attempts: {node_name: 1}}框架自动累加无限节点扩展也不会新增字段。Checkpointer 使用注意super-step 边界落盘并非每次节点完成都存而是在一个调度步骤边界统一提交。并行节点在同一 super-step 内一起落盘。(用人话说就是一个节点内写三次循环这一起是一个快照通过判断反复进入这个节点三次会有三个快照interrupt 恢复会重跑节点节点内调用interrupt()挂起后恢复时该节点从头重新执行而不是从挂起点继续。节点逻辑需保证幂等或在 State 中记录已完成的子步骤避免重复副作用。thread_id 设计使用 UUID 或user_id:session_id格式不同用户/任务严禁复用否则状态串台。快照清理长期运行会产生海量快照需配置 TTL 或定期调用delete_thread清理。子图挂载只在外层父图挂 Checkpointer子图不重复挂载避免命名空间冲突和冗余存储。3. 为什么需要 CheckpointerMemorySaver 为什么不能上生产为什么需要 Checkpointer多轮/跨调用记忆同一thread_id多次 invoke自动延续上下文无需手动传递整份 State。Human-in-the-loop节点内interrupt()暂停人工审批后通过Command(resume...)从断点继续。审计与回放get_state_history(config)获取全部历史快照可定位问题、复现 bug、合规审计。容错恢复某节点失败后从上一 checkpoint 恢复已成功节点的结果不会重复执行。MemorySaver 为什么不能上生产MemorySaver或InMemorySaver官方定位仅为调试和测试用硬伤如下问题说明进程重启即丢​数据存在 RAM 中容器重建、Pod 重启后所有任务状态清零多实例不共享​多 worker / K8s 多副本部署时各进程内存隔离同一thread_id请求被路由到不同实例会失忆内存膨胀​长任务、大量 thread 会持续占用 RSS无淘汰机制无持久化/加密​不适合生产环境的多租户、PII 数据和合规要求生产选型单机轻量用SqliteSaver分布式/高可用用PostgresSaver官方推荐高性能缓存层可用RedisSaver需开启 AOF/RDB 持久化。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

lego v4 到 v5 库迁移完全指南:Context 化、slog 日志与 API 重构要点 2026/9/25 17:36:09

lego v4 到 v5 库迁移完全指南:Context 化、slog 日志与 API 重构要点

网络安全密码学 【免费下载链接】lego Lets Encrypt/ACME client and library written in Go 项目地址: https://gitcode.com/gh_mirrors/le/lego 点击查看 免费下载 本文基于 go-acme/lego 官方迁移文档(docs/content/migration/library.md&#xff09…

阅读更多 →
深入解析 Salt 中 SSH 资源的 test 执行模块覆盖:`salt.resources.ssh.modules.test` 与真实的远端连通性检测 2026/9/25 17:36:02

深入解析 Salt 中 SSH 资源的 test 执行模块覆盖:`salt.resources.ssh.modules.test` 与真实的远端连通性检测

运维配置管理后端 【免费下载链接】salt Software to automate the management and configuration of infrastructure and applications at scale. 项目地址: https://gitcode.com/gh_mirrors/sa/salt 点击查看 免费下载 test.ping 是 Salt 生态中使用频率最高的连…

阅读更多 →
F´ 单元测试框架实战:TesterBase、GTestBase 与 Tester 的自动生成机制、断言写法与覆盖率分析 2026/9/25 17:35:56

F´ 单元测试框架实战:TesterBase、GTestBase 与 Tester 的自动生成机制、断言写法与覆盖率分析

嵌入式系统编程 【免费下载链接】fprime F - A flight software and embedded systems framework 项目地址: https://gitcode.com/gh_mirrors/fp/fprime 点击查看 免费下载 F(F Prime)是一个用于飞行软件(FSW)与嵌入式…

阅读更多 →
Agent技能库设计:从函数调用到工程化技能编排的实践指南 2026/9/25 17:35:43

Agent技能库设计:从函数调用到工程化技能编排的实践指南

我搭建agent-skills这个技能库,最早是因为项目代码里到处重复着给模型拼tool definitions的手写逻辑。当时我们做了好几个智能体应用,表面上是对话、搜索、下单这些能力,背后真正干活的却是一堆散落在各个文件里的函数。每次新增一个功能&…

阅读更多 →
PaddleSpeech 实战:基于 CSMSC 数据集从零训练 SpeedySpeech 中文语音合成声学模型 2026/9/25 17:35:36

PaddleSpeech 实战:基于 CSMSC 数据集从零训练 SpeedySpeech 中文语音合成声学模型

人工智能语音音频 【免费下载链接】PaddleSpeech Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword…

阅读更多 →
学生积分管理系统开发:用账务系统思路实现流水审计与对账 2026/9/25 17:35:36

学生积分管理系统开发:用账务系统思路实现流水审计与对账

简介:学院学生积分管理系统是一套面向学院学生管理部门设计的完整工程包,用于将课堂出勤、作业完成、考试成绩、竞赛获奖等行为量化记录并自动计算积分,减少手工登记与统计误差。压缩包共364个文件,大小约1.83MB,包含1…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉