LangGraph 状态、Schema 与 Reducer

langgraph_state_reducers2026-10-29 11:03:47

LangGraph 状态、Schema 与 Reducer

状态是节点共享的数据。Schema 定义允许的字段与类型;节点读取当前状态并返回“更新”,通常无需返回完整状态。

每个字段的 Reducer 决定如何把更新合入旧值。未指定 Reducer 时,新值通常覆盖旧值;累积消息或列表时可使用追加型 Reducer。并行节点同时更新同一字段时,Reducer 还决定这些更新能否合法合并。

from operator import add
from typing import Annotated
from typing_extensions import TypedDict

class State(TypedDict):
    status: str                    # 默认覆盖
    notes: Annotated[list[str], add]  # 合并累积

如果旧 notes 为 ["a"],节点返回 ["b"],合并后为 ["a", "b"]。返回空列表不会清空追加字段;需要明确覆盖语义。消息通常使用专用消息 Reducer,以调用 ID 和消息 ID 处理追加或替换。

输入、输出与内部状态可以使用不同 Schema。不能序列化、无需恢复或包含请求级秘密的数据,应通过运行时上下文或不跟踪值传递,而不是写入检查点。

官方入口:Graph API 的 State 与 Reducer。

本页目录