来源:互联网 更新时间:2026-07-22 15:13
AI Agent开发框架到底怎么选?这可能是很多从业者最近都在纠结的问题。今天咱们就拿LangGraph和LlamaIndex这两个主流框架,做一次深度的、硬核的对比,帮你把思路彻底理清。
核心内容主要有三点:
如何开发AI Agent,市面上已经进化出了不同的工程体系。现在这个阶段,就像是AI时代的“战国”时代,各路豪强纷纷登场,但局面也颇为混乱。在这种“乱局”之下,AI从业者做选择,必须要比以往任何时候都更审慎。
今天咱们集中精力,把三件事聊透:
根据之前的讨论,业界对于agent的理解,已经初步形成了一个共识:Workflow和Autonomous Agent之间,并没有一条“非黑即白”的界限。只不过,出于以前约定俗成的语言习惯,当人们提到Workflow时,倾向于理解成那种提前定义好、每一步都按计划精准执行的流程;而提到Agent,则更容易理解为那种高度自主、能独立决策的系统。所以,有人发明了一个新词——AgenticSystem,用来统称所有具备一定自主程度的系统,这个概念既包含了Workflow,也包含了Agent,以及中间状态的各类变体。
在关于Agentic System这一统一概念的认知上,LangGraph和LlamaIndex是基本一致的。但具体到实现机制层面,两者则采取了完全不同的抽象方式。
先说LangGraph。
LangGraph是LangChain团队在LangChain之后,全新设计的一套框架和平台,代表了他们全新的思维模式。在推进Workflow和Agent的融合这件事上,LangGraph可以说是“革命到底”了。它在底层构建了一套基于“图”的编排框架,上层不管是简单的Workflow,还是复杂的Multi-Agent系统,都可以基于这个“图”来编排出来。
为什么一定要抽象成“图”?传统的Workflow,大部分情况下用一个DAG(有向无环图)就能表达。但复杂的控制流,尤其是带有自主性的Agent,必然会产成执行循环。这可不是一个DAG能搞定的。
图是由节点和边组成的。在Agentic System的构建中,节点可以执行任意逻辑,既包括精确的程序逻辑,也包括由LLM驱动的动态决策逻辑。而边则表达了节点之间的执行顺序,一种偏序关系。
底层统一成一个基于“图”的编排框架,上层创生出各种各样的Agentic System,这听起来很美好。但要实现这个目标,这个图的编排框架必须具备几个关键能力:
LlamaIndex的情况则要复杂一些。
在LlamaIndex的官方文档中,它把Agentic System严格分成了两类:一类是高度自主的系统,直接叫Agent;另一类是开发者可以精确控制和自定义的系统,叫Workflow。乍一看,LlamaIndex的“Agent”和“Workflow”似乎是两套完全不同的系统,可能是基于不同的底层架构构建的。
但LlamaIndex可能正处于演变之中,这让问题变得复杂了一些。我们来看一个具体的例子。基于ReAct模式的Agent,通常被认为是高度自主的。它在一个agent loop中循环迭代,靠LLM动态决策,自动调用合适的工具并存取记忆。作为高度自主系统的典型代表,ReActAgent在LlamaIndex中居然存在三种不同的实现:
上面第一个ReActAgent,已经标记为“legacy”(遗留)。而第三个ReActAgent,已经被放到了“workflow”的package下面。这或许说明,LlamaIndex正在逐步将它的agent实现迁移到一个统一的Workflow系统上。这听起来有点奇怪,需要解释一下。
LlamaIndex的Workflow系统,其实也是一个相当完备的编排系统。按官方文档的描述,LlamaIndex的Workflow是一个事件驱动的系统,每个Workflow由多个step组成,每个step负责处理一些事件,同时发出新的事件。通过一个具体的例子会看得更清楚:
很明显,根据上图,LlamaIndex的Workflow实际上也是一个由节点和边组成的图。图中圆角矩形的节点,对应的是step,代表某种执行逻辑;而椭圆形的绿色节点,则对应事件,指明了执行节点之间的偏序关系。由此可见,LlamaIndex所说的“Workflow”,和我们通常理解的主流概念不太一样。它本质上是一套通用的、基于图的编排框架,各种不同自主程度的Agentic System都可以基于这个Workflow框架来构建,只是官方文档的指引上显得有点误导人。
简单总结一下:
按照这个总结,LlamaIndex和LangGraph底层的编排系统似乎大同小异,实则不然。从概念抽象到实现细节,差异都很大。
LangGraph严格参考了谷歌的Pregel分布式图计算架构,它的整体驱动逻辑是这样的:节点之间可以发送消息,执行过程分成若干个superstep。在每个superstep内,收到消息的所有节点完成执行,执行过程中可能发出新消息,新消息直到下一个superstep才能被接收节点看到。系统就这样一个superstep一个superstep地运行,直到没有任何节点收到消息,系统停止。
在Pregel的执行模式下,有时会出现一些出人意料的执行结果,比如下面这个图:
这个图的执行顺序是:
你会发现,node_4被执行了两次。因此,这个图并不是一个简单的DAG。
如果你希望node_4等到node_2和node_3都执行完才执行(且只执行一次),那么需要显式地指明这个等待关系。
而LlamaIndex的编排系统,则是由事件驱动的。一个事件会驱动一个step执行,而step执行时可能发出新的事件,继而又驱动其他step执行。它没有显式定义“边”的概念。
如果继续追问:为什么LangGraph和LlamaIndex都可以做到用一个统一的底层编排系统来支持各种自主程度的Agentic System?这就要回到一个根本问题:不同程度的自主性,本质到底意味着什么?按照之前的讨论,本质在于系统编排的执行路径是在什么时候决策的。静态编排的执行路径是完全提前确定的,不具备太多自主性。而自主性,必然要求某种程度的动态编排特性才能支持。
再回来看LangGraph和LlamaIndex的编排系统,它们都有一个重要特性:能够在执行过程中动态地改变节点偏序关系。在LangGraph中,通过节点在superstep末尾发送动态消息实现;在LlamaIndex中,则通过每个step节点动态地发送事件实现。换句话说,它们都具有动态编排的特性。相比之下,像dify那样,在程序执行前就靠可视化编排好整个Workflow的系统,对自主系统的支持就非常有限。
当深入到这一抽象层次,LangGraph和LlamaIndex的编排系统,虽然暴露的编程接口、实现的完备程度、对概念的抽象都完全不同,但最最底层的逻辑,其实是殊途同归的。
当用某个框架实现一个具体的multi-agent系统时,需要把上层系统的概念和底层抽象概念有效对应起来。
LangGraph支持multi-agent的方案,可以参考官方文档。简单来说,就是下面这个图:
在这个图中,节点可以表示LLM,可以表示某个Tool,可以表示任意一段程序执行逻辑,也可以表示一个完整的Agentic System子图(也就是支持嵌套子图)。
而LlamaIndex支持multi-agent的方案,可以参考官方的一个repo。这是一个使用LlamaIndex的Workflow系统来构建multi-agent的例子。虽然代码比较繁琐,但确实构建出来了。对应的可视化step执行图,我们之前已经见过:
在这个图中,调用工具、调用模型、做路由分发等逻辑,都使用一个step来实现。在具体代码层面,就是在方法上标注一个@step的装饰器。
(这部分涉及一些编程细节,可按需阅读)
LlamaIndex的Workflow,只需在方法上标注@step就能创建一个step,非常灵活易用。但对于step之间的执行偏序关系,没法直接指定,只能通过声明和匹配事件类型来隐式指定,略显不便。
而LangGraph要求开发者显式地调用add_node、add_edge来构建执行图。这些构建图的代码,对开发者的代码有一定侵入性,你需要去理解node、edge这些和你的业务逻辑无关的概念,并在代码中穿插调用它们。
另外,不管是LlamaIndex还是LangGraph,对于multi-agent的上层封装都还不够充分。
LangGraph使用全局状态在节点之间共享数据;而LlamaIndex一方面用event在step之间传递数据,另一方面也支持通过全局状态来共享数据(以Context的形式)。这里有个潜在风险:对于复杂系统来说,全局状态通常容易引发状态管理的混乱,开发者需要自己多加小心。
另外,LangGraph对于全局状态的更新,采用了一套基于reducer的通用方案,初学者往往不容易理解。
LangGraph和LlamaIndex的Workflow,都天然支持并发。因为它们都是异步驱动的,在每一个step或superstep执行期间,具备执行条件的多个节点天然就是并发执行的。
而在多个节点并发执行结束后,同步等待执行结果的操作,两者采取了完全不同的方案。
在LangGraph中,需要通过特定形式的调用来指定框架内部的waiting_edge;而在LlamaIndex的Workflow中,则需要使用Context来指明同时等待多个事件(Context同时承载了太多逻辑)。
LangGraph和LlamaIndex的Workflow,都允许通过async for的方式来深入到执行过程中去,这个能力被称为“streaming”。一些常见的功能,比如汇报执行进度,就可以通过这种方式实现。
在LangGraph中,可以通过async for逐步遍历各个superstep;而在LlamaIndex的Workflow中,则可以通过async for遍历各个事件。对streaming的支持,本质上是对执行过程按时间线性分步进行追踪的一种方式。这种在时间维度上展开的线性遍历,在LangGraph中体现为superstep,在LlamaIndex的Workflow中则体现为每一步的驱动事件。
LangGraph和LlamaIndex都是比较庞大的项目,今天只是讨论了各自关于agent开发的核心逻辑部分。而关于agent开发,值得探讨的话题还有很多。
从某种程度说,底层的设计哲学和世界观,基本定义了一个框架、项目或平台的边界。业界对agent的认知,一直存在两条主线:一条是充满理想色彩的期待,希望AI能带来全方位的自我规划能力,充分释放AI的决策潜力,彻底碘伏传统软件的生产方式;另一条则是更为务实的路线,把AI当成升级改造传统Workflow的工具,让AI在可控的、有监管的规则框架内运转。
现在,随着AI向产业落地的进程不断深入,这两条路线正在以某种方式融合成一种新的东西。理想固然美好,但同时也需要坚实的解决方案来支撑。
七麦数据官网网页地址 七麦数据官方入口在线首页
问卷星官方网站入口地址 问卷星网页版在线使用
币安Binance官方中文网站 币安App最新版下载及新手注册指南
闲鱼的严选验货在哪里看?闲鱼严选和验货宝哪个可靠
PokePay加密卡2026完整指南:申请开卡全攻略+多场景应用技巧
淘宝直播如何看回放在哪里看?怎么查看淘宝直播回放
摩托车活塞环性能如何
为何比特币BTC价格跌破7.3万美元?一文拆解影响近期比特币行情的五大原因
豆包AI专业版使用教程【新手必看】
索尼限时赠送PS Plus Premium七日会员,需手
ThinkBook系列最新价格全解析:2026年选购避坑与实时询价指南
迷你网名古风男生霸气(精选100个)
文雅简易网名男生可爱(精选100个)
GPT5.6惨遭切脑,Fable 5回归要变弱鸡版?
《梦幻西游》特殊鬼怪怎么抓-隐藏变异鬼应对要点
币圈十大实用工具:从实时行情监控到数据分析、资产管理
王者荣耀「西行封妖记」【孙权-仙扇使者】6月25日上线!
闲鱼严选和验货宝哪个可靠?闲鱼的验货宝怎么样,,
币安杀入美股市场,重头戏bStocks还没来
陈姓和杨姓网名大全男生(精选100个)
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc