CrewAI:让Agent像团队一样协作

LangChain适合单个Agent或简单的多Agent场景。但如果你要搭建一个"Agent团队",每个Agent有明确的角色和职责,CrewAI是更好的选择。

CrewAI的核心理念:模拟人类团队的工作方式。

想象一个产品开发团队:产品经理负责需求分析,工程师负责写代码,测试负责质量保证。每个人有自己的专长,大家协作完成项目。CrewAI就是把这个模式搬到了Agent世界。

2024-2025年,CrewAI的GitHub星标从几千涨到了44.5K,成为多Agent协作领域的领军框架。为什么发展这么快?因为它解决了一个真实痛点:复杂任务需要分工协作。

一个简单的团队协作例子

我们来模拟一个产品开发团队,用三个Agent协作完成一个项目。

"""
CrewAI风格的多Agent协作示例 (代码为模拟示例)
模拟产品开发团队:产品经理 + 工程师 + 测试
"""
from typing import List, Dict
from openai import OpenAI


class CrewMember:
    """团队成员Agent"""
    
    def __init__(self, role: str, expertise: str):
        self.role = role
        self.expertise = expertise
        self.client = OpenAI(
            api_key="ollama",
            base_url="http://localhost:11434/v1"
        )
        self.model = "qwen3:latest"
    
    def work(self, task: str) -> str:
        """执行任务"""
        prompt = f"""
你是一个{self.role},专长是{self.expertise}。

任务: {task}

请根据你的专业知识完成这个任务。
"""
        
        response = self.client.chat.completions.create(
            model=self.model,
            messages=[{"role": "user", "content": prompt}]
        )
        
        return response.choices[0].message.content


class Crew:
    """Agent团队"""
    
    def __init__(self, members: List[CrewMember]):
        self.members = members
    
    def collaborate(self, project: str) -> Dict[str, str]:
        """团队协作完成项目"""
        results = {}
        
        print(f"\n🎯 项目: {project}\n")
        print(f"👥 团队成员: {len(self.members)}人\n")
        
        for member in self.members:
            print(f"👤 {member.role} 开始工作...")
            result = member.work(project)
            results[member.role] = result
            print(f"✅ {member.role} 完成\n")
        
        return results


# 使用示例
if __name__ == "__main__":
    # 创建团队
    crew = Crew([
        CrewMember("产品经理", "需求分析和产品设计"),
        CrewMember("开发工程师", "代码实现"),
        CrewMember("测试工程师", "质量保证")
    ])
    
    # 协作完成项目
    results = crew.collaborate("开发一个待办事项应用")
    
    print("\n📊 项目成果:")
    for role, result in results.items():
        print(f"\n{role}的贡献:")
        print(result[:200] + "...")

这个例子展示了什么?

每个Agent有明确的角色(产品经理、工程师、测试),各自完成自己的部分,最后汇总成完整的项目成果。这就是CrewAI的核心思想。

实际使用CrewAI框架会更简单,它提供了现成的角色模板、任务分配机制、结果聚合等功能。上面的代码只是演示概念。

CrewAI适合什么场景?

  • ✅ 需要多个专业角色协作的复杂任务

  • ✅ 任务可以明确分工的场景

  • ✅ 需要模拟人类团队工作流程

  • ❌ 简单的单Agent任务(用LangChain更轻量)

AutoGPT:自主规划执行的先驱

AutoGPT在2023年火爆全网,182K的GitHub星标让它成为Agent领域的现象级项目。值得注意的是,AutoGPT已经从最初的Python脚本项目转型为AutoGPT Platform——一个可视化的Agent构建和部署平台,产品形态发生了根本性变化。它提出的"目标驱动、自主规划"理念深刻影响了整个行业。

AutoGPT的核心思路:

给Agent一个目标,它自己分解任务、执行任务、检查结果、继续执行,直到完成目标。不需要你一步步指导,它自己搞定。

一个简化的AutoGPT风格实现

"""
AutoGPT风格的自主Agent(代码为模拟示例)
给它一个目标,它自己规划和执行
"""
from typing import List
from openai import OpenAI


class AutoAgent:
    """自主Agent - 目标驱动"""
    
    def __init__(self, goal: str):
        self.goal = goal
        self.tasks: List[str] = []
        self.completed_tasks: List[str] = []
        self.client = OpenAI(
            api_key="ollama",
            base_url="http://localhost:11434/v1"
        )
        self.model = "qwen3:latest"
    
    def plan_tasks(self) -> List[str]:
        """根据目标规划任务"""
        prompt = f"""
目标: {self.goal}

请将这个目标分解为3-5个具体的、可执行的子任务。
每个任务应该是独立的、明确的。

返回格式:
1. [任务1]
2. [任务2]
...
"""
        
        response = self.client.chat.completions.create(
            model=self.model,
            messages=[{"role": "user", "content": prompt}]
        )
        
        # 解析任务列表
        content = response.choices[0].message.content
        tasks = []
        for line in content.split('\n'):
            if line.strip() and line[0].isdigit():
                task = line.split('.', 1)[1].strip()
                tasks.append(task)
        
        self.tasks = tasks
        return tasks
    
    def execute_task(self, task: str) -> str:
        """执行单个任务"""
        prompt = f"""
当前目标: {self.goal}
已完成的任务: {', '.join(self.completed_tasks) if self.completed_tasks else '无'}

现在要执行: {task}

请描述如何执行这个任务,并给出结果。
"""
        
        response = self.client.chat.completions.create(
            model=self.model,
            messages=[{"role": "user", "content": prompt}]
        )
        
        result = response.choices[0].message.content
        self.completed_tasks.append(task)
        return result
    
    def run(self, max_iterations: int = 5):
        """运行Agent - 自主规划和执行"""
        print(f"\n🎯 目标: {self.goal}\n")
        
        # 第一步:规划任务
        print("📋 正在规划任务...")
        tasks = self.plan_tasks()
        for i, task in enumerate(tasks, 1):
            print(f"  {i}. {task}")
        
        # 第二步:执行任务
        print("\n⚙️ 开始执行任务...\n")
        for i, task in enumerate(tasks[:max_iterations], 1):
            print(f"任务 {i}/{len(tasks)}: {task}")
            result = self.execute_task(task)
            print(f"✅ 完成: {result[:150]}...\n")
        
        print("🎉 所有任务完成!")


# 使用示例
if __name__ == "__main__":
    # 给它一个目标,它自己搞定
    agent = AutoAgent(goal="学习Python编程基础")
    agent.run(max_iterations=3)

AutoGPT的优势和局限:

优势:

  • ✅ 高度自主,不需要人工干预

  • ✅ 适合长时间运行的任务

  • ✅ 能自己分解复杂目标

局限:

  • ❌ 容易"跑偏",需要好的目标设定

  • ❌ 成本高,会调用很多次LLM

  • ❌ 可控性差,不知道它会做什么

实际使用建议:AutoGPT风格适合探索性任务,但生产环境中更推荐可控的工作流(如LangGraph)。

框架选择指南

看完这么多框架,到底该选哪个?先按类型确定方向,再按具体需求选择:

按类型选

你要做的事

选择类型

推荐框架

写Agent代码(大部分情况)

通用SDK

LangChain、CrewAI、AG2

特定场景深度优化

专用框架

browser-use、LlamaIndex、mem0、Letta

Agent运行和管理

基础设施

Agno、Composio

探索自主Agent

实验性

AutoGPT

按具体需求选

你的情况

推荐框架

分类

刚开始学Agent

LangChain

通用SDK

需要复杂状态流转 / 条件分支

LangGraph

通用SDK

多个Agent角色协作

CrewAI 或 AG2

通用SDK

类型安全、结构化输出

PydanticAI

通用SDK

使用开源模型

Smolagents

通用SDK

浏览器自动化 / Web操作 browser-use

专用框架

数据密集 / RAG LlamaIndex

专用框架

轻量级Agent记忆 mem0

专用框架

需要长期跨会话记忆 Letta

专用框架

生产级Agent部署和管理 Agno

基础设施

需要大量外部工具集成 Composio

基础设施

企业级 / .NET技术栈

Semantic Kernel

通用SDK

快速验证自主规划想法

AutoGPT Platform

实验性

框架之间的核心差异

维度

高抽象(CrewAI、AutoGPT)

中间层(LangChain)

低抽象(LangGraph、原生SDK)

上手速度

快,几行代码跑起来

中等

慢,需理解图结构

可控性

中等

完全可控

定制化

困难

灵活

任意定制

适合场景

快速验证

大部分生产场景

复杂工作流

执行模式上,2026年主流已从链式调用转向图结构编排(LangGraph、Google ADK),支持并行、条件分支和循环;AG2则采用多Agent对话驱动的模式。

三条核心原则:

  1. 可控性 > 自主性:生产环境避免完全自主的AutoGPT风格,优先选LangGraph这类可追踪状态的框架

  2. 可观测性是刚需:LangChain + LangSmith目前在日志追踪、性能监控上最成熟

  3. 锁定版本:LangChain迭代快,requirements.txt中指定具体版本,重要项目不追最新

核心结论:没有"最好"的框架,只有"最合适"的框架。 不确定的话,从LangChain入手——生态最完整、资料最多,学会后切换其他框架很快。

总结

上下两篇文章,我们分析了Agent框架的四大类型(通用SDK、专用框架、基础设施、实验性项目),并深入学习了LangChain、CrewAI、AutoGPT等代表性框架。

选择框架的核心原则

  1. 任务复杂度决定是否需要框架

  2. 团队技能和场景决定选哪个框架

  3. 可控性和可维护性比自主性更重要

2026年的趋势

  • 图结构编排成为主流(LangGraph、Google ADK)

  • 每个大厂都有自己的框架

  • 可观测性和评估成为标配

  • 框架从"方便开发"走向"保证质量"

  • 浏览器Agent爆发:browser-use等框架让AI能像人一样操作网页,Web自动化成为Agent最热门的应用场景

  • AgentOS兴起:Agno等框架提供完整的Agent运行时,包括隔离、治理、追踪,标志着Agent从SDK走向操作系统

  • Agent技术产品化:像OpenClaw(23万+ stars)这样的个人AI助手产品涌现,让普通用户无需编码即可拥有自己的Agent,标志着Agent从开发者工具走向消费级产品

前面八篇文章,我们从零搭建了Agent的各个组件。现在你知道了,这些组件都有现成的框架实现。什么时候自己写、什么时候用框架,这是一个工程判断问题。

下一篇,我们会深入多Agent系统,看看多个Agent怎么协作、通信、分工,完成单个Agent做不到的复杂任务。


下一篇预告:《多Agent系统:1+1>2的协作艺术》

我们会讲:

  • 多Agent系统的架构模式

  • Agent之间的通信机制

  • 任务分配和协调策略

  • 实战案例:搭建一个完整的多Agent系统

继续加油! 💪

📚 相关资源链接

主流框架官方资源

LangChain 生态

  • LangChain 官方文档 (https://python.langchain.com/)

  • LangChain GitHub (https://github.com/langchain-ai/langchain)

  • LangGraph 官方文档(https://langchain-ai.github.io/langgraph/)

  • LangGraph GitHub (https://github.com/langchain-ai/langgraph)

  • LangSmith 平台 - Agent监控和调试 (https://smith.langchain.com/)

CrewAI

  • CrewAI 官方文档 (https://docs.crewai.com/)

  • CrewAI GitHub (https://github.com/crewAIInc/crewAI)

  • CrewAI 官网 (https://www.crewai.com/)

LlamaIndex

  • LlamaIndex 官方文档 (https://docs.llamaindex.ai/)

  • LlamaIndex GitHub (https://github.com/run-llama/llama_index)

AutoGPT

  • AutoGPT GitHub (https://github.com/Significant-Gravitas/AutoGPT)

  • AutoGPT 官方文档 (https://docs.agpt.co/)

BabyAGI

  • BabyAGI GitHub (https://github.com/yoheinakajima/babyagi)

企业级框架

Microsoft AutoGen

  • AutoGen 官方文档 (https://microsoft.github.io/autogen/)

  • AutoGen GitHub (https://github.com/microsoft/autogen)

Microsoft Semantic Kernel

  • Semantic Kernel 官方文档 (https://learn.microsoft.com/en-us/semantic-kernel/)

  • Semantic Kernel GitHub (https://github.com/microsoft/semantic-kernel)

Letta (原 MemGPT)

  • Letta 官方文档 (https://docs.letta.com/)

  • Letta GitHub (https://github.com/letta-ai/letta)

新兴框架

PydanticAI

  • PydanticAI 官方文档 (https://ai.pydantic.dev/)

  • PydanticAI GitHub (https://github.com/pydantic/pydantic-ai)

HuggingFace Smolagents

  • Smolagents GitHub (https://github.com/huggingface/smolagents)

  • Smolagents 文档 (https://huggingface.co/docs/smolagents)

Google ADK

  • Google ADK GitHub (https://github.com/google/adk-python)

OpenAI Agents SDK (演变自Swarm)

  • OpenAI Agents SDK 文档 (https://openai.github.io/openai-agents-python/)

  • OpenAI Agents SDK GitHub (https://github.com/openai/openai-agents-python)

Anthropic Claude Agent SDK (专为代码执行类Agent设计)

  • Claude Agent SDK Python (https://github.com/anthropics/claude-agent-sdk-python)

  • Claude Agent SDK TypeScript (https://github.com/anthropics/claude-agent-sdk-typescript)

  • Anthropic 官方文档 (https://docs.anthropic.com/)

其他有用资源

Haystack

  • Haystack 官方文档 (https://haystack.deepset.ai/)

  • Haystack GitHub (https://github.com/deepset-ai/haystack)

DSPy

  • DSPy GitHub (https://github.com/stanfordnlp/dspy)

  • DSPy 文档 (https://dspy-docs.vercel.app/)

CAMEL-AI

  • CAMEL-AI GitHub (https://github.com/camel-ai/camel)

  • CAMEL-AI 文档 (https://www.camel-ai.org/)

学习资源

  • LangChain State of Agent Engineering 报告 (https://www.langchain.com/state-of-agent-engineering)

  • AI Agent Tools Landscape 2026 (https://www.stackone.com/blog/ai-agent-tools-landscape-2026)


提示:以上链接中的GitHub星标数据截至2026年2月底,实际数据每天都在变化。建议访问GitHub页面查看最新数据。

最后

从0到1!大模型(LLM)最全学习路线图,建议收藏!

想入门大模型(LLM)却不知道从哪开始? 我根据最新的技术栈和我自己的经历&理解,帮大家整理了一份LLM学习路线图,涵盖从理论基础到落地应用的全流程!拒绝焦虑,按图索骥~~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐