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 | None3. 更新是如何发生的
每个节点接收当前状态,执行明确的逻辑并返回局部更新。图运行时负责合并更新,再把新状态传给下一个节点。
- 让节点只返回自己负责的字段
- 为并发写入定义清晰的 reducer
- 把外部副作用放在明确边界
4. 一个直观例子
研究助手可以逐步积累搜索结果、阅读笔记和判断依据,最后由总结节点生成答案。中间状态使过程能够暂停、恢复与检查。