前面四篇我们构建的所有图都有一个共同的问题:状态只存在于单次 invoke 的执行过程中
图跑完,状态就没了。下一次 invoke 是全新的开始,不知道之前发生过什么。
01// 假设 graph 是前面编译好的图(没有启用 checkpointer)0203const result1 = await graph.invoke({04messages: [{ role: 'user', content: '我叫小明' }],05})06// → AI: 你好,小明!0708const result2 = await graph.invoke({09messages: [{ role: 'user', content: '我叫什么?' }],10})11// → AI: 我不知道你叫什么。12// 两次 invoke 之间没有任何关联,第二次调用完全不知道第一次发生过什么
这在简单的单次问答场景里无所谓。但只要你的应用需要以下任何一种能力,就必须有持久化:
LangGraph 用 Checkpointer 解决这些问题。