一个 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

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

  • 参数

    返回 Record<string, unknown>

  • 参数

    返回 Promise<any>

  • 参数

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

    返回 Promise<[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>][]

    返回 Promise<Checkpoint<string, string>>

  • 参数

    • metadata: Record<string, unknown>

    返回 Promise<any>

  • 参数

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

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

  • 参数

    • pendingSends: [Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>][]
    • mutableRow: {
          channel_values: [Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>][];
          checkpoint: Omit<Checkpoint<string, string>, "channel_values" | "pending_sends">;
      }
      • channel_values: [Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>][]
      • checkpoint: Omit<Checkpoint<string, string>, "channel_values" | "pending_sends">

    返回 Promise<void>

  • 为给定的 list() 配置、过滤器、游标返回 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[]]

  • 删除与特定线程 ID 关联的所有检查点和写入。

    参数

    • threadId: string

      应删除其检查点的线程 ID。

    返回 Promise<void>

  • 返回 Promise<void>

  • 参数

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

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

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

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

    参数

    • current: undefined | number

    返回 number

  • 从数据库中获取检查点元组。此方法根据提供的配置从 Postgres 数据库中检索检查点元组。如果配置的可配置字段包含 "checkpoint_id" 键,则检索具有匹配 thread_id 和命名空间的检查点。否则,将检索给定 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();