LangGraph 中 State 到底是什么?

从状态生命周期理解 LangGraph 的核心设计,拆解状态结构和更新机制。

· 8 min read

1. 为什么 State 很重要

在传统的 LLM 应用中,对话通常被视为一串独立消息。任务变复杂以后,模型容易丢失上下文,也难以进行长期规划和多步骤协作。

LangGraph 引入 State,把执行过程建模为一个有状态的图。它不只保存对话历史,还可以包含结构化任务信息、工具结果和中间结论。

State 让 Agent 拥有了记忆,也让复杂任务的规划与执行成为可能。

2. State 的基本结构

State 通常是一个结构化对象。字段应该描述节点真正需要共享的信息,而不是把所有临时变量都塞进全局状态。

Python
from typing import TypedDict

class AgentState(TypedDict):
    messages: list[dict]
    current_task: str
    final_answer: str | None

3. 更新是如何发生的

每个节点接收当前状态,执行明确的逻辑并返回局部更新。图运行时负责合并更新,再把新状态传给下一个节点。

  • 让节点只返回自己负责的字段
  • 为并发写入定义清晰的 reducer
  • 把外部副作用放在明确边界

4. 一个直观例子

研究助手可以逐步积累搜索结果、阅读笔记和判断依据,最后由总结节点生成答案。中间状态使过程能够暂停、恢复与检查。

On this page
  1. 为什么 State 很重要
  2. State 的基本结构
  3. 更新是如何发生的
  4. 一个直观例子