类 CompiledStateGraph<S, U, N, I, O, C>

构建和编译 StateGraph 的最终结果。不应直接实例化,只能使用 StateGraph 的 .compile() 实例方法。

类型参数

继承关系 (查看完整)

构造函数

属性

NodeType 继承的 RunInput 继承的 RunOutput 继承的 autoValidate 继承的 builder channels 继承的 checkpointer? 继承的 config? 继承的 debug 继承的 inputChannels 继承的 interruptAfter? 继承的 interruptBefore? 继承的 lc_kwargs 继承的 (外部) lc_runnable Protected 继承的 (外部) lc_serializable 继承的 (外部) name? 继承的 (外部) nodes 继承的 outputChannels 继承的 retryPolicy? 继承的 stepTimeout? 继承的 store? 继承的 streamChannels? 继承的 streamMode 继承的

访问器

lc_aliases 继承的 (外部) lc_attributes 继承的 (外部) lc_id 继承的 (外部) lc_secrets 继承的 (外部) lc_serializable_keys 继承的 (外部) streamChannelsAsIs 继承的 streamChannelsList 继承的

方法

_batchWithConfig 继承的 (外部) _callWithConfig Protected 继承的 (外部) _getOptionsList Protected 继承的 (外部) _separateRunnableConfigFromCallOptions Protected 继承的 (外部) _streamLog Protected 继承的 (外部) _transformStreamWithConfig Protected 继承的 (外部) _validateConfigurable Protected _validateInput Protected asTool 继承的 (外部) assign 继承的 (外部) attachBranch attachEdge attachNode batch 继承的 (外部) bind 继承的 (外部) getGraph 已废弃 继承的 getGraphAsync 继承的 getName 继承的 (外部) getState 继承的 getStateHistory 继承的 getSubgraphs 已废弃 继承的 getSubgraphsAsync 继承的 invoke 继承的 map 继承的 (外部) pick 继承的 (外部) pipe 继承的 (外部) stream 继承的 streamEvents 继承的 streamLog 继承的 (外部) toJSON 继承的 (外部) toJSONNotImplemented 继承的 (外部) transform 继承的 (外部) updateState 继承的 validate 继承的 withConfig 继承的 withFallbacks 继承的 (外部) withListeners 继承的 (外部) withRetry 继承的 (外部) isRunnable 继承的 (外部)

构造函数

属性

NodeType: N
RunInput: S
RunOutput: U
autoValidate: boolean

编译时是否自动验证图结构。默认为 true。

builder: StateGraph<unknown, S, U, N, I, O, C>
channels: Record<string | N, BaseChannel<unknown, unknown, unknown>>

图中的通道,将通道名称映射到其 BaseChannel 或 ManagedValueSpec 实例

checkpointer?: false | BaseCheckpointSaver<number>

用于持久化图状态的可选检查点。提供时,会在每个超步保存图状态的检查点。当为 false 或 undefined 时,检查点功能禁用,图将无法保存或恢复状态。

config?: LangGraphRunnableConfig<Record<string, any>>

图执行的默认配置,可以在每次调用时覆盖

debug: boolean

是否启用调试日志记录。默认为 false。

inputChannels: string | N | (string | N)[]

图的输入通道。当图被调用时,这些通道接收初始输入。可以是单个通道键或通道键数组。

interruptAfter?: "*" | ("__start__" | N)[]

执行这些节点后可选中断的节点名称数组或“all”。用于实现人机协作工作流程。

interruptBefore?: "*" | ("__start__" | N)[]

执行这些节点前可选中断的节点名称数组或“all”。用于实现人机协作工作流程。

lc_kwargs: SerializedFields
lc_runnable: boolean
lc_serializable: boolean
name?: string
nodes: Record<"__start__" | N, PregelNode<S, U>>

图中的节点,将节点名称映射到其 PregelNode 实例

outputChannels: string | N | (string | N)[]

图的输出通道。这些通道包含图完成时的最终输出。可以是单个通道键或通道键数组。

retryPolicy?: RetryPolicy

处理节点执行失败的可选重试策略

stepTimeout?: number

每个超步执行的可选超时时间(毫秒)

store?: BaseStore

图的可选长期内存存储,允许数据在线程间持久化和检索

streamChannels?: string | N | (string | N)[]

可选的要流式传输的通道。如果未指定,将流式传输所有通道。可以是单个通道键或通道键数组。

streamMode: StreamMode[]

为此图启用的流式传输模式。默认为 ["values"]。支持的模式:

  • "values":在每个步骤后流式传输完整状态
  • "updates":在每个步骤后流式传输状态更新
  • "messages":流式传输来自节点内部的消息
  • "custom":流式传输来自节点内部的自定义事件
  • "debug":流式传输与图执行相关的事件 - 用于跟踪和调试图执行

访问器

  • 获取 lc_aliases(): undefined | {
        [key: string]: string;
    }
  • 构造函数参数的别名映射。键是属性名称,例如 "foo"。值是在序列化中将替换键的别名。这例如用于使参数名称与 Python 匹配。

    返回 undefined | {
        [key: string]: string;
    }

  • 获取 lc_attributes(): undefined | SerializedFields
  • 要与构造函数参数合并的附加属性映射。键是属性名称,例如 "foo"。值是要序列化的属性值。这些属性需要被构造函数接受为参数。

    返回 undefined | SerializedFields

  • 获取 lc_id(): string[]
  • 模块的最终序列化标识符。

    返回 string[]

  • 获取 lc_secrets(): undefined | {
        [key: string]: string;
    }
  • 秘密映射,这些秘密将从序列化中省略。键是构造函数参数中指向秘密的路径,例如 "foo.bar.baz"。值是秘密 ID,将在反序列化时使用。

    返回 undefined | {
        [key: string]: string;
    }

  • 获取 lc_serializable_keys(): undefined | string[]
  • 应序列化的手动键列表。如果未覆盖,传入构造函数的所有字段都将序列化。

    返回 undefined | string[]

  • 获取 streamChannelsAsIs(): keyof Channels | (keyof Channels)[]
  • 获取以原始格式流式传输的通道。如果指定了 streamChannels,则按原样返回(单个键或数组)。否则,将图中的所有通道作为数组返回。

    返回 keyof Channels | (keyof Channels)[]

    要流式传输的通道键,可以是单个键或数组

  • 获取 streamChannelsList(): (keyof Channels)[]
  • 获取所有应流式传输的通道列表。如果指定了 streamChannels,则返回这些通道。否则,返回图中的所有通道。

    返回 (keyof Channels)[]

    要流式传输的通道键数组

方法

  • 处理可运行对象的批量处理和配置的内部方法。它接受一个函数、输入值和可选配置,并返回一个解析为输出值的 Promise。

    类型参数

    参数

    • func: ((inputs, options?, runManagers?, batchOptions?) => Promise<(Error | StateType<ToStateDefinition<O>>)[]>)

      对每个输入值执行的函数。

        • (inputs, options?, runManagers?, batchOptions?): Promise<(Error | StateType<ToStateDefinition<O>>)[]>
        • 参数

          • inputs: T[]
          • 可选 options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<S, U>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>, StateType<ToStateDefinition<C>> & Record<string, any>>>[]
          • 可选 runManagers: (undefined | CallbackManagerForChainRun)[]
          • 可选 batchOptions: RunnableBatchOptions

          返回 Promise<(Error | StateType<ToStateDefinition<O>>)[]>

    • inputs: T[]
    • 可选 options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<S, U>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>, StateType<ToStateDefinition<C>> & Record<string, any>>> & {
          runType?: string;
      }> | Partial<PregelOptions<Record<"__start__" | N, PregelNode<S, U>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>, StateType<ToStateDefinition<C>> & Record<string, any>> & {
          runType?: string;
      }>[]
    • 可选 batchOptions: RunnableBatchOptions

    返回 Promise<(Error | StateType<ToStateDefinition<O>>)[]>

    解析为输出值的 Promise。

  • 类型参数

    参数

    • func: ((input) => Promise<StateType<ToStateDefinition<O>>>) | ((input, config?, runManager?) => Promise<StateType<ToStateDefinition<O>>>)
    • input: T
    • 可选 options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<S, U>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>, StateType<ToStateDefinition<C>> & Record<string, any>>> & {
          runType?: string;
      }

    返回 Promise<StateType<ToStateDefinition<O>>>

  • 类型参数

    参数

    • options: Partial<O> | Partial<O>[]
    • 可选 length: number

    返回 Partial<O>[]

  • 参数

    返回 AsyncGenerator<RunLogPatch, any, unknown>

  • 用于将输入值迭代器转换为输出值迭代器的辅助方法,带有回调。使用此方法在 Runnable 子类中实现 stream()transform()

    类型参数

    参数

    • inputGenerator: AsyncGenerator<I, any, unknown>
    • transformer: ((generator, runManager?, options?) => AsyncGenerator<O, any, unknown>)
        • (generator, runManager?, options?): AsyncGenerator<I, any, unknown>
        • 参数

          • generator: AsyncGenerator<I, any, unknown>
          • 可选的 runManager: CallbackManagerForChainRun
          • 可选的 options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<S, U>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>, StateType<ToStateDefinition<C>> & Record<string, any>>>

          返回 AsyncGenerator<O, any, unknown>

    • 可选 options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<S, U>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>, StateType<ToStateDefinition<C>> & Record<string, any>>> & {
          runType?: string;
      }

    返回 AsyncGenerator<O, any, unknown>

  • 参数

    • config: Partial<undefined | Record<string, any>>

    返回 Promise<undefined | Record<string, any>>

  • 参数

    返回 Promise<UpdateType<ToStateDefinition<I>>>

  • 将一个 runnable 转换为一个工具。返回一个新的 RunnableToolLike 实例,其中包含 runnable、名称、描述和 schema。

    类型参数

    参数

    • fields: {
          description?: string;
          name?: string;
          schema: ZodType<T, ZodTypeDef, T>;
      }
      • 可选的 description?: string

        工具的描述。如果未提供,则回退到 Zod schema 上的描述;如果两者都未提供,则为 undefined。

      • 可选的 name?: string

        工具的名称。如果未提供,将默认为 runnable 的名称。

      • schema: ZodType<T, ZodTypeDef, T>

        工具输入的 Zod schema。从 runnable 的输入类型推断 Zod 类型。

    返回 RunnableToolLike<ZodType<ToolCall | T, ZodTypeDef, ToolCall | T>, StateType<ToStateDefinition<O>>>

    一个 RunnableToolLike 实例,它是可以作为工具使用的 runnable。

  • 将新字段分配到此 runnable 的字典输出中。返回一个新的 runnable。

    参数

    • mapping: RunnableMapLike<Record<string, unknown>, Record<string, unknown>>

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

  • 参数

    • start: "__start__" | N
    • name: string
    • branch: Branch<S, N, LangGraphRunnableConfig<Record<string, any>>>
    • Optional options: {
          withReader?: boolean;
      }
      • Optional withReader?: boolean

    返回 void

  • 参数

    • start: "__start__" | N | N[]
    • end: "__end__" | N

    返回 void

  • 参数

    • key: "__start__"
    • Optional node: undefined

    返回 void

  • 参数

    • key: N
    • node: StateGraphNodeSpec<S, U>

    返回 void

  • 批量处理的默认实现,调用 invoke N次。如果子类可以更高效地批量处理,应重写此方法。

    参数

    • inputs: (null | UpdateType<ToStateDefinition<I>> | Command<unknown>)[]

      每次批量调用输入的数组。

    • Optional options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<S, U>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>, StateType<ToStateDefinition<C>> & Record<string, any>>> | Partial<PregelOptions<Record<"__start__" | N, PregelNode<S, U>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>, StateType<ToStateDefinition<C>> & Record<string, any>>>[]

      要应用于每次批量调用的单个调用选项对象,或每次调用的数组。

    • Optional batchOptions: RunnableBatchOptions & {
          returnExceptions?: false;
      }

    返回 Promise<StateType<ToStateDefinition<O>>[]>

    RunOutputs 的数组,如果设置了 batchOptions.returnExceptions,则为 RunOutputs 和错误的混合数组。

  • 参数

    返回 Promise<(Error | StateType<ToStateDefinition<O>>)[]>

  • 参数

    返回 Promise<(Error | StateType<ToStateDefinition<O>>)[]>

  • 返回计算图的可绘制表示。

    参数

    • Optional config: RunnableConfig<Record<string, any>> & {
          xray?: number | boolean;
      }

    返回 Graph

    已弃用

    请使用 getGraphAsync 代替。在下一个核心次要版本中,异步方法将成为默认方法。

  • 返回计算图的可绘制表示。

    参数

    • Optional config: RunnableConfig<Record<string, any>> & {
          xray?: number | boolean;
      }

    返回 Promise<Graph>

  • 参数

    • Optional suffix: string

    返回 string

  • 获取图的当前状态。需要配置检查点。

    参数

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

      用于检索状态的配置。

    • Optional options: GetStateOptions

      附加选项。

    返回 Promise<StateSnapshot>

    当前图状态的快照。

    抛出

    如果未配置检查点。

  • 获取图状态的历史记录。需要配置检查点。适用于

    • 调试执行历史
    • 实现时间回溯
    • 分析图行为

    参数

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

      用于检索历史记录的配置

    • Optional options: CheckpointListOptions

      过滤历史记录的选项

    返回 AsyncIterableIterator<StateSnapshot>

    状态快照的异步迭代器

    抛出

    如果未配置检查点。

  • 获取此图内的所有子图。子图是嵌套在此图节点内的 Pregel 实例。

    参数

    • Optional namespace: string

      可选的命名空间,用于过滤子图。

    • Optional recurse: boolean

      是否递归获取子图的子图。

    返回 Generator<[string, Pregel<any, any, StrRecord<string, any>, any, any>], any, unknown>

    生成器,生成 [名称, 子图] 元组。

    已弃用

    请使用 getSubgraphsAsync 代替。在下一个次要版本中,异步方法将成为默认方法。

  • 异步获取此图内的所有子图。子图是嵌套在此图节点内的 Pregel 实例。

    参数

    • Optional namespace: string

      可选的命名空间,用于过滤子图。

    • Optional recurse: boolean

      是否递归获取子图的子图。

    返回 AsyncGenerator<[string, Pregel<any, any, StrRecord<string, any>, any, any>], any, unknown>

    异步生成器,生成 [名称, 子图] 元组。

  • 使用单个输入和配置运行图。

    参数

    返回 Promise<StateType<ToStateDefinition<O>>>

  • 从这个 runnable 的字典输出中挑选键。返回一个新的 runnable。

    参数

    • keys: string | string[]

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

  • 创建一个新的 runnable 序列,按顺序运行每个独立的 runnable,并将一个 runnable 的输出传递给另一个 runnable 或类似 runnable 的对象。

    类型参数

    • NewRunOutput

    参数

    • coerceable: RunnableLike<StateType<ToStateDefinition<O>>, NewRunOutput, RunnableConfig<Record<string, any>>>

      一个 runnable、函数,或者其值是函数或 runnable 的对象。

    返回 Runnable<null | UpdateType<ToStateDefinition<I>> | Command<unknown>, Exclude<NewRunOutput, Error>, RunnableConfig<Record<string, any>>>

    一个新的 runnable 序列。

  • 流式传输图的执行,并在状态更新发生时发出。这是实时观察图执行的主要方法。

    流模式

    • "values":每一步后发出完整状态
    • "updates":每一步后仅发出状态更改
    • "debug":发出详细的调试信息
    • "messages":发出节点内部的消息

    更多详细信息,请参阅流式传输操作指南

    参数

    返回 Promise<IterableReadableStream<any>>

    图状态更新的异步可迭代流

  • 参数

    • input: null | UpdateType<ToStateDefinition<I>> | Command<unknown>
    • options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<S, U>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>, StateType<ToStateDefinition<C>> & Record<string, any>>> & {
          version: "v1" | "v2";
      }
    • 可选 streamOptions: Omit<EventStreamCallbackHandlerInput, "autoClose">

    返回 IterableReadableStream<StreamEvent>

    继承文档

  • 参数

    • input: null | UpdateType<ToStateDefinition<I>> | Command<unknown>
    • options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<S, U>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>, StateType<ToStateDefinition<C>> & Record<string, any>>> & {
          encoding: "text/event-stream";
          version: "v1" | "v2";
      }
    • 可选 streamOptions: Omit<EventStreamCallbackHandlerInput, "autoClose">

    返回 IterableReadableStream<Uint8Array>

  • 流式传输 runnable 的所有输出,如报告给回调系统的那样。这包括 LLM、Retrievers、Tools 等所有内部运行。输出以 Log 对象的形式流式传输,这些对象包含一个 jsonpatch 操作列表,描述了运行状态在每一步中如何变化,以及运行的最终状态。可以使用 jsonpatch 操作来构建状态。

    参数

    • input: null | UpdateType<ToStateDefinition<I>> | Command<unknown>
    • 可选的 options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<S, U>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>, StateType<ToStateDefinition<C>> & Record<string, any>>>
    • 可选 streamOptions: Omit<LogStreamCallbackHandlerInput, "autoClose">

    返回 AsyncGenerator<RunLogPatch, any, unknown>

  • 返回 Serialized

  • 返回 SerializedNotImplemented

  • transform 的默认实现,它缓冲输入然后调用 stream。如果子类可以在输入仍在生成时开始产生输出,则应覆盖此方法。

    参数

    返回 AsyncGenerator<StateType<ToStateDefinition<O>>, any, unknown>

  • 用新值更新图的状态。需要配置一个检查点。

    此方法可用于

    • 实现人在环工作流
    • 在断点期间修改图状态
    • 将外部输入集成到图中

    参数

    • inputConfig: LangGraphRunnableConfig<Record<string, any>>

      更新的配置

    • values: unknown

      用于更新状态的值

    • 可选 asNode: string | N

      可选的节点名称,用于指定更新归属于哪个节点

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

    更新后的配置

    抛出

    如果未配置检查点。

    抛出

    如果更新不能归属于某个节点

  • 验证图结构,确保其格式正确。检查以下项:

    • 没有孤立节点
    • 有效的输入/输出通道配置
    • 有效的中断配置

    返回 this

    this - 用于方法链的 Pregel 实例

    抛出

    如果图结构无效

  • 创建一个带有更新配置的 Pregel 图新实例。此方法遵循不可变模式 - 它不会修改当前实例,而是返回一个包含合并配置的新实例。

    参数

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

      要与当前配置合并的配置

    返回 CompiledStateGraph<S, U, N, I, O, C>

    一个带有合并配置的新的 Pregel 实例

    示例

    // Create a new instance with debug enabled
    const debugGraph = graph.withConfig({ debug: true });

    // Create a new instance with a specific thread ID
    const threadGraph = graph.withConfig({
    configurable: { thread_id: "123" }
    });
  • 从当前 Runnable 创建一个新实例,如果在初始调用失败时,该实例将尝试调用其他传入的备用 (fallback) Runnable。

    参数

    • fields: {
          fallbacks: Runnable<null | UpdateType<ToStateDefinition<I>> | Command<unknown>, StateType<ToStateDefinition<O>>, RunnableConfig<Record<string, any>>>[];
      } | Runnable<null | UpdateType<ToStateDefinition<I>> | Command<unknown>, StateType<ToStateDefinition<O>>, RunnableConfig<Record<string, any>>>[]

    返回 RunnableWithFallbacks<null | UpdateType<ToStateDefinition<I>> | Command<unknown>, StateType<ToStateDefinition<O>>>

    一个新的 RunnableWithFallbacks 实例。

  • 将生命周期监听器绑定到 Runnable,返回一个新的 Runnable。Run 对象包含关于运行的信息,包括其 ID、类型、输入、输出、错误、开始时间、结束时间,以及添加到运行的任何标签或元数据。

    参数

    • params: {
          onEnd?: ((run, config?) => void | Promise<void>);
          onError?: ((run, config?) => void | Promise<void>);
          onStart?: ((run, config?) => void | Promise<void>);
      }

      包含回调函数的对象。

      • 可选 onEnd?: ((run, config?) => void | Promise<void>)

        在 Runnable 完成运行后调用,带有 Run 对象。

          • (run, config?): void | Promise<void>
          • 参数

            • run: Run
            • 可选 config: RunnableConfig<Record<string, any>>

            返回 void | Promise<void>

      • 可选 onError?: ((run, config?) => void | Promise<void>)

        如果 Runnable 抛出错误,则调用此函数,带有 Run 对象。

          • (run, config?): void | Promise<void>
          • 参数

            • run: Run
            • 可选 config: RunnableConfig<Record<string, any>>

            返回 void | Promise<void>

      • 可选 onStart?: ((run, config?) => void | Promise<void>)

        在 Runnable 开始运行之前调用,带有 Run 对象。

          • (run, config?): void | Promise<void>
          • 参数

            • run: Run
            • 可选 config: RunnableConfig<Record<string, any>>

            返回 void | Promise<void>

    返回 Runnable<null | UpdateType<ToStateDefinition<I>> | Command<unknown>, StateType<ToStateDefinition<O>>, PregelOptions<Record<"__start__" | N, PregelNode<S, U>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>, StateType<ToStateDefinition<C>> & Record<string, any>>>

  • 向现有的 Runnable 添加重试逻辑。

    参数

    • 可选 fields: {
          onFailedAttempt?: RunnableRetryFailedAttemptHandler;
          stopAfterAttempt?: number;
      }
      • 可选 onFailedAttempt?: RunnableRetryFailedAttemptHandler
      • 可选 stopAfterAttempt?: number

    返回 RunnableRetry<null | UpdateType<ToStateDefinition<I>> | Command<unknown>, StateType<ToStateDefinition<O>>, PregelOptions<Record<"__start__" | N, PregelNode<S, U>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>, StateType<ToStateDefinition<C>> & Record<string, any>>>

    一个新的 RunnableRetry 实例,调用时将根据参数进行重试。

  • 参数

    • thing: any

    返回 thing is Runnable<any, any, RunnableConfig<Record<string, any>>>