当 Agent 只有“模型决定工具,工具返回结果”这一条循环时,普通 AgentExecutor 已经够用;当流程出现分支、审批、并行、暂停恢复和失败补偿,状态图会比隐藏在 Prompt 里的流程更可靠。
图把控制流显式化
LangGraph 用节点表示计算或动作,用边表示跳转,用 State 保存共享数据。模型可以参与路由,但允许走哪些边仍由程序定义。这样“先检索、再审核、必要时人工确认”的流程不再依赖模型记住所有规则。
State 是图的核心合同
状态里应保存业务需要的事实,如目标、证据、草稿、审批结果和错误,而不是塞入所有临时文本。节点输入输出要尽量结构化,并明确合并策略,尤其是并行节点同时更新状态时。
START -> 规划 -> 执行 -> 校验 --通过--> 输出
--失败--> 修复 -> 校验
--高风险--> 人工审批
暂停、恢复和人工介入
持久化 checkpoint 后,长任务可以在进程重启后继续,也能在关键节点等待用户确认。恢复时要验证外部世界是否变化,例如审批等待期间订单可能已取消;不能简单从旧状态继续执行副作用动作。
不是所有流程都值得画图
线性、确定性的短链用普通函数更清楚。图适合状态复杂、分支明确、需要可视化和恢复的任务。节点也不应切得过碎,否则调试充满无意义跳转。评价设计好坏的标准,是失败时能否看懂并从正确位置恢复。
这章给我的启发
LangGraph 把 Agent 从一次对话提升为可持续运行的状态化工作流。图并不会让模型更聪明,但会让复杂行为更可控、更可审计。
文章摘自:https://www.cnblogs.com/hazy-star/p/22749238
