LangGraph 检查点保存器,使用 Postgres 实例作为后端存储。内部使用 node-postgres 包连接到 Postgres 实例。

示例

import { ChatOpenAI } from "@langchain/openai";
import { PostgresSaver } from "@langchain/langgraph-checkpoint-postgres";
import { createReactAgent } from "@langchain/langgraph/prebuilt";

const checkpointer = PostgresSaver.fromConnString(
"postgresql://user:password@localhost:5432/db",
// optional configuration object
{
schema: "custom_schema" // defaults to "public"
}
);

// NOTE: you need to call .setup() the first time you're using your checkpointer
await checkpointer.setup();

const graph = createReactAgent({
tools: [getWeather],
llm: new ChatOpenAI({
model: "gpt-4o-mini",
}),
checkpointSaver: checkpointer,
});
const config = { configurable: { thread_id: "1" } };

await graph.invoke({
messages: [{
role: "user",
content: "what's the weather in sf"
}],
}, config);

层级结构 (查看完整内容)

构造函数

属性

isSetup: boolean

方法

  • 参数

    • threadId: string
    • checkpointNs: string
    • values: Record<string, unknown>
    • versions: ChannelVersions

    返回 [string, string, string, string, string, undefined | Uint8Array<ArrayBufferLike>][]

  • 参数

    返回 Record<string, unknown>

  • 参数

    返回 any

  • 参数

    • threadId: string
    • checkpointNs: string
    • checkpointId: string
    • taskId: string
    • writes: [string, unknown][]

    返回 [string, string, string, string, number, string, string, Uint8Array<ArrayBufferLike>][]

  • 参数

    • blobValues: [Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>][]

    返回 Promise<Record<string, unknown>>

  • 参数

    • checkpoint: Omit<Checkpoint<string, string>, "channel_values" | "pending_sends">
    • channelValues: [Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>][]
    • pendingSends: [Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>][]

    返回 Promise<Checkpoint<string, string>>

  • 参数

    • metadata: Record<string, unknown>

    返回 Promise<any>

  • 参数

    • writes: [Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>][]

    返回 Promise<[string, string, unknown][]>

  • 返回给定列表() 配置、过滤器、游标的 WHERE 子句谓词。

    此方法返回一个字符串和值元组。字符串是参数化的 WHERE 子句谓词(包括 WHERE 关键字):“WHERE column1 = $1 AND column2 IS $2”。值列表包含每个相应参数的值。

    参数

    • 可选 config: RunnableConfig<Record<string, any>>
    • 可选 filter: Record<string, unknown>
    • 可选 before: RunnableConfig<Record<string, any>>

    返回 [string, unknown[]]

  • 返回 Promise<void>

  • 参数

    • config: RunnableConfig<Record<string, any>>

    返回 Promise<undefined | Checkpoint<string, string>>

  • 为通道生成下一个版本 ID。

    默认使用整数版本,每次递增 1。如果您重写此方法,可以使用字符串/整数/浮点数版本,只要它们是单调递增的即可。

    参数

    • current: undefined | number
    • _channel: ChannelProtocol<unknown, unknown, unknown>

    返回 number

  • 从数据库获取检查点元组。此方法根据提供的配置从 Postgres 数据库检索检查点元组。如果配置的 configurable 字段包含“checkpoint_id”键,则检索与 thread_id 和 namespace 匹配的检查点。否则,检索给定 thread_id 的最新检查点。

    参数

    • config: RunnableConfig<Record<string, any>>

      用于检索检查点的配置。

    返回 Promise<undefined | CheckpointTuple>

    检索到的检查点元组,或 undefined。

  • 从数据库列出检查点。

    此方法根据提供的配置从 Postgres 数据库检索检查点元组列表。检查点按检查点 ID 降序(最新优先)排列。

    参数

    返回 AsyncGenerator<CheckpointTuple, any, any>

  • 将检查点保存到数据库。

    此方法将检查点保存到 Postgres 数据库。检查点与提供的配置及其父配置(如果有)关联。

    参数

    返回 Promise<RunnableConfig<Record<string, any>>>

  • 存储链接到检查点的中间写入。

    此方法将与检查点关联的中间写入保存到 Postgres 数据库。

    参数

    • config: RunnableConfig<Record<string, any>>

      相关检查点的配置。

    • writes: PendingWrite[]

      要存储的写入列表。

    • taskId: string

      创建写入的任务标识符。

    返回 Promise<void>

  • 异步设置检查点数据库。

    此方法在 Postgres 数据库中创建必要的表(如果它们不存在),并运行数据库迁移。用户首次使用检查点保存器时必须直接调用此方法。

    返回 Promise<void>

  • 从连接字符串创建 PostgresSaver 的新实例。

    参数

    • connString: string

      连接 Postgres 数据库的连接字符串。

    • 可选 options: Partial<PostgresSaverOptions>

      可选配置对象。

    返回 PostgresSaver

    PostgresSaver 的新实例。

    示例

    const connString = "postgresql://user:password@localhost:5432/db";
    const checkpointer = PostgresSaver.fromConnString(connString, {
    schema: "custom_schema" // defaults to "public"
    });
    await checkpointer.setup();