← 返回资讯
陈默
AI 行业分析师
已审核

AI Agent 框架对比:LangChain vs CrewAI vs AutoGen,我选了最冷门的那个

2026 年,AI Agent 框架百花齐放。我花了两个月时间测试了 5 个主流框架,最终选了一个很多人没听过的。

AI Agent 框架对比:LangChain vs CrewAI vs AutoGen,我选了最冷门的那个

AI Agent 框架对比:LangChain vs CrewAI vs AutoGen,我选了最冷门的那个

2026 年,AI Agent 框架百花齐放。我花了两个月时间测试了 5 个主流框架,最终选了一个很多人没听过的。

测试框架

| 框架 | Stars | 语言 | 特点 |

|------|-------|------|------|

| LangChain | 100K+ | Python/JS | 生态最全 |

| CrewAI | 25K+ | Python | 多 Agent 协作 |

| AutoGen | 35K+ | Python | 微软出品 |

| LlamaIndex | 40K+ | Python/JS | RAG 专精 |

| DSPy | 15K+ | Python | 编程式 Prompt |

测试项目

我用同一个项目测试所有框架:AI 客服系统

功能需求:

1. 理解用户问题

2. 查询知识库

3. 调用 API 获取订单信息

4. 生成回复

5. 处理投诉升级

LangChain

代码示例

PYTHON
from langchain.agents import create_react_agent, AgentExecutor
from langchain.tools import Tool
from langchain_openai import ChatOpenAI

# 定义工具
def search_knowledge_base(query: str) -> str:
    """搜索知识库"""
    # 实现搜索逻辑
    return results

def get_order_info(order_id: str) -> str:
    """获取订单信息"""
    # 实现 API 调用
    return order_data

tools = [
    Tool(name="search_kb", func=search_knowledge_base, description="搜索知识库"),
    Tool(name="get_order", func=get_order_info, description="获取订单信息"),
]

# 创建 Agent
llm = ChatOpenAI(model="gpt-4")
agent = create_react_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools)

# 运行
result = executor.invoke({"input": "我的订单 #12345 什么时候到?"})

评价

优点

缺点

适合:快速原型,简单 Agent

CrewAI

代码示例

PYTHON
from crewai import Agent, Task, Crew

# 定义 Agent
researcher = Agent(
    role="知识库研究员",
    goal="准确回答用户的技术问题",
    backstory="你是一个经验丰富的技术支持专家",
    tools=[search_kb_tool],
    llm="gpt-4"
)

order_specialist = Agent(
    role="订单专员",
    goal="查询和处理订单相关问题",
    backstory="你是一个细心的订单处理专家",
    tools=[get_order_tool],
    llm="gpt-4"
)

manager = Agent(
    role="客服经理",
    goal="协调团队处理复杂投诉",
    backstory="你是一个经验丰富的客服经理",
    llm="gpt-4"
)

# 定义任务
research_task = Task(
    description="搜索知识库回答:{question}",
    agent=researcher,
    expected_output="知识库中的相关信息"
)

order_task = Task(
    description="查询订单 {order_id} 的状态",
    agent=order_specialist,
    expected_output="订单详细信息"
)

response_task = Task(
    description="根据收集的信息生成回复",
    agent=manager,
    expected_output="给用户的回复"
)

# 创建团队
crew = Crew(
    agents=[researcher, order_specialist, manager],
    tasks=[research_task, order_task, response_task],
    process="sequential"
)

# 运行
result = crew.kickoff(inputs={
    "question": "我的订单什么时候到?",
    "order_id": "12345"
})

评价

优点

缺点

适合:多角色协作场景

AutoGen

代码示例

PYTHON
from autogen import AssistantAgent, UserProxyAgent

# 创建 Agent
assistant = AssistantAgent(
    name="assistant",
    llm_config={"model": "gpt-4"},
    system_message="你是一个 AI 客服助手。"
)

order_agent = AssistantAgent(
    name="order_agent",
    llm_config={"model": "gpt-4"},
    system_message="你是订单查询专家。",
    code_execution_config=False
)

user_proxy = UserProxyAgent(
    name="user_proxy",
    human_input_mode="NEVER",
    code_execution_config={"work_dir": "coding"},
    is_termination_msg=lambda x: x.get("content", "").rstrip().endswith("TERMINATE")
)

# 注册函数
@user_proxy.register_for_execution()
@order_agent.register_for_llm(name="get_order", description="获取订单信息")
def get_order(order_id: str) -> dict:
    # 实现 API 调用
    return {"status": "shipped", "eta": "2026-07-15"}

# 创建群组
groupchat = autogen.GroupChat(
    agents=[user_proxy, assistant, order_agent],
    messages=[],
    max_round=10
)

manager = autogen.GroupChatManager(groupchat=groupchat)

# 运行
user_proxy.initiate_chat(
    manager,
    message="我的订单 #12345 什么时候到?"
)

评价

优点

缺点

适合:研究项目,复杂对话

LlamaIndex

代码示例

PYTHON
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.core.agent import ReActAgent
from llama_index.core.tools import QueryEngineTool

# 加载知识库
documents = SimpleDirectoryReader("knowledge_base").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()

# 创建工具
kb_tool = QueryEngineTool(
    query_engine=query_engine,
    metadata=ToolMetadata(
        name="knowledge_base",
        description="搜索产品知识库"
    )
)

# 创建 Agent
agent = ReActAgent.from_tools(
    [kb_tool, order_tool],
    llm=OpenAI(model="gpt-4"),
    verbose=True
)

# 运行
response = agent.chat("我的订单 #12345 什么时候到?")

评价

优点

缺点

适合:知识库问答,RAG 场景

DSPy

代码示例

PYTHON
import dspy

# 配置
lm = dspy.OpenAI(model="gpt-4")
dspy.settings.configure(lm=lm)

# 定义签名
class CustomerService(dspy.Signature):
    """AI 客服助手"""
    question = dspy.InputField(desc="用户问题")
    context = dspy.InputField(desc="相关知识库内容")
    order_info = dspy.InputField(desc="订单信息(如有)")
    answer = dspy.OutputField(desc="给用户的回复")

# 定义模块
class CustomerServiceAgent(dspy.Module):
    def __init__(self):
        self.retrieve = dspy.Retrieve(k=3)
        self.generate = dspy.ChainOfThought(CustomerService)
    
    def forward(self, question, order_id=None):
        # 检索知识库
        context = self.retrieve(question).passages
        
        # 获取订单信息
        order_info = get_order_info(order_id) if order_id else "无"
        
        # 生成回复
        result = self.generate(
            question=question,
            context=context,
            order_info=order_info
        )
        
        return result.answer

# 运行
agent = CustomerServiceAgent()
response = agent("我的订单什么时候到?", order_id="12345")

评价

优点

缺点

适合:需要精确控制 Prompt 的场景

最终选择

经过两个月的测试,我最终选择了 DSPy

为什么选 DSPy

1. 可测试性:每个模块都可以独立测试

2. 可组合性:像搭积木一样组合功能

3. 自动优化:可以自动优化 Prompt

4. 类型安全:输入输出都有明确定义

生产环境配置

PYTHON
import dspy
from dspy.teleprompt import BootstrapFewShot

# 配置生产 LLM
lm = dspy.OpenAI(
    model="gpt-4",
    max_tokens=2000,
    temperature=0.1
)
dspy.settings.configure(lm=lm)

# 准备训练数据
trainset = [
    dspy.Example(
        question="退货政策是什么?",
        answer="我们提供 30 天无理由退货..."
    ).with_inputs("question"),
    # 更多样本...
]

# 优化 Agent
optimizer = BootstrapFewShot(metric=customer_service_metric)
optimized_agent = optimizer.compile(CustomerServiceAgent(), trainset=trainset)

# 保存优化后的 Agent
optimized_agent.save("production_agent.json")

总结

| 框架 | 推荐场景 | 不推荐场景 |

|------|---------|-----------|

| LangChain | 快速原型 | 生产环境 |

| CrewAI | 多角色协作 | 简单任务 |

| AutoGen | 研究项目 | 时间紧迫 |

| LlamaIndex | RAG 应用 | 非知识库场景 |

| DSPy | 生产环境 | 快速原型 |

我的建议


测试时间:2026年5月-7月

测试项目:AI 客服系统

代码行数:约 15,000 行

#AIAgent #LangChain #CrewAI #DSPy #框架对比

887
14788 阅读
2 评论
分享
链接已复制
编辑说明

本文由 MakeSense 编辑团队撰写并审核。文中引用的数据和观点均经过交叉验证,如有疏漏欢迎在评论区指正。最后更新:2026年07月10日 17:52

陈默

AI 行业分析师

前某大厂 AI 实验室研究员,关注大模型技术演进和商业化落地。写过 200+ 篇行业分析,擅长从产品视角拆解技术趋势。

读者评论 2

A
AI研究员 1周前
观点有道理,不过我觉得还需要考虑算力成本的问题。
回复 点赞 (11)
M
创业者Mark 1周前
正在做相关方向,这篇文章给了我不少启发。
回复 点赞 (7)