Crewai:多智能体协作自动化专家
8. 财务对比分析(海尔智家 vs 美的集团,这里已经默认对美的公司的财务信息分析完了,但是不用输出具体的分析结果,只需要输出海尔与美的对比的部分);请你根据上面的分析报告框架帮我定义所需要的agents、并且赋予每一个agent它们所对应的任务(Tasks),并且通过配置deepseek作为llm,Crewai_tools工具方面我需要配置一个SerperDev_tool作为搜素引擎,并且最终我
引言

AI 代理正在成为改变游戏规则的因素,迅速成为解决问题、创造和创新的合作伙伴,而这正是 CrewAI 的作用所在。CrewAI 代表了 AI 代理的转变,它提供了一个基于多功能性和效率的薄框架,利用协作和角色扮演。它是工程师和创意人员的工具,使 AI 代理能够无缝组装成有凝聚力、高效的团队。接下来就让我们来了解一下什么是Crewai,以及怎么实现Crewai的快速上手。
一、介绍

1.究竟什么是CrewAI ?
CrewAI 是一个用于编排角色扮演 AI 代理的框架。 它允许开发人员创建一个由 AI 代理组成的“团队”,每个代理都有特定的角色和职责,以共同完成复杂的任务。 该框架对于构建协作式 AI 系统特别有用,这些系统可以解决需要不同专业知识和协调工作的多方面问题。
2.CrewAI 的核心组件:
-
代理:Agents。这些代理就像你专门的团队成员,每个人都有自己的角色、背景故事、目标和记忆;
-
工具:Tools。工具是智能体在执行任务时使用的设备或资源,用于辅助完成任务,例如数据检索工具、文本生成工具等;
-
任务:Tasks。给定代理应完成的小型且集中的任务;
-
流程:Process。这是工作人员完成任务所遵循的工作流程或策略;
-
团队:Crew。代理、任务和流程相遇的地方,这是工作发生的容器层,是智能体协调合作执行任务的实际场所,智能体在团队中共同完成实际任务。
3.那为什么要使用Multi-agents ?
下面两个图是在吴恩达关于Crewai教程视频中截取,很好的说明了单_Agent与多_Agent的区别:

3.1.复杂任务分解能力
- 单智能体:受限于单一模型的知识边界,难以同时处理跨领域任务(如法律 + 财务 + 技术合规审查)
- 多智能体:通过角色分工(法律专家代理 + 财务分析师代理 + 技术顾问代理),实现多专业领域深度协作
3.2.并行处理效率
- 单智能体:需要完成多次的线性步骤来完成最终任务(如市场分析→报告撰写→方案设计)
- 多智能体:可同时进行数据收集、模型训练、文案创作等并行任务,效率提升 3-5 倍
3.3.专业化质量提升
- 单智能体:通用模型在特定领域表现受限(如代码生成不如专业编码代理)
- 多智能体:
-
角色定制化(代码审查代理可配置特定语言规则)
-
工具专业化(数据分析代理可直连 SQL 数据库)
-
知识迭代(各领域代理独立更新知识库)
3.4.成本优化
- 单智能体:需调用高价通用模型处理所有任务
- 多智能体:
-
混合模型策略(低成本模型处理基础任务 + 高价模型处理关键步骤)
-
任务拆分降低 token 消耗(数据检索用开源模型,最终决策可采用 deepseek大模型)
二、安装
1.安装 Python:确保系统上安装了 Python,版本需在 3.10 到 3.13 之间。
2.本地安装 CrewAI 框架依赖
-
打开 PowerShell。
-
运行下面的命令:
conda init powershell
注释:这将初始化 Conda,使其能够在 PowerShell 中使用。
-
重新打开 PowerShell 窗口
-
验证初始化是否成功:
conda --version
-
激活虚拟环境:
conda activate crewai-env
3.安装Crewai:
运行以下命令安装crewai和 crewai_tools
pip install crewai -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install crewai-tools -i https://pypi.tuna.tsinghua.edu.cn/simple
4.验证是否安装成功:
pip freeze | findstr crewai
5.预期结果:

至此,CrewAI 框架依赖就安装好了,接下来我们将以一个能”快速入手“的例子来介绍一些crewai的使用。
三、快速入门( 以儿童绘本故事为例 )
第一步: 明确我们的需求:
Prompt:
1.我们只提供一个主题:由第 1 个智能体根据主题产出绘本故事的构思内容,然后由第 2 个智能体根据第 1 个智能体的构思内容,产出故事内容。
2.因此,我们需要有 2 个智能体(即:需要定义 2 个角色),分别是:故事内容构思者,和故事内容协作者;他们各自都有一个任务,分别是:产出故事内容构思,和根据构思编写故事。
这里我们可以利用“Mermaid”工具来生成一个流程图:

第二步:引入CrewAI核心模块类,同时配置大模型:

第三步: 创建代理:
代理通过 Agent 类进行定义。以下是示例代码:

参数解析
|
参数 |
描述 |
|
role |
代理的角色或职能,例如“研究员”或“作家”。 |
|
goal |
代理的主要目标,例如完成研究或撰写文章。 |
|
backstory |
代理的背景故事,赋予个性化特征。 |
|
allow_delegation |
是否允许代理将任务委派给其他代理。 |
|
verbose |
是否启用详细日志输出。 |
|
tools(本例中未使用) |
可供代理使用的工具列表。 |
|
memory(本例中未使用) |
是否允许代理记住任务执行的上下文。 |
常见问题:
1.Tools种类
2.使用
verbose=True参数
在创建代理时设置
verbose=True,可以让代理在运行过程中输出详细的执行日志。这些日志包括:
任务启动和完成的时间点。
调用的工具名称及其执行结果。
代理之间的交互(例如任务委派、结果传递)。
3.启用
memory=True参数
设置
memory=True可让代理记住任务上下文,帮助分析代理在多步任务中的决策路径。例如:
查看代理如何利用前一个任务的输出完成后续任务。
复现复杂任务链的执行顺序。
第四步: 定义每个智能体的任务
上面我们定义了 2 个智能体角色,现在给他们分别定义 1 个任务,以下示例展示了如何创建任务:

参数解析
|
参数 |
描述 |
|
description |
任务的具体描述,例如“分析 AI 的最新进展”。 |
|
expected_output |
任务的期望输出,例如一份报告或文章。 |
|
agent |
执行该任务的代理。 |
第五步: 让智能体和任务协同工作

智能体是按照顺序执行任务的,上一个任务的输出,会被作为下一个任务的输入。特别注意:我们提供了topic上下文参数,它在智能体和任务中可以通过{topic}使用。
最终输出结果:
执行日志:
-
调用的工具名称及其执行结果。
-
代理之间的交互(例如任务委派、结果传递)

内容部分生成

最终以Markdown的格式输出:

例子总结
通过以上示例,我们了解了 CrewAI 的三个核心模块:Agent智能体,Task任务,Crew团体。
四、应用实战
通过上面让我们”快速上手“的例子,我们初步了解了Crewai框架的重要因素,接下来让我们将其运用到金融领域,来一个实战,来写一个“年报分析智能体”:
首先,我们需要交给AI大模型提示词,利用它来帮助我们写代码:
Prompt:
我想要搭建一个Crewai的代码,请你帮我编译python代码用来对2023年海尔智家有限公司的年报进行分析,其中还要分析2023年美的公司的年报(作为对比例子),我想要的分析报告的框架是:
1. 财务报表分析(只对海尔); 2. 财务比率计算(只对海尔); 3. 时间序列分析(只对海尔); 4. 公司治理分析(只对海尔); 5. 市场表现分析(只对海尔); 6. 业务模式与行业分析(只对海尔); 7. 增长能力分析(只对海尔); 8. 财务对比分析(海尔智家 vs 美的集团,这里已经默认对美的公司的财务信息分析完了,但是不用输出具体的分析结果,只需要输出海尔与美的对比的部分);
9.同行业平均水平对比 ;
10.结合上面的所有输出内容对海尔公司2023年的年报进行总结与对未来的展望,这里要求输出的内容需要非常详细,至少300字以上。
请你根据上面的分析报告框架帮我定义所需要的agents、并且赋予每一个agent它们所对应的任务(Tasks),并且通过配置deepseek作为llm,Crewai_tools工具方面我需要配置一个SerperDev_tool作为搜素引擎,并且最终我需要你以Markdown的格式输出最终的年报分析结果。需要分析的两个文件我分别保存的本地地址为:
"海尔智家": r"C:\mk_agents\海尔智家股份有限公司2023年年度报告.pdf",
"美的集团": r"C:\mk_agents\美的集团股份有限公司2023年年度报告.pdf"
根据上面的描述,我们也可以利用“Mermaid”工具来生成一个“多分支流程图”:

根据上面的提示词,AI大模型生成了一份python代码和report_template.md(报告模板)
代码中第一步仍然是配置环境、LLM和Tool的初始化:

下面,我们一步一步来解析代码中运用到的Crewai的核心组件:
1.Agents(代理)和Tasks(任务)
在提供的代码中,一共定义了 11 个代理(Agent),分别对应不同的分析任务。以下是每个代理的名称和功能说明,还有它们所需要完成的Tasks:
|
代理名称 |
描述 |
任务 |
|
file_parser |
文件解析器 |
解析本地 PDF 年报文件,提取文本和表格数据 |
|
haier_financial_statement_analyzer |
海尔财务报表分析器 |
对海尔智家财务报表进行详细分析 |
|
haier_financial_ratio_calculator |
海尔财务比率计算器 |
计算海尔智家关键财务比率(如资产净利率、毛利率) |
|
haier_time_series_analyzer |
海尔时间序列分析器 |
对海尔智家财务指标进行时间序列分析 |
|
haier_corporate_governance_analyzer |
海尔公司治理分析器 |
分析海尔智家公司治理结构和行业对比 |
|
haier_market_performance_analyzer |
海尔市场表现分析器 |
分析海尔智家市场表现(未实现具体逻辑) |
|
haier_business_model_analyzer |
海尔业务模式与行业分析器 |
分析海尔智家业务模式与行业趋势(未实现具体逻辑) |
|
haier_growth_ability_analyzer |
海尔增长能力分析器 |
分析海尔智家增长能力(未实现具体逻辑) |
|
financial_comparison_analyzer |
财务对比分析器 |
对比海尔智家与美的集团的财务状况(如资产净利率) |
|
summary_and_outlook_generator |
总结与展望生成器 |
使用大模型生成详细总结与展望 |
|
report_generator |
报告生成器 |
生成 Markdown 格式的年报分析报告 |
2.Tools(工具)
在提供的代码中,主要使用的工具是SerperDevTool,它的作用是通过 Serper.dev 搜索引擎获取行业数据(如家电行业财务指标平均水平)。
3.Crew(团队)
Crew 团队在代码里扮演着核心角色,它将多个代理和任务组织起来,实现了对海尔智家年报分析任务的自动化执行。通过合理配置 agents、tasks、llm 和 verbose 参数,能够确保任务顺利执行并输出最终的分析报告。

接下来,我们可以看到终端输出的执行日志如下:

最后,会输出成一个Markdowm格式的文本:

小结:Crewai 运用的关键要素
1.代理(Agent)的定义与作用
-
多样性的代理角色:定义了 11 个不同角色的代理,涵盖文件解析、财务分析、市场分析、报告生成等多个领域。每个代理都有明确的角色、目标和背景故事,例如 “专业文件解析员” 负责解析 PDF 文件,“海尔财务报表分析专家” 专注于分析海尔智家的财务报表。
-
工具集成:部分代理集成了
SerperDevTool工具,用于获取行业相关数据,如家电行业的财务指标平均水平。这体现了 Crewai 对工具集成的支持,使代理能够借助外部资源完成任务。
2.任务(Task)的配置与依赖管理
-
任务的详细配置:为每个代理配置了相应的任务,每个任务都有明确的描述、预期输出和执行函数。例如,
file_parser_task的预期输出是包含各公司文本和表格数据的字典,通过file_parser_task_function函数实现文件解析。 -
任务依赖关系:通过
Task的input参数传递前置任务的输出结果,实现了任务之间的依赖管理。例如,haier_financial_ratio_calculator_task依赖于haier_financial_statement_analyzer_task的输出,确保了任务按正确顺序执行。
3.团队(Crew)的创建与任务执行
-
团队的组建:将所有代理和任务整合到
Crew团队中,同时指定使用的大语言模型(LLM)和日志输出级别。通过Crew团队,实现了对多个代理和任务的集中管理。 -
任务执行:调用
crew.kickoff()方法启动任务流程,Crew会自动处理任务之间的依赖关系,按顺序执行各个任务,并最终输出分析结果。
五、总结
Crewai 运用的优势
1.提高开发效率
通过 Crewai 的框架,开发者可以将复杂的分析流程拆分成多个独立的代理和任务,每个部分可以独立开发和测试,从而提高了开发效率。例如,不同的代理可以由不同的开发人员负责,同时进行开发。
2.增强代码可维护性
代理和任务的明确划分使得代码结构更加清晰,易于理解和维护。当需要修改或扩展某个功能时,只需针对相应的代理或任务进行修改,而不会影响其他部分的代码。
3.支持并行处理
Crewai 能够自动处理任务之间的依赖关系,对于没有依赖关系的任务可以并行执行,从而提高了整体的执行效率。例如,时间序列分析和公司治理分析可以同时进行。
学习资源:
1.B站吴恩达关于Crewai的教学视频:
https://www.bilibili.com/video/BV1HUy6YBEtg/?spm_id_from=333.337.search-card.all.click
2.Crewai官网文档介绍:
https://docs.crewai.com/introduction
3.Github的介绍:
更多推荐






所有评论(0)