当前位置: 首页 > news >正文

langgragh的state设计;langgragh本地的流程控制机制interrupt();

langgragh的state设计;

state是智能体中所有节点均可访问的共享内存。

State该放什么数据

判断标准

  • 需要跨节点传递的 → 放进去
  • 能从已有数据推导出来的 → 不放,用的时候现算

state示例:

class EmailAgentState(TypedDict):# 原始邮件数据(后续无法重建,必须存)email_content: strsender_email: stremail_id: str# 分类结果(多个下游节点都要读)classification: EmailClassification | None# 外部查询结果(查一次很贵,存起来复用)search_results: list[str] | Nonecustomer_history: dict | None# 生成内容(需要经过 human_review 节点,必须持久化)draft_response: str | Nonemessages: list[str] | None

最重要的原则:State 只存原始数据,不存格式化文本
这是文档里强调最多的一点,举个例子:
❌ 错误做法:把 prompt 存进 State

class BadState(TypedDict):prompt_for_draft: str  # "客户邮件:xxx\n分类结果:xxx\n请起草回复..."

✅ 正确做法:存原始数据,节点内现组装 prompt

class GoodState(TypedDict):email_content: str        # 原始邮件classification: dict      # 原始分类结果search_results: list[str] # 原始搜索结果

一句话总结:State 是数据仓库,不是消息队列,存的是事实,不是指令。


langgragh本地的流程控制机制interrupt();

人机交互重点方法interrupt()

interrupt()的本质

它不是网络请求、不是数据库查询,它做的事情是:

把当前 State 序列化存进 checkpointer
抛出一个特殊异常(GraphInterrupt)
LangGraph 框架捕获这个异常,停止图的执行

整个过程是同步的,没有任何 IO 等待,所以不需要 await。

停止图执行流程

interrupt({...})↓
1. 把传入的数据包装成 GraphInterrupt 异常对象
2. raise 这个异常
3. LangGraph 框架层捕获它
4. 把当前 State 写入 checkpointer(才是真正的 IO,可能是写数据库)
5. 把 interrupt 的数据暴露给调用方(你的业务代码)
6. 停止图执行

所以 interrupt() 更像是一个检查点标记,告诉框架"在这里暂停,等外部信号",而不是它自己去发请求等响应。

本质上就是把一个长流程拆成了两次独立的 HTTP 请求,靠 thread_id + checkpointer 把中间状态串起来。
这也是为什么 checkpointer 必须用持久化存储(比如你之前研究的 PostgresSaver),用 MemorySaver 的话进程一重启 State 就全丢了。

重启被打断的工作流

前端发一个普通的 POST 请求就行,关键是带上 thread_id,后端拿到后调用 app.invoke(Command(resume=...), config)

http://www.jsqmd.com/news/810222/

相关文章:

  • Gemini Pro提示工程进阶:从Prompt注入到可控生成,6个对抗性测试案例揭示安全边界
  • Adobe-GenP 3.0:3步搞定Adobe全家桶免费使用的终极指南
  • OpenAI与微软设380亿美元收入分成上限,或为IPO铺路,还面临竞争与诉讼挑战
  • 全球ODM服务器电脑代工企业实力排行及核心能力解析 - 奔跑123
  • 2026雅思备考:口碑好的线上直播课程怎么选?精选推荐 - 品牌2025
  • 专利数据分析实战:从高通5G专利预测看技术趋势与竞争情报
  • 维普AI率80%来不及处理?嘎嘎降AI几分钟双降AI率和重复率! - 我要发一区
  • [工业互联-7]:从“神经末梢”到“智慧大脑”:工业自动化核心元器件深度解析
  • 苏州亿帆扬环保科技:专业的江苏生产性废旧金属回收公司 - LYL仔仔
  • Cursor AI破解工具终极指南:如何永久免费使用Pro功能
  • 近4小时深度访谈!Google DeepMind科学家姚顺宇分享AI研究见解与职业抉择
  • 微信公众号自动化发布工具:wechat-oa-skill 核心原理与实战
  • 2026年西安图文快印代工:高新技术印刷企业如何破局传统工厂困局 - 年度推荐企业名录
  • 如何高效使用Windows键盘记录工具:开源监控解决方案
  • 工业场景涡街流量计适配性厂家排行 - 速递信息
  • AI智能体实战竞技场BuildersClaw:区块链与AI融合的软件开发新范式
  • 2026年5月沭阳小酒馆/酒馆/民谣酒馆/音乐酒馆/live酒馆/清吧哪家好,选五两五酒馆 - 2026年企业推荐榜
  • 2026年3月市面上口碑好的勾花网门店推荐,行业内勾花网源头厂家找哪家冀鸿金属丝网专注行业多年经验,口碑良好 - 品牌推荐师
  • 能源巡检及低空领域项目负责人:空间智能解决方案这样选 - 速递信息
  • 2026年5月济南名表回收避坑全攻略|靠谱门店精选,全程无忧 - 奢侈品回收测评
  • 2026年西安海德堡印刷厂与数码快印服务深度指南:如何找到靠谱的源头工厂 - 年度推荐企业名录
  • 生信实战指南:GFF与GTF格式详解及高效转换工具选型
  • 保姆级教程:手把手教你用MuJoCo和Spinning Up让UR5机械臂学会‘指哪打哪’
  • 别再手动算渐晕了!ZEMAX里这个‘Set Vignetting’按钮,一键搞定光束裁剪
  • 维普AI率工具把术语改成大白话?嘎嘎降AI真人论文训练保留论证! - 我要发一区
  • 告别ArcGIS!用MagicPipe3D一键搞定城市地下管网三维建模(从CSV到3DTiles全流程)
  • Cursor Pro 终极破解指南:免费解锁AI编程助手完整教程
  • 合肥找工作,哪些人才招聘平台信息真实有效? - drfdxr
  • BiliBili-UWP:如何在Windows上获得更流畅的B站观影体验?
  • 2026雅思全科线上培训课程推荐:专业辅导助力高分上岸 - 品牌2025