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][]

  • 参数

    返回值 Record<string, unknown>

  • 参数

    返回值 any

  • 参数

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

    返回值 [string, string, string, string, number, string, string, Uint8Array][]

  • 参数

    • blobValues: [Uint8Array, Uint8Array, Uint8Array][]

    返回值 Promise<Record<string, unknown>>

  • 参数

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

    返回值 Promise<Checkpoint<string, string>>

  • 参数

    • metadata: Record<string, unknown>

    返回值 Promise<any>

  • 参数

    • writes: [Uint8Array, Uint8Array, Uint8Array, Uint8Array][]

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

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

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

    参数

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

    返回值 [string, unknown[]]

  • 返回值 Promise<void>

  • 参数

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

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

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

    默认是使用整数版本,每次递增 1。如果覆盖此方法,您可以使用 str/int/float 版本,只要它们是单调递增的即可。

    参数

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

    返回值 number

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

    参数

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

      用于检索检查点的配置。

    返回值 Promise<undefined | CheckpointTuple>

    检索到的检查点元组,如果未找到则为 undefined。

  • 从数据库列出检查点。

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

    参数

    返回值 AsyncGenerator<CheckpointTuple, any, unknown>

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

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

    参数

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

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

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

    参数

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

      相关检查点的配置。

    • writes: PendingWrite<string>[]

      要存储的写入列表。

    • taskId: string

      创建写入的任务的标识符。

    返回值 Promise<void>

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

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

    返回值 Promise<void>

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

    参数

    • connString: string

      用于连接到 Postgres 数据库的连接字符串。

    • Optional 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();