接口 PregelOptions<Nodes, Channels, ContextType, TStreamMode, TSubgraphs>

执行 Pregel 图的配置选项。这些选项控制图的执行方式、流式传输的数据以及中断的处理方式。

interface PregelOptions<Nodes, Channels, ContextType, TStreamMode, TSubgraphs> {
    cache?: BaseCache<unknown>;
    callbacks?: Callbacks;
    checkpointDuring?: boolean;
    configurable?: ContextType;
    context?: ContextType;
    debug?: boolean;
    durability?: Durability;
    inputKeys?: keyof Channels | (keyof Channels)[];
    interruptAfter?: "*" | (keyof Nodes)[];
    interruptBefore?: "*" | (keyof Nodes)[];
    maxConcurrency?: number;
    metadata?: Record<string, unknown>;
    outputKeys?: keyof Channels | (keyof Channels)[];
    recursionLimit?: number;
    runId?: string;
    runName?: string;
    signal?: AbortSignal;
    store?: BaseStore;
    streamMode?: TStreamMode;
    subgraphs?: TSubgraphs;
    tags?: string[];
    timeout?: number;
}

类型参数

  • Nodes extends StrRecord<string, PregelNode>

    节点名称到其 PregelNode 实现的映射

  • Channels extends StrRecord<string, BaseChannel>

    通道名称到其 BaseChannel 实现的映射

  • ContextType extends Record<string, any> = Record<string, any>

    可以传递给图的上下文类型

  • TStreamMode extends StreamMode | StreamMode[] | undefined = StreamMode | StreamMode[] | undefined
  • TSubgraphs extends boolean = boolean

继承关系

属性

cache?: BaseCache<unknown>

图的可选缓存,对缓存任务很有用。

callbacks?: Callbacks

用于此调用和任何子调用(例如,链调用 LLM)的回调。标签会传递给所有回调,元数据会传递给 handle*Start 回调。

checkpointDuring?: boolean

是否在中间步骤设置检查点,默认为 true。如果为 false,则仅保存最终的检查点。

已弃用

请改用 durability

configurable?: ContextType

此 Runnable 或子 Runnable 上先前已设为可配置属性的运行时值。

context?: ContextType

图运行的静态上下文,如 userIddbConnection 等。

debug?: boolean

在图执行期间启用详细的调试日志记录。启用后,会打印有关以下信息:

  • 任务执行
  • 通道更新
  • 检查点写入

默认值

false
durability?: Durability

是否在运行期间(或仅在结束/中断时)设置检查点。

  • "async":在执行下一步时异步保存检查点(默认)。
  • "sync":在下一步开始前同步保存检查点。
  • "exit":仅在图退出时保存检查点。

默认值

"async"
inputKeys?: keyof Channels | (keyof Channels)[]

指定在恢复执行时从检查点检索哪些通道键。这是一个高级选项,通常不需要手动设置。图将根据其配置自动确定适当的输入键。

interruptAfter?: "*" | (keyof Nodes)[]

在节点运行后应中断执行的节点列表。与 interruptBefore 类似,但在节点完成后中断。当需要审查节点的输出才能继续时很有用。

示例

// Interrupt after specific nodes
interruptAfter: ["generateContent", "analyze"]

// Interrupt after all nodes
interruptAfter: "all"
interruptBefore?: "*" | (keyof Nodes)[]

在节点运行前应中断执行的节点列表。可用于调试和高级状态操作用例。对于人机交互工作流,开发人员应优先使用

Link

函数。

中断时,必须提供一个 resume

Link

才能继续执行。

示例

// Interrupt before specific nodes
interruptBefore: ["humanReview", "qualityCheck"]

// Interrupt before all nodes
interruptBefore: "all"
maxConcurrency?: number

要进行的最大并行调用数。

metadata?: Record<string, unknown>

此调用和任何子调用(例如,链调用 LLM)的元数据。键应为字符串,值应为可 JSON 序列化的。

outputKeys?: keyof Channels | (keyof Channels)[]

指定要包含在输出流和最终结果中的通道键。使用此选项可筛选要观察的图状态的哪些部分。

示例

// Stream only the 'result' channel
outputKeys: "result"

// Stream multiple channels
outputKeys: ["result", "intermediateState"]
recursionLimit?: number

调用可以递归的最大次数。如果未提供,默认为 25。

runId?: string

此调用的跟踪器运行的唯一标识符。如果未提供,将生成新的 UUID。

runName?: string

此调用的跟踪器运行名称。默认为类的名称。

signal?: AbortSignal

此调用的中止信号。如果提供,当信号中止时,调用将被中止。

store?: BaseStore

一个共享值存储,允许您跨线程存储和检索状态。可用于实现长期记忆模式。

streamMode?: TStreamMode

控制在图执行期间流式传输哪些信息。可以同时启用多种模式。

支持的模式

  • "values":在每一步后流式传输完整的状态
  • "updates":在每一步后仅流式传输状态变更
  • "messages":流式传输节点内部的消息
  • "custom":流式传输节点内部的自定义事件
  • "debug":流式传输详细的执行事件,用于跟踪和调试

示例

// Stream only values
streamMode: "values"

// Stream both values and debug info
streamMode: ["values", "debug"]

默认值

["values"]
subgraphs?: TSubgraphs

是否在流中包含子图执行详情。当为 true 时,来自嵌套图的状态更新也将被流式传输。

默认值

false
tags?: string[]

此调用及任何子调用(例如,链调用 LLM)的标签。您可以使用这些标签来过滤调用。

timeout?: number

此调用的超时时间(毫秒)。