跳到内容

LangGraph 的演变

随着 LangGraph.js 不断演进和改进,为了增强功能、性能或开发者体验,有时需要引入破坏性变更。本页面旨在作为 LangGraph.js 版本历史的指南,记录了重大变化并提供了版本升级的帮助。

版本历史

v0.3.0 (最新)

  • (破坏性变更) 中断现在可以在 "values" 流模式和 .invoke() 中正确传播。
  • (破坏性变更) .stream() 的返回类型现在已严格类型化。
  • 增加了对 节点/任务缓存 的支持。
  • 增加了对 延迟节点 的支持。
  • createReactAgent 中增加了对 preModelHookpostModelHook 的支持。
  • 增加了对 addSequenceaddNode 的简写对象语法的支持。
  • 增加了 pushMessage() 方法,允许手动将消息推送到 "messages" 流模式。
  • 增加了 isInterrupted() 方法,用于检查状态是否包含中断。
  • 修复了多项错误。

v0.2.0

  • (破坏性变更) @langchain/core 现在是一个对等依赖项,需要显式安装。
  • 增加了对 动态断点 的支持。
  • 增加了对 单独输入和输出模式 的支持。
  • 允许使用数组来指定条件边的目标节点,作为对象的简写形式。
  • 修复了多项错误。

v0.1.0

  • (破坏性变更) 改变了检查点表示形式,以支持子图和待处理写入的命名空间。
  • (破坏性变更) MessagesState 已更改为 MessagesAnnotation
  • 增加了 Annotation,这是一种更精简的状态声明方式。它消除了单独的类型和通道声明的需要。
  • 将检查点实现拆分为不同的库,以便于继承。
  • 进行了重大的内部架构重构,以使用更健壮的模式。
  • 弃用了 MessageGraph,推荐使用 StateGraph + MessagesAnnotation
  • 修复了多项错误。

升级

升级 LangGraph.js 时,请参考下面的具体版本部分,以获取如何根据最新更改调整代码的详细说明。

升级到 v0.3.0

  • 如果一个节点被中断,它现在将出现在 "values" 流模式和 .invoke() 中,位于 __interrupts 键下。您可以使用 isInterrupted() 方法检查状态是否包含中断并进行适当处理。
  • .stream() 的返回类型不再是 IterableReadableStream<any>,这意味着您可能需要修复任何类型错误。

升级到 v0.2.0

  • 您现在需要显式安装 @langchain/core。有关更多信息,请参阅 此页面

升级到 v0.1.0

  • 旧的已保存检查点将不再有效,您需要更新以使用新的预构建检查点。
  • 我们建议在声明图状态时切换到新的 Annotation 语法。

弃用通知

本节将列出所有已弃用的功能或 API,以及其计划的移除日期和推荐的替代方案。

MessageGraph

使用 MessagesAnnotationStateGraph

createFunctionCallingExecutor

使用支持工具调用的模型以及 createReactAgent

ToolExecutor

请改用 ToolNode

完整更新日志

有关 LangGraph.js 版本和更改的最新信息,请参阅我们的 GitHub 仓库发行说明