LangGraph 多智能体主管实战:用 Command 做交接、带检查点的线程,和那个烧预算的循环

2026-10-24 约 23 分钟阅读

主管说它要把任务交给研究员,两秒后运行结束,既没有研究也没有报错;生产上同一张图连续四次选同一个子 Agent,账单悄悄翻了三倍。

💡 你将学到

主管说它要把任务交给研究员,两秒后运行结束,既没有研究也没有报错;生产上同一张图连续四次选同一个子 Agent,账单悄悄翻了三倍。

📜 目录

两个 Agent 的 LangGraph 图,跑完只说一句「我把这个交给研究员」然后结束,日志里没有报错,两秒就返回。这不是模型笨,是图画错了:主管输出了一段话,而 START 到主管到 END 这条线没有给一句话留出口。

另一种更贵:主管连续四次把任务交给同一个子 Agent,每次交接都重发一遍消息列表,一个提示就能答完的问题吃掉几万输入 token。下面这套写法把两个坑都绕开,版本号是 2026-10-24 从 PyPI 和安装包里核对的。

版本先说清楚

langgraph 1.2.16(要求 Python 3.10+,仓库 43,788 star)、langchain 1.4.7(create_agent 现在从这里导入)、langgraph-checkpoint-sqlite 3.1.2、langgraph-supervisor 0.0.31。注意最后这个包的 README 已经写明:推荐用工具化主管写法,这个库主要是给 LangChain 1.0 升级用的兼容路径。自己写三十行,比多背一个正在转向的依赖划算。

三种接法,先选再写

一个 Agent 挂一堆工具:最省、最好调,多数场景够用。主管加交接工具:工具调用本身就是交接,适合所有子 Agent 共用一套工具面。StateGraph 加 Command:路由是显式函数,状态有类型,也是三者里唯一能脱离模型做单元测试的写法。生产环境选第三种,出问题时你能指着那个函数说,是它选错了下一个节点。

主管只做路由,不做聊天

让主管返回结构化决策,用 with_structured_output 约束成 next 和 reason 两个字段,然后 return Command(goto=..., update=...)。langgraph 1.2.16 里 Command 有四个字段:graph、update、resume、goto,goto 可以是节点名、节点名列表或 Send。节点返回 Command 时,写状态和选下一跳一步完成,那种某条分支没画边的经典 bug 就没了。

子 Agent 就是普通节点

create_agent(model, tools, name, prompt) 返回的是编译好的图,可以直接 add_node。两个细节:状态里必须有 messages 键并带 add_messages 累加器,否则第一次交接就校验失败;每个 worker 都要回到主管,别让 worker 直接跳另一个 worker,图好看,但主管看到的对话就不再是事实。

检查点:那个总被忘掉的配置键

SqliteSaver.from_conn_string() 配上 configurable 里的 thread_id 才有持久化。同一个 thread_id 再 invoke 就是续跑,worker 中途挂掉不用从头再付一次 token。九成的「检查点没生效」其实都是漏了 thread_id,saver 没有键可写。

递归上限已经不是 25 了

网上大量文章说 LangGraph 默认 25 步会拦住死循环。1.2.16 安装包里的配置模块写的是取环境变量 LANGGRAPH_DEFAULT_RECURSION_LIMIT,缺省 10007。也就是说,一个来回踢皮球的主管可以花掉上千次模型调用才被框架拦下,那时候账单本身就是报错信息。显式把 recursion_limit 设成预算能接受的值,再加一个 handoffs 计数在业务层收尾。两道闸,因为失败方式不同:计数干净结束并留说明,上限抛异常可以告警。

死循环到底多少钱

假设主管每轮重发 1200 token 的底稿,每个 Agent 追加约 300 token。八轮来回,输入 token 依次是 1200、1500 这样递增,累计 18,000;十二轮累计 34,200。轮数是平方增长,轮数翻倍,账单接近再翻一倍。把 handoffs 卡在三次,是这篇里最省的优化。

不接模型的测试

别去 mock 整张图。把路由决策抽成纯函数,喂固定输入断言 goto 的值,两条断言就能挡住大多数回归,毫秒级跑完。完整图留给每晚的冒烟测试。

什么时候根本不需要主管

子 Agent 共用一套工具,就用一个 Agent;拆分只是为了图好看,就删掉。主管真正值钱的场景只有三个:不同 Agent 需要不同权限或工具集、便宜的模型做抽取贵模型做写作、某一步要人审批。其余情况,多一个节点就是多一份 token 和多一个藏 bug 的地方。

如果反复失败的其实是检索质量而不是路由,先用 Ragas 评测那篇把检索和生成的锅分开;底层数据管道见 PDF 转 Markdown 那一套。

相关文章
2026-10-22
2026教师AI出卷工具:五款工具,看答案与批改怎么落地
2026-10-19
2026商业地产AI租约提取软件:该比的是条款覆盖,不是字段数量
2026-10-22
Docker跑Ollama配GPU:compose写法、环境变量默认值,和悄悄掉回CPU的显存账
2026-10-22
2026 LangChain RAG教程:chains模块消失后,管线怎么重写
2026-10-19
2026斯德哥尔摩AI工资软件怎么选:集体协议、AGI申报与AI做不了的事
2026-10-20
2026哈利法克斯AI外勤服务软件:跨港调度与HST开票怎么测

本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。

💬 评论 (0)

暂无评论,来说两句吧~

登录后评论