首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >图工程(Graph Engineering)来了?LangChain说不是新东西

图工程(Graph Engineering)来了?LangChain说不是新东西

作者头像
用户11563501
发布2026-07-24 12:18:04
发布2026-07-24 12:18:04
950
举报

Anthropic工程师在又来引领时尚了,他在最近一次分享中提到:

"80%的工程师已经在用自改进循环。现在每个人都在构建Agent图。4-6个月后,所有人都会构建图来编排自改进Agent,不再有Prompt。"

图工程(Graph Engineering)似乎又像Harness工程和循环工程一样要火?

不过,先别急着追这个词。

LangChain团队在最近博文里明确说:"图工程不是新东西。"他们用LangGraph构建基于图的Agent系统已经三年了,现在LangGraph每月下载量6500万+。Sydney Runkle指出:这些词之所以冒出来,是因为它们描述了构建者真正面临的挑战。Prompt工程、上下文工程、Harness工程、Loop工程,这些其实都是实际落地时撞过的墙。

换句话说,图工程不是谁发明的,是大家撞墙撞出来的。Codez的一篇从prompt到图工程的博文解读了图工程的细节。

你还在写线性Agent?它是个退化的图

大多数人构建多步Agent时,结果是一条直线:A→B→C→D,每一步都在等上一步结束。

但90%的情况下,那些"等待"里的箭头根本不传递数据。你写"总结文件,然后告诉我天气",但天气不需要总结的输出。那两条连线是多余的。

Codez给出了一个简单判断标准:问自己,下一步是否真的读取上一步的输出? 如果不是,就没有边,等待就是浪费。

图架构的核心:节点、边、契约

一张图只有两样东西:节点是工作单元,边是依赖关系(数据流动的方向)。

节点要有契约: 明确的输入、输出、单一职责。在Claude Workflow里,用JSON Schema强制子Agent返回结构化数据,验证失败自动重试,而不是给你一堆自由文本。

边是数据契约: 命名边时应该用它的数据类型,而不是先后顺序。比如"AlamofireReview"而不是"第二步"。这样你就能一眼看出边是否真实,也能随时替换节点而不破坏图。

LangGraph的视角完全一致:节点干活,边定义接下来发生什么。节点可以是确定性代码、单次LLM调用、工具调用,或者一个带有自己内部循环的完整Agent。边可以是确定性的,也可以是条件性的——取决于节点结果、当前状态或外部信号。本质上就是一个状态机。

并行、钻石、验证器:三个关键模式

并行(parallel()): 当你有一组独立任务时,不要排队,让它们同时跑。Claude的parallel()会创建子Agent并发执行,返回结果数组。失败的任务解析为null,不会拉垮整个批次。

钻石模式: 分叉(fan-out)→ 缩减(reduce)→ 合成(synthesize)。这是所有严肃Agent图的骨架:一个节点拆解任务,多个节点并行工作,一个节点合并结果。

验证器节点: 在结果进入下游之前,安排一个"杀手"角色——专门尝试推翻发现。三种模式:对抗验证(多个怀疑者)、多视角验证(不同角度)、评委团(打分并整合)。

路由、循环、模型分层

运行时路由: 用条件节点(JavaScript if/switch)根据结果决定走哪条路径。判断可以用Claude,但路由用代码保证确定性。

循环直到收敛: 当任务规模未知(比如漏洞扫描),用循环持续生成发现,直到K轮没有新东西。关键:去重要基于"所有见过的",不只是"确认的",否则死循环。

模型分层: 不是所有节点都需要最强模型。重复性工作(提取字段、分类)用便宜模型,合成报告、裁断用高级模型。Claude允许在单次agent()调用中指定模型。

LangGraph三年踩过的坑

上面是Codez的路线图。下面是LangChain团队三年实战总结的几个教训,值得单独拿出来说。

第一,Agent图通常不是DAG。 生产环境的Agent需要循环:重试失败的工具调用、向用户追问缺失信息、验证后修正答案、反复调用工具直到拿到足够上下文、暂停等待人工介入再恢复。循环是Agent系统的核心部分,所以你的图大概率是有环的。

第二,Loop就是简单的图。 Loop工程不是图的替代品,而是图的简化版。David Khourshid说过,一个循环就是一个有向有环图。事实上,LangChain框架本身就是基于LangGraph构建的——一个简单的Agent循环跑在图之上。

第三,动态转换很重要。 你不一定想在前期定义每一条边。有时候一个节点在运行时才知道要创建多少工作。Map-reduce是典型案例:把输入拆成N份,每份发给一个worker,然后合并结果。N取决于输入,你没法提前知道。LangGraph用Send处理这种情况——让节点在运行时动态路由工作到下游节点,不需要静态定义每条转换。

什么时候不该用图

LangChain的文章里有一段话很关键:有些任务天生就更"Agentic",硬塞进确定性路径是错的。

通用深度研究就是个好例子。研究型Agent需要规划、委派、搜索、阅读、合成,这些路径很难提前定死。LangChain早期用预定义的LangGraph工作流做深度研究,后来转向了更Agentic的核心循环。GPT Researcher最近也做了同样的迁移——把图状的多Agent管线换成了Deep Agents,让规划、委派和上下文管理在Harness中自然涌现,而不是硬编码在图里。

这个判断标准很实用:如果你的任务路径可以提前画出来,用图。如果路径本身需要探索,用Agent Harness。

到底什么变了?

如果图工程不是新东西,那这波热度到底新在哪?

LangChain给了一个很慷慨的解释:节点里能装的东西变了。 早期,节点是确定性代码或单次LLM调用。现在Agent本身已经可靠到可以承担真正的工作,一个节点可以是一个完整的Agent运行——你在编排Agent,而不只是编排LLM调用。

Coding Agent是最好的例子。它们是今天生产环境中最有效、最有影响力的Agent之一,把一个Coding Agent嵌入到更大的图里作为一个节点,这是最近才变得实用的模式。

举个例子:一个文档Agent收到Slack请求"更新LangGraph概述页面,反映在自定义图中混合确定性和Agent步骤的价值",然后自动生成一个待审核的PR。

这个图的每个节点在"确定性→Agent"光谱上处于不同位置:

  • 固定步骤: Slack和Linear操作由代码和API调用驱动。
  • 模型步骤: 分类器和合成步骤使用单次LLM调用,不需要工具。
  • Agent步骤: 参考文档Agent和概念文档Agent在各自代码库中完成更开放的工作。

确定性和Agent行为的混合,让这个文档Agent同时具备了可预测性、能力和效率。

拓扑即成本与延迟

默认用pipeline(),而不是parallel()。 pipeline()让每个item独立流经所有阶段,没有屏障,快的提前完成。而parallel()的屏障会让所有东西等待最慢的节点。

让Claude自己画图:动态工作流

这是终极模式:告诉Claude目标,它自己写编排脚本,分解任务,选择分叉,生成子Agent,合成结果。三种入口:

  1. 在Prompt中说"workflow",Claude为你写一个。
  2. 运行内置的 /deep-research(已经是一个产品级图)。
  3. 开启ultracode模式,Claude自动为每个任务规划图。

当你跑出一个好结果,按s保存到 .claude/workflows/,版本控制,可重复运行,任何人克隆仓库都能启动。

用Claude可以立刻构建的6个图

  • 安全扫描每条路由:每个路由文件一个子Agent,并行检查缺失鉴权,再通过验证器确认。
  • 带引用的研究报告(/deep-research):分解问题,并行搜索,去重,对抗验证每个主张。
  • 模块逐文件移植:并行翻译文件,用测试套件作为门控,失败循环回修复。
  • diff的对抗审查:根据diff大小路由,小改动快速通过,大改动触发多视角并行审计。
  • 定时生态扫描:并行检查多个来源,在屏障处按影响力排序,合成摘要。
  • 未知规模发现:并行发现者,去重,验证,直到两轮无新内容。

结语

图工程不是新概念。它是Prompt工程、Loop工程、Harness工程背后的同一个想法:在每一步,把模型推理放在正确的位置,配上正确的上下文。只不过现在大家习惯了起名字。

新词一个月一个,追的有些疲劳,Graph工程本质上是Loop的复杂形态,过去对于模型进行编排的逻辑都可以再套到agent上,从CoT、ToT、GoT再到AoT,还是ReAct/PS都是如此,复杂度的提升也真是说明了实际落地的复杂性,关注名词不如关注实际问题,也许下一个问题解法就由你来命名。。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI工程化 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 你还在写线性Agent?它是个退化的图
  • 图架构的核心:节点、边、契约
  • 并行、钻石、验证器:三个关键模式
  • 路由、循环、模型分层
  • LangGraph三年踩过的坑
  • 什么时候不该用图
  • 到底什么变了?
  • 拓扑即成本与延迟
  • 让Claude自己画图:动态工作流
  • 用Claude可以立刻构建的6个图
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档