6616AI

005|主流多 Agent 框架对比:LangGraph / CrewAI / AutoGen / LlamaIndex

LangGraph、CrewAI、AutoGen、LlamaIndex Workflows 这四个框架各有定位,选错框架会让项目后期很痛苦。

核心结论:LangGraph(兰格·格拉夫)、CrewAI(克鲁·艾)、AutoGen(奥·托·杰恩)、LlamaIndex Workflows(拉·玛·因·戴克斯 沃克·弗洛兹)是四款主流多 Agent 框架。它们抽象层级不同、适合场景不同,选错会让项目后期很痛苦。


一、四个框架一句话定位

框架读法一句话定位
LangGraph兰格·格拉夫用图结构编排复杂工作流,流程可控
CrewAI克鲁·艾用角色和团队协作,快速搭 demo
AutoGen奥·托·杰恩多 Agent 对话式协作,微软出品
LlamaIndex Workflows拉·玛·因·戴克斯 沃克·弗洛兹事件驱动的 RAG + Agent 工作流

二、对比维度

维度说明
抽象层级高抽象(声明式)还是低抽象(代码式)
流程控制固定流程、条件分支、循环支持
状态管理是否有内置状态,怎么共享
通信方式Agent 之间怎么传递信息
学习曲线入门难度
生态成熟度周边工具、社区
适合场景什么项目适合用它

三、LangGraph(兰格·格拉夫)

特点

  • 和 LangChain(兰·切恩)生态深度绑定
  • 用图(Graph / 格拉夫)组织节点
  • 状态管理内置
  • 支持条件分支、循环、并行
  • 可持久化 checkpoint(切克·泡·恩特)

代码风格

偏代码式,自己写节点和路由。

workflow = StateGraph(AgentState)
workflow.add_node("data_query", 数据查询)
workflow.add_edge("intent", "data_query")
workflow.add_conditional_edge("data_query", 路由SQL)

优点

  • 灵活,流程可控
  • 调试能力强
  • 生态成熟
  • 适合复杂系统

缺点

  • 依赖 LangChain
  • 学习成本较高
  • 节点太多时图会复杂

适合

  • 已有 LangChain 基础
  • 流程复杂,有分支、循环
  • 需要精细控制每个节点

四、CrewAI(克鲁·艾)

特点

  • 高抽象,"角色扮演"式
  • 你定义 Agent 角色、任务、团队
  • 它自动帮你协作
  • 不需要自己写图结构

代码风格

声明式,像搭团队。

agent1 = Agent(
    role="数据分析师",
    goal="查询数据",
    backstory="擅长 SQL 和数据分析"
)

agent2 = Agent(
    role="归因分析师",
    goal="分析原因",
    backstory="擅长业务分析"
)

task1 = Task(description="查询广东销售额", agent=agent1)
task2 = Task(description="分析下降原因", agent=agent2)

crew = Crew(agents=[agent1, agent2], tasks=[task1, task2])
crew.kickoff()

优点

  • 非常易上手
  • 概念直观,像管理团队
  • 快速做 demo
  • 适合创意项目

缺点

  • 黑盒,流程不可控
  • 状态管理弱
  • 不适合复杂条件分支
  • 调试困难
  • 企业场景需要谨慎

适合

  • 快速验证想法
  • 创意写作、研究助理
  • 不需要严格流程控制的场景

五、AutoGen(奥·托·杰恩)

特点

  • 微软出品
  • 强调"对话式"多 Agent
  • Agent 之间可以互相聊天
  • 人在回路很自然

代码风格

创建多个 Agent,让它们对话。

assistant = AssistantAgent("数据分析师", llm_config=...)
critic = AssistantAgent("风控分析师", llm_config=...)
user_proxy = UserProxyAgent("用户")

groupchat = GroupChat(agents=[user_proxy, assistant, critic], messages=[])
manager = GroupChatManager(groupchat=groupchat)

user_proxy.initiate_chat(manager, message="为什么广东销售额下降?")

优点

  • 多 Agent 对话很自然
  • 适合人机协作
  • 微软生态强
  • 适合研究、编程、头脑风暴

缺点

  • 对话容易失控
  • 流程难以约束
  • 成本高(多轮对话)
  • 调试和评估困难

适合

  • 编程助手
  • 多角色讨论
  • 需要人机协作的场景
  • 研究类项目

六、LlamaIndex Workflows(拉·玛·因·戴克斯 沃克·弗洛兹)

特点

  • LlamaIndex(拉·玛·因·戴克斯)出的工作流框架
  • 基于事件驱动(Event-driven)
  • 强调 RAG 和 Agent 结合
  • 事件(Event / 伊·文特)是核心概念

代码风格

class QueryEvent(Event):
    question: str

class ResultEvent(Event):
    result: str

class DataQueryAgent(Workflow):
    @step
    async def query(self, ev: QueryEvent) -> ResultEvent:
        result = await query_database(ev.question)
        return ResultEvent(result=result)

优点

  • 事件驱动,天然异步
  • 和 RAG 结合好
  • 适合检索增强类 Agent
  • 可扩展性好

缺点

  • 异步编程要求
  • 社区比 LangChain 小
  • 事件太多时调试难

适合

  • 重度 RAG 项目
  • 异步需求多
  • 事件驱动的系统

七、横向对比表

维度LangGraphCrewAIAutoGenLlamaIndex Workflows手写调度器
抽象层级
流程控制自定义
状态管理内置事件驱动自己写
通信方式共享状态角色协作对话事件函数调用
学习曲线
调试能力自定义
生态成熟度
适合快速 demo
适合生产系统看团队
和 LangChain 集成
和 RAG 集成自定义
异步支持一般自定义

八、不同场景推荐

场景推荐框架
快速做 demo、验证想法CrewAI
多 Agent 对话、编程协作AutoGen
重度 RAG、检索增强LlamaIndex Workflows
复杂工作流、企业系统LangGraph
小团队、极简项目手写调度器
已有 LangChain 项目LangGraph
微软生态、研究项目AutoGen

九、你的项目怎么选

6616AI 网站项目

  • 不需要多 Agent
  • 不需要这些框架

数据分析 Agent

  • 流程复杂、有分支循环
  • 推荐 LangGraph

Maza Studio(小说生成)

  • 多个角色协作
  • 可以试试 CrewAIAutoGen

未来企业级 Agent 项目

  • 流程严格、可审计
  • 推荐 LangGraph

十、建议的学习路径

  1. 先精通 LangGraph(流程可控,适合企业)
  2. 了解 CrewAIAutoGen(知道它们能做什么)
  3. 不要手写调度器(除非项目极简)

十一、一句话总结

LangGraph 适合流程复杂、需要精细控制的生产系统;CrewAI 适合快速 demo;AutoGen 适合对话协作;LlamaIndex 适合 RAG 驱动;手写调度器只在小而简的项目里有优势。


下一步可以读

  • 006|Agent Memory 设计:让 Agent 有记性(已更新)
  • 007|Agent 面试高频问题串讲(已更新)
  • 008|Agent 项目工程化:代码组织、测试、部署(待更新)