2、Langgrach的三大要素

发布时间:2026/7/22 1:45:51

2、Langgrach的三大要素 你说得非常准确State状态、Node节点、Edges边确实是 LangGraph 的三大核心要素。你给 State 下的定义“就是些数据”也很形象不过在实际开发中它的内涵比单纯的“数据”要更丰富一些。为了帮你更好地理解它们如何协同工作我把这三大要素拆解一下1. State状态—— 应用的“共享记忆体”你说得对它本质上是数据通常是一个字典dict或TypedDict。但它的核心特征在于共享性和归约器Reducer机制共享性图中的所有节点都能读取和写入这个 State 对象。它不是“流水线”上的临时变量而是一个全局共享的“黑板”。归约器Reducer这是 LangGraph 的精髓。当多个节点都想往 State 的同一个字段比如messages列表里写数据时Reducer函数决定了怎么处理是覆盖还是追加还是合并。默认情况下列表字段通常使用add_messages追加这就保证了多轮对话的上下文不丢失。2. Node节点—— 执行具体任务的“工人”节点就是一个 Python 函数或可运行对象如 LangChain 中的Runnable。它负责接收当前 State执行逻辑然后返回更新后的 State或部分 State。在智能体Agent中典型的节点有调用大模型LLM的节点、调用工具Tools的节点、以及处理最终回答的节点。注意节点不需要返回完整的 State只需要返回需要修改的那部分字段即可LangGraph 会自动通过 Reducer 合并到全局 State 中。3. Edges边—— 控制流向的“导航员”边决定了“做完这一步下一步去哪”。它分为两种类型普通边Normal Edge无条件跳转。比如 A 节点执行完后必定去 B 节点。条件边Conditional Edge这是 LangGraph 实现复杂 Agent 的杀手锏。节点执行完后会进入一个路由函数该函数根据当前 State 的内容比如大模型返回了“需要调用工具”还是“直接回答”动态返回下一个要去的节点名称。这就实现了 AI 的自主决策循环、分支。它们是如何串联起一个完整周期的以最常见的ReAct 智能体思考-行动-观察循环为例看看这三者如何配合初始 State包含用户输入的messages。进入 Agent 节点LLM 读取 State决定要调用工具比如查天气。进入条件边路由函数读取 State 中的 LLM 返回信息判断出“有工具调用请求”动态指向Action 节点。进入 Tools 节点执行天气查询工具将结果写入 State追加到 messages 中。进入普通边无条件跳转回Agent 节点形成循环。第二轮LLM 读取更新后的 State包含天气结果决定回答用户路由函数判断“结束”指向END 节点。 核心总结帮你记忆State是全局数据库存着所有对话和中间结果Node是功能函数只负责干一件事修改 StateEdges是红绿灯与分岔路决定下一步走向支持循环和条件判断。一条铁律如果你构建的流程是简单的 A→B→C线性用 LangChain 的LCEL最舒服一旦你的流程需要“根据上一步的结果决定下一步走哪”即需要条件边和循环那就必须上 LangGraph——而这三要素就是搭建一切复杂流程的乐高积木。 如果你对 State 中的 Reducer归约器具体怎么写或者条件边如何返回多个分支感兴趣我可以继续为你举例说明

相关新闻