参透 CrewAI 底层逻辑,攻克多 Agent 落地难题
本仓库是《企业级多智能体设计实战》在线视频课程的配套示例代码仓库。
这是一门专为致力于构建生产级、高可靠 AI 应用的研发人员和架构师设计的实战课程。 如果对课程或者代码有疑问,欢迎通过我的个人微信加入微信群一起学习讨论: bmagician
✅ 无需魔法,低成本上手:全程兼容 DeepSeek、Kimi、通义千问等国内优质大模型接口
✅ 真实生产级案例:拒绝"贪吃蛇"类玩具案例,提供贴近真实生产环境的场景
✅ 架构思维优先:不是框架使用手册,而是 AI 时代的"建筑学"
✅ 工程化实践:测试评估、可观测性、容灾设计等生产级治理体系
建立 AI 应用开发的全局认知框架,理解从 Prompt 到 Multi-Agent 的底层演进逻辑。
从零开始构建生产级的多智能体系统,掌握工具集成、上下文管理、协作设计模式。
从技术实现转向生产交付,关注需求分析、测试评估、可观测性、合规治理。
crewai_mas_demo/ ├── requirements.txt # Python 依赖包列表 │ ├── llm/ # 自定义 LLM 实现(课程06) │ ├── __init__.py # 模块初始化 │ ├── aliyun_llm.py # 阿里云通义千问 LLM 实现(核心组件) │ └── test_*.py # LLM 测试用例 │ ├── tools/ # 自定义工具(课程13) │ ├── __init__.py # 模块初始化 │ ├── baidu_search.py # 百度搜索工具(课程13示例) │ ├── intermediate_tool.py # 中间结果保存工具(课程07辅助工具) │ ├── add_image_tool_local.py # 本地图片加载工具(课程10核心工具) │ ├── fixed_directory_read_tool.py # 目录读取工具(课程13示例) │ └── test_*.py # 工具测试用例 │ ├── m1l2/ # 课程02、07示例代码 │ ├── m1l2_agent.py # 单 Agent 调研示例(课程07) │ ├── m1l2_raw_agent.py # 原生 Agent 实现(课程02) │ └── *.md # 示例输出文件 │ ├── m1l3/ # 课程09示例代码 │ ├── m1l3_multi_agent.py # Multi-Agent 协作示例 │ └── *.md # 示例输出文件 │ ├── m2l2/ # 课程06示例代码 │ └── m2l2_llm_openai.py # LLM 配置示例 │ ├── m2l3/ # 课程07示例代码 │ └── m2l3_agent.py # Agent 直接执行任务示例 │ ├── m2l4/ # 课程08示例代码 │ └── m2l4_task.py # Task 定义与结构化输出示例 │ ├── m2l5/ # 课程09示例代码 │ └── m2l5_crew.py # Sequential Process 多任务执行示例 │ ├── m2l6/ # 课程10示例代码 │ └── m2l6_agent.py # 多模态视觉分析示例 │ ├── m2l8/ # 课程19示例代码 │ ├── m2l8_context.py # API 请求级上下文管理 │ └── m2l8_tools_call.py # 工具调用 Hook 示例 │ ├── m2l9/ # 课程14示例代码 │ └── m2l9_mcp.py # MCP 服务器集成示例 │ └── (定稿)上线素材|企业级多智能体设计实战.md # 课程大纲
💡 提示:本课程全程使用国内可访问的大模型接口,无需科学上网。
# 1. 克隆仓库
git clone <repository-url>
cd crewai_mas_demo
# 2. 创建虚拟环境(推荐)
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# 或 venv\Scripts\activate # Windows
# 3. 安装依赖
pip install -r requirements.txt
# 4. 配置 API Key(二选一)
# 方式一:环境变量(推荐)
export QWEN_API_KEY="your-qwen-api-key-here"
export BAIDU_API_KEY="your-baidu-api-key-here" # 可选
# 方式二:创建 .env 文件
# 在项目根目录创建 .env 文件,内容如下:
# QWEN_API_KEY=your-qwen-api-key-here
# BAIDU_API_KEY=your-baidu-api-key-here
部分示例(如课程14 MCP、课程16 Skills 生态)需要本地启动 AIO-Sandbox 容器,提供沙盒执行环境:
cd crewai_mas_demo
# 启动沙盒(推荐后台运行)
docker compose -f sandbox-docker-compose.yaml up -d
# 不再需要时关闭沙盒
docker compose -f sandbox-docker-compose.yaml down
说明:
http://localhost:8022/mcp./workspace/data 挂载为沙盒内 /workspace/data(只读,输入文件)./workspace/output 挂载为沙盒内 /workspace/output(读写,输出文件)./skills 挂载为沙盒内 /mnt/skills(只读,Skill 资源)沙盒启动后,可以通过curl命令请求tools/list,检查是否成功:
curl -X POST http://localhost:8022/mcp/ \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{"jsonrpc":"2.0","method":"tools/list","params":{},"id":1}'
理解 Agent 的核心原理和 ReAct 范式。
cd m1l2
python3 m1l2_raw_agent.py
学习要点:
对应课程:02|解构智能体:Agent 的解剖学与 ReAct 范式
学习如何定义 Agent 的"人设"。
cd m1l2
python3 m1l2_agent.py
学习要点:
输出结果:
m1l2/极客时间-最终报告.md对应课程:07|定义Agent:从"提示词工程"到"人设工程"
预期时间:约 2-5 分钟
演示 Agent.kickoff() 直接与 Agent 交互。
cd m2l3
python3 m2l3_agent.py
学习要点:
对应课程:07|定义Agent:从"提示词工程"到"人设工程"
学习"契约驱动"的任务设计。
cd m2l4
python3 m2l4_task.py
学习要点:
对应课程:08|定义Task:从"步骤控制"到"契约驱动"
学习多 Agent 协作和任务调度。
cd m1l3
python3 m1l3_multi_agent.py
学习要点:
输出结果:
m1l3/极客时间平台全面调研报告-*.md(大纲、步骤1-6、最终报告)对应课程:09|定义Process:任务调度与信息传递
预期时间:约 5-10 分钟
演示多任务的顺序执行和数据传递。
cd m2l5
python3 m2l5_crew.py
学习要点:
对应课程:09|定义Process:任务调度与信息传递
让 Agent 具备"看"的能力。
cd m2l6
python3 m2l6_agent.py
学习要点:
对应课程:10|多模态模型:让你的Agent拥有"眼睛"
学习 API 请求级上下文管理和工具调用拦截。
cd m2l8
python3 m2l8_tools_call.py
学习要点:
对应课程:19|自定义管理上下文:Step_Callback与数据流观测
学习如何通过 MCP 协议集成外部工具服务。
cd m2l9
python3 m2l9_mcp.py
学习要点:
对应课程:14|MCP协议:标准化定义工具接口
| 问题 | 解决方案 |
|---|---|
ModuleNotFoundError: No module named 'crewai' | pip install -r requirements.txt |
ValueError: API Key 未提供 | 检查环境变量:echo $QWEN_API_KEY(Linux/macOS)或 echo $env:QWEN_API_KEY(Windows) |
No module named 'llm' | 确保在示例目录下运行:cd m1l2 && python3 m1l2_agent.py |
基于 CrewAI BaseLLM 的阿里云通义千问实现,完全兼容 CrewAI 接口,支持 Function Calling 和多地域配置。
from llm import aliyun_llm
llm = aliyun_llm.AliyunLLM(
model="qwen-plus",
api_key=os.getenv("QWEN_API_KEY"),
region="cn", # 支持 "cn", "intl", "finance"
)
课程13的示例代码展示了如何按照五步标准SOP封装自定义工具。
支持网页、视频、图片等多种资源类型,演示完整的工具封装流程。
from tools import BaiduSearchTool
agent = Agent(
role="网络调研专家",
tools=[BaiduSearchTool()],
# ...
)
功能特点:
intermediate_tool.py):中间结果保存工具,支持 Agent 的"慢思考"模式add_image_tool_local.py):本地图片加载工具,支持多模态 Agentfixed_directory_read_tool.py):目录读取工具,修复了原版本的路径处理问题理解 Agent 本质(课程02)
m1l2/m1l2_raw_agent.py,理解 ReAct 范式环境准备(课程06)
llm/aliyun_llm.py)定义 Agent(课程07)
m1l2/m1l2_agent.py 和 m2l3/m2l3_agent.py定义 Task(课程08)
m2l4/m2l4_task.py定义 Process(课程09)
m1l3/m1l3_multi_agent.py 和 m2l5/m2l5_crew.py多模态能力(课程10)
m2l6/m2l6_agent.py工具封装(课程13)
tools/baidu_search.py 的实现MCP 协议(课程14)
m2l9/m2l9_mcp.py上下文管理(课程19)
m2l8/m2l8_tools_call.py学习需求分析、测试评估、可观测性、合规治理等生产级实践。
本仓库的所有 Python 代码都包含详细的课程关联注释,遵循统一的标准:
# ============================================================================== 分隔代码块注释标准参考:m2l3/m2l3_agent.py
export LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR
# LLM 测试
cd llm && pytest test_aliyun_llm.py
# 工具测试
cd tools && pytest test_baidu_search.py
每个示例代码文件都对应特定的课程章节,文件名中的数字对应课程编号。
晓寒 - 前百度资深架构师
曾任业务线EE工程效率负责人、AI产品负责人,目前为某头部金融企业智能技术发展部架构师,负责公司内大模型相关业务落地转型及内部AI基础平台建设工作。
2024年~2025年在公司内部进行了自研AI基础平台(模型使用平台、RAG知识库、可拖拽工作流平台、Agent平台)、业务场景AI落地解决方案(智能客服、业务数据分析、CUI业务流程改造)以及开源平台企业落地改造(基于开源Coze进行企业内多租户、权限、内部系统对接能力等改造)。
同时他也是公司内的AI布道和培训师,2025年给公司管理层及各业务部门长进行了10余次AI技术和产品趋势讲解,进行了6次公司级AI技能培训及10余次受邀的部门级AI落地培训,注重互动与启发,多次为企业内外部提供培训,帮助学员提升实战能力,广受好评。
本课程旨在帮助学员完成从**"Prompt 调优者"到"AI 系统架构师"**的身份蜕变。
核心理念:
✅ 无需魔法,低成本上手:全程兼容 DeepSeek、Kimi、通义千问等国内优质大模型接口
✅ 真实生产级案例:拒绝"贪吃蛇"类玩具案例,提供贴近真实生产环境的场景
✅ 架构思维优先:不是框架使用手册,而是 AI 时代的"建筑学"
✅ 工程化实践:测试评估、可观测性、容灾设计等生产级治理体系
✅ 完整代码注释:所有代码都包含详细的课程关联注释,便于学员理解
📝 提示:本仓库为课程配套代码,建议结合视频课程学习使用。课程详细大纲请参考
(定稿)上线素材|企业级多智能体设计实战.md。