Agent 与工具调用4085 字

LangGraph持久化管理

·全库 331 / 611

《LangGraph持久化管理》共 0.4 万字,通篇围绕 Agent、LangChain、工作流、上下文 展开,归在「Agent 与工具调用」这一层。

覆盖AgentLangChain工作流上下文工具调用ReAct

适合要让 AI 真的去干活、不只是陪人聊天的人

目录骨架(2 节)
  1. 添加持久性内存
  2. 如何管理对话历史

示例代码

注:将ppt后缀名改为zip后解压

python版本:3.12.4

添加持久性内存

LangGraph 具有一个内置的持久化层,通过检查点实现。当您将检查点与图形一起使用时,您可以与该图形的状态进行交互。当您将检查点与图形一起使用时,您可以与图形的状态进行交互并管理它。检查点在每个超级步骤中保存图形状态的检查点,从而实现一些强大的功能

首先,检查点通过允许人类检查、中断和批准步骤来促进人机交互工作流工作流。检查点对于这些工作流是必需的,因为人类必须能够在任何时候查看图形的状态,并且图形必须能够在人类对状态进行任何更新后恢复执行。

其次,它允许在交互之间进行“记忆”。您可以使用检查点创建线程并在图形执行后保存线程的状态。在重复的人类交互(例如对话)的情况下,任何后续消息都可以发送到该检查点,该检查点将保留对其以前消息的记忆。

​

许多 AI 应用程序需要内存来跨多个交互共享上下文。在 LangGraph 中,通过 检查点 为任何 StateGraph 提供内存。

在创建任何 LangGraph 工作流时,您可以通过以下方式设置它们以持久保存其状态

  1. 一个 检查点,例如 MemorySaver
  2. 在编译图时调用 compile(checkpointer=my_checkpointer)。

示例

#示例:persistence_case.py
from langgraph.graph import StateGraph
from langgraph.checkpoint.memory import MemorySaver

builder = StateGraph(....)
# ... define the graph
memory = MemorySaver()
graph = builder.compile(checkpointer=memory)
...

这适用于 StateGraph 及其所有子类,例如 MessageGraph。

以下是一个示例。

注意

在本操作指南中,我们将从头开始创建我们的代理,以保持透明度(但冗长)。您可以使用 create_react_agent(model, tools=tool, checkpointer=checkpointer) (API 文档) 构造函数完成类似的功能。如果您习惯使用 LangChain 的 AgentExecutor 类,这可能更合适。

设置

首先,我们需要安装所需的软件包

%pip install --quiet -U langgraph langchain_openai

接下来,我们需要设置 OpenAI(我们将使用的 LLM)和 Tavily(我们将使用的搜索工具)的 API 密钥

可选地,我们可以设置 LangSmith 跟踪 的 API 密钥,这将为我们提供一流的可观察性。

设置状态

状态是所有节点的接口。

# 导入所需的类型注解和模块
from typing import Annotated
from typing_extensions import TypedDict
from langgraph.graph.message import add_messages

资料里没有你的场景?

把你手上的数据和想解决的那个环节发上来,我们按具体情况回,不复述方法论。

发布需求