会话支持对多个不同运行进行检查点,这对于多租户聊天应用程序和其他需要维护独立状态的场景至关重要。会话是分配给 checkpointer 保存的一系列检查点的唯一 ID。使用 checkpointer 时,必须在运行图时指定 thread_id。
// 指定会话 ID
RunnableConfig config = RunnableConfig.builder().threadId("unique-id-1").build();
// 调用 Graph 时传进去
Flux<NodeOutput> stream = graph.stream(Map.of("input", "你好"), config);
//可以在多次调用间传递同一个会话 ID
RunnableConfig config2 = RunnableConfig.builder().threadId("unique-id-1").build();
Flux<NodeOutput> stream2 = graph.stream(Map.of("input", "你好"), config2);
Checkpointer(检查点)
Spring AI Alibaba 具有内置的持久化层,通过 Checkpointers 实现。当您将 checkpointer 与图一起使用时,可以与图的状态进行交互。checkpointer 在每一步保存图状态的_检查点_,实现几个强大的功能:
首先,checkpointers 通过允许人类检查、中断和批准步骤来促进人机协作工作流。这些工作流需要 checkpointers,因为人类必须能够在任何时间点查看图的状态,并且图必须能够在人类对状态进行任何更新后恢复执行。
其次,它允许在交互之间保持”记忆”。您可以使用 checkpointers 创建会话并在图执行后保存会话的状态。在重复的人类交互(如对话)的情况下,任何后续消息都可以发送到该检查点,它将保留之前的记忆。
每条 Checkpoint 中记录了如下内容,它们可以作为检视和恢复图的基础:
- state:这是此时的状态值。
- nextNodeId:这是图中接下来要执行的节点的标识符。
本文整理自 Spring AI Alibaba 官方文档《核心库概念指南》:https://java2ai.com/docs/frameworks/graph-core/core/core-library

AI项目博客






