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

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

接口 PregelOptions<Nodes, Channels, ConfigurableFieldType, TStreamMode, TSubgraphs> {
    cache?: BaseCache<unknown>;
    callbacks?: Callbacks;
    configurable?: ConfigurableFieldType;
    debug?: boolean;
    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;
}

类型参数

继承关系

属性

cache?: BaseCache<unknown>

图的可选缓存,可用于缓存任务。

callbacks?: Callbacks

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

configurable?: ConfigurableFieldType

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

debug?: boolean

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

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

默认值

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

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

链接

函数。

中断后,必须提供一个 resume

链接

以继续执行。

示例

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

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

最大并行调用数。

metadata?: Record<string, unknown>

此调用和任何子调用(例如,Chain 调用 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[]

此调用和任何子调用(例如,Chain 调用 LLM)的标签。您可以使用它们来筛选调用。

timeout?: number

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