crewai_mcp_course 介绍
一、名称拆解
- CrewAI:当下最主流的多智能体协作框架,核心三要素:
Agent(角色智能体)、Task(任务)、Crew(智能体团队),用来搭建分工协作的AI工作流(比如研究员+撰稿人分工写文章)。 - MCP = Model Context Protocol(模型上下文协议):CrewAI 官方标准工具协议,统一让智能体调用外部工具、本地服务、远程接口、数据库,不用手写复杂工具封装;新增
mcps参数一键挂载外部工具服务。 - crewai_mcp_course:一套由浅入深的实战课程代码集,专门教你从 CrewAI 基础,到 MCP 工具集成的完整开发流程。
二、价值
- 递进式学习,无跳跃
先掌握CrewAI多智能体底层逻辑,再引入MCP标准化工具方案,避开新手“只会抄代码不懂原理”的问题。 - 统一适配任意大模型(DeepSeek/OpenAI/Ollama通吃)
代码全部支持切换LLM,你现在配置的Windows全局OPENAI_API_KEY/OPENAI_BASE_URL可全课程通用。 - MCP是未来标准,不用重复造轮子
传统CrewAI自定义工具需要写大量schema代码;MCP协议标准化后,一行配置挂载整套工具服务,大幅降低多工具开发成本。 - 全可运行源码
每个lesson独立完整demo,不用自己拼接代码,你当前环境一键安装依赖即可跑通。
三、CrewAI框架
Agent智能体(执行单元)
每个 Agent 是独立 AI 角色,为框架核心执行单元,包含四个必填属性:
role:智能体身份,如 AI 研究员、文案、测试工程师等,定义岗位定位goal:该智能体的核心工作目标,明确核心任务方向backstory:人设背景,决定 AI 的回答风格、专业深度与思维逻辑llm:绑定大模型,支持直接填写模型名字符串,自动读取全局环境变量
额外扩展能力:可绑定 tools 工具、开启 memory 上下文记忆、设置 max_iter 最大思考轮次。verbose:控制智能体的详细日志输出开关
Task任务(工作单元)
分配给 Agent 的具体工作,用于严格约束 AI 的输出内容、格式与规范,是具体业务载体,核心属性如下:
description:任务详细需求,包含主题、需要覆盖的要点、各类限制条件expected_output:规定最终输出的格式、字数、结构、规范要求agent:指定负责执行当前任务的专属智能体
任务执行结果会自动流转传递给下一个任务或智能体,实现多步骤业务流程串联。
Crew团队(调度容器)
用于打包整合多个 Agent 智能体与 Task 任务,是整个项目的调度容器与程序运行入口,核心属性与方法:
agents:智能体列表,存放所有参与协作的 AI 角色tasks:任务列表,存放整套业务的所有执行任务process:定义整体任务的执行调度模式
启动入口方法:crew.kickoff(),一键触发整套 AI 团队协作流程。
Process执行调度模式
CrewAI内置三种主流任务调度策略,适配不同业务场景:
Process.sequential串行:任务按顺序依次执行,上一个任务的输出结果自动传递给下一个任务,流程线性递进Process.parallel并行:多个无依赖的任务同时运行,提升整体执行效率Process.hierarchical分层管理:框架自动生成管理型 Agent,智能动态分配、调度子任务,适配复杂大型项目
Tools / MCP工具能力
为 AI 智能体拓展外部能力,打破纯文本生成限制,是智能体落地实用场景的核心:
- 原生
Tools:支持自定义 Python 函数工具,让 AI 实现联网搜索、读写文件、调用第三方接口、数据计算等外部操作 MCP(Model Context Protocol):本课程核心进阶重点,标准化工具服务协议,可一行配置批量挂载整套工具服务,无需手动编写大量工具代码,极大简化智能体工具开发流程
Lesson 学习
Lesson 01:CrewAI 基础入门
-
核心知识点:
- 定义
Agent:role角色、goal目标、backstory人设背景、绑定LLM模型 - 定义
Task:给智能体分配具体工作、输出要求 - 组装
Crew:把多个Agent+Task组成团队,设置执行模式(顺序执行Process.sequential)
- 定义
-
示例场景:研究员智能体 + 文案智能体,分工完成AI行业调研报告
-
报错兼容说明:新版CrewAI不支持直接传入LangChain ChatOpenAI对象,两种解决方式:
- 最简:
llm="deepseek-chat"字符串写法,自动读取系统全局DeepSeek环境变量 - 兼容:用
CrewAIModel包装LangChain LLM实例
CrewAI 最小运行公式:
1.导入模块
2.新建 Agent(员工)
3.新建 Task(工作)
4.组装 Crew 并启动(需要指定调度模式) - 最简:
根据源码了解完了操作流程,开始实操,我们自行实现一个场景
练习场景:AI 职场周报生成小团队
场景设定
公司有两名AI员工:
- 数据收集专员:负责整理本周工作内容、项目进度、遇到的问题
- 周报撰稿专员:根据收集到的素材,整理成规范、简洁的职场周报,分模块输出
任务分配
任务1(交给数据收集专员)
任务描述:整理软件开发岗位本周工作内容,包含3部分:
- 本周完成的开发需求
- 当前未完成、待推进的事项
- 开发过程遇到的技术难点
输出要求:纯素材清单,不用润色,分点罗列,简洁直白。
任务2(交给周报撰稿专员)
任务描述:读取上一步收集的全部工作素材,生成标准职场周报,结构分为:本周完成工作、待办计划、问题与解决方案。
输出要求:正式职场文风,篇幅控制在300字以内,条理清晰。
执行规则
执行模式:串行 Process.sequential
先执行收集素材任务,再用素材生成周报,自动传递上一步结果。
Agent基础参考参数(自行填写role/goal/backstory)
- Agent1:数据收集专员
- Agent2:周报撰稿专员
llm统一使用deepseek-chat
完成要求
- 完整写出导入、2个Agent、2个Task、Crew组装、kickoff运行整套代码
- 在本地根目录执行运行:
python crewai_mcp_course/lesson_01/self_demo.py
Demo
# 1.导入
from crewai import Agent,Task,Process,Crew
# 2.模型
llm="deepseek-chat"
# 3.两个Agent
# 3.1 数据收集专员
data_member=Agent(
role="开发数据收集专员",
goal="收集整理本周工作",
backstory="熟悉开发工作流程,擅长梳理工作",
llm=llm,
verbose=True
)
# 3.2 周报撰稿专员
weekly_member=Agent(
role="周报撰稿专员",
goal="汇总撰写本周工作",
backstory="熟悉开发工作流程,擅长整合撰写内容",
llm=llm,
verbose=True
)
# 4.两个任务
# 4.1 数据收集任务
data_task=Task(
description="整理软件开发岗位本周工作内容,必须包含三部分:1.本周完成开发需求;2.待推进未完成事项;3.开发遇到的技术难点,只输出纯素材清单,分点罗列,无需润色",
expected_output="简洁分点工作素材,无多余修饰文字",
agent=data_member
)
# 4.2 周报汇总任务
weekly_task=Task(
description="参考上一步收集的全部工作素材,生成标准职场周报,分为三大模块:本周完成工作、待办计划、问题与解决方案,正式职场文风,全文控制300字以内,条理清晰",
expected_output = "规范结构化职场周报,分段清晰,语言正式简洁",
agent=weekly_member,
context=[data_task] # 读取上一个任务输出作为上下文
)
# 5. Crew 组装
crew = Crew(
agents=[data_member,weekly_member],
tasks=[data_task,weekly_task],
process =Process.sequential,
verbose=True
)
# 6.启动
if __name__ == "__main__":
result=crew.kickoff()
print("=====最终周报结果=====")
print(result)




Lesson 02:Tools 自定义工具基础
- 学会给智能体增加搜索、计算、文件读写工具;
- 理解工具调用逻辑,Agent自主判断什么时候调用工具。
Lesson 03:MCP 协议基础
- 弄懂MCP客户端/服务端架构;
- 本地启动简易MCP服务,让CrewAI Agent通过
mcps=[本地MCP地址]自动加载全部工具,无需手动注册工具函数。

722

被折叠的 条评论
为什么被折叠?



