来源:langchain-ai/langgraph · crewAIInc/crewAI · microsoft/autogen · geekan/MetaGPT · langgenius/dify | 整理时间:2026-04-04
概述
除了官方 SDK(Claude/OpenAI/Google),社区还涌现了大量 Agent 框架。本篇介绍最受欢迎的五个开源框架,分析各自的设计理念和适用场景。
框架全景对比
| 框架 | GitHub Stars | 设计理念 | 核心模式 | 适合场景 |
|---|---|---|---|---|
| LangGraph | 30K+ | 图式编排 | 有向图 + 状态机 | 复杂工作流 |
| CrewAI | 30K+ | 角色协作 | 团队分工 + 任务委派 | 多角色协作 |
| AutoGen | 45K+ | 对话驱动 | 多 Agent 对话 | 研究探索 |
| MetaGPT | 45K+ | SOP 驱动 | 软件团队模拟 | 软件开发 |
| Dify | 114K+ | 可视化构建 | 拖拽式工作流 | 低代码/无代码 |
LangGraph:图式多 Agent 编排
核心概念
LangGraph 把 Agent 工作流建模为有向图:
[开始] → [分析需求] → [条件分支]
├→ [简单任务] → [直接执行] → [结束]
└→ [复杂任务] → [拆分子任务] → [并行执行] → [汇总] → [结束]
关键特性
- StateGraph:状态在节点间传递,支持持久化
- 条件路由:根据状态动态选择下一个节点
- 人机交互:中断点(breakpoint)暂停等待人类输入
- 检查点:状态快照,支持回滚和恢复
代码示例
from langgraph.graph import StateGraph, END
def analyze(state):
"""分析用户需求"""
return {"complexity": assess_complexity(state["query"])}
def route(state):
"""根据复杂度路由"""
if state["complexity"] > 0.7:
return "complex"
return "simple"
graph = StateGraph(AgentState)
graph.add_node("analyze", analyze)
graph.add_node("simple", handle_simple)
graph.add_node("complex", handle_complex)
graph.add_conditional_edges("analyze", route, {
"simple": "simple",
"complex": "complex",
})
graph.add_edge("simple", END)
graph.add_edge("complex", END)
app = graph.compile()
result = app.invoke({"query": "Build a REST API"})
适合场景
- 需要精确控制工作流流转的复杂业务
- 需要人机交互的审批流程
- 需要状态持久化和恢复的长时任务
CrewAI:角色协作框架
核心概念
CrewAI 模拟人类团队协作:每个 Agent 有角色、目标和背景故事。
研究员 Agent → 收集信息
↓
作家 Agent → 撰写内容
↓
审校 Agent → 质量检查
↓
最终输出
关键特性
- 角色定义:给 Agent 设定专业身份
- 任务委派:Agent 之间可以互相委托任务
- 流程类型:顺序(Sequential)、层级(Hierarchical)
- 工具共享:团队内共享工具集
代码示例
from crewai import Agent, Task, Crew
researcher = Agent(
role="市场研究员",
goal="收集关于 AI Agent 市场的最新信息",
backstory="你是一名资深市场分析师,擅长发现行业趋势",
tools=[search_tool, web_scraper],
)
writer = Agent(
role="技术作家",
goal="将研究结果整理成易懂的报告",
backstory="你是一名技术写作者,擅长把复杂概念讲清楚",
)
research_task = Task(
description="研究 2026 年 AI Agent 市场趋势",
agent=researcher,
)
write_task = Task(
description="基于研究结果撰写市场报告",
agent=writer,
)
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
process=Process.sequential,
)
result = crew.kickoff()
适合场景
- 多角色协作的内容创作
- 需要"人类团队"模式的项目管理
- 快速原型和 MVP
AutoGen:微软多 Agent 对话框架
核心概念
AutoGen 围绕对话构建多 Agent 系统,Agent 之间通过消息传递协作。
关键特性
- 人类代理(Human Proxy):人类可以随时加入对话
- 代码执行:Agent 自动生成和执行代码
- 群聊:多个 Agent 在一个聊天中协作
- 可组合:灵活组合不同的 Agent 类型
适合场景
- 研究和探索性任务
- 需要人类随时介入的场景
- 代码生成和执行
MetaGPT:软件团队模拟
核心概念
MetaGPT 模拟一个完整的软件开发团队:产品经理→架构师→工程师→QA,每个角色由 Agent 扮演。
[产品经理 Agent] → 输出 PRD
↓
[架构师 Agent] → 输出技术设计
↓
[工程师 Agent] → 输出代码
↓
[QA Agent] → 输出测试用例
关键特性
- SOP 驱动:标准操作流程确保输出质量
- 角色专业化:每个 Agent 有明确的职责和输出格式
- 完整软件流程:从需求到代码到测试
适合场景
- 端到端软件开发自动化
- 代码生成和项目脚手架
- 需要结构化输出的开发任务
Dify:可视化 Agent 构建平台
核心概念
Dify 是一个低代码/无代码的 LLM 应用构建平台,提供拖拽式工作流编辑器。
关键特性
- 可视化编辑:拖拽节点构建工作流
- RAG 流水线:内置文档索引和检索
- 多模型支持:接入 OpenAI、Claude、Gemini 等
- 一键部署:内置 API 和 Web 应用
- 中国市场友好:中国团队开发,社区活跃
适合场景
- 不写代码构建 AI 应用
- 快速搭建 RAG 系统
- 企业内部 AI 工具平台
选型建议
按使用方式
| 你想要… | 推荐 |
|---|---|
| 精确控制工作流 | LangGraph |
| 模拟团队协作 | CrewAI |
| 研究和对话式探索 | AutoGen |
| 自动生成完整项目 | MetaGPT |
| 不写代码构建应用 | Dify |
按技术背景
| 背景 | 推荐 |
|---|---|
| Python 开发者 | LangGraph 或 CrewAI |
| 研究人员 | AutoGen |
| 非技术人员 | Dify |
| 全栈团队 | LangGraph + Dify |
生态趋势
2025-2026 年的 Agent 框架生态呈现以下趋势:
- 从单 Agent 到多 Agent——框架都在支持多 Agent 协作
- 从代码到可视化——Dify、Langflow 等提供拖拽界面
- 从实验到生产——关注可靠性、可观测性和安全性
- 协议标准化——MCP、A2A 等协议推动互操作性
- 评估体系化——SWE-bench、DeepEval 等评估工具成熟