引言

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.专业化质量提升

  • 单智能体:通用模型在特定领域表现受限(如代码生成不如专业编码代理)
  • 多智能体:
  1. 角色定制化(代码审查代理可配置特定语言规则)

  2. 工具专业化(数据分析代理可直连 SQL 数据库)

  3. 知识迭代(各领域代理独立更新知识库)

3.4.成本优化

  • 单智能体:需调用高价通用模型处理所有任务
  • 多智能体:
  1. 混合模型策略(低成本模型处理基础任务 + 高价模型处理关键步骤)

  2. 任务拆分降低 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:

运行以下命令安装crewaicrewai_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}使用。

最终输出结果:

执行日志:
  1. 调用的工具名称及其执行结果。

  2. 代理之间的交互(例如任务委派、结果传递)

内容部分生成

最终以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 团队在代码里扮演着核心角色,它将多个代理和任务组织起来,实现了对海尔智家年报分析任务的自动化执行。通过合理配置 agentstasksllmverbose 参数,能够确保任务顺利执行并输出最终的分析报告。

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

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

小结:Crewai 运用的关键要素

1.代理(Agent)的定义与作用
  • 多样性的代理角色:定义了 11 个不同角色的代理,涵盖文件解析、财务分析、市场分析、报告生成等多个领域。每个代理都有明确的角色、目标和背景故事,例如 “专业文件解析员” 负责解析 PDF 文件,“海尔财务报表分析专家” 专注于分析海尔智家的财务报表。

  • 工具集成:部分代理集成了 SerperDevTool 工具,用于获取行业相关数据,如家电行业的财务指标平均水平。这体现了 Crewai 对工具集成的支持,使代理能够借助外部资源完成任务。

2.任务(Task)的配置与依赖管理
  • 任务的详细配置:为每个代理配置了相应的任务,每个任务都有明确的描述、预期输出和执行函数。例如,file_parser_task 的预期输出是包含各公司文本和表格数据的字典,通过 file_parser_task_function 函数实现文件解析。

  • 任务依赖关系:通过 Taskinput 参数传递前置任务的输出结果,实现了任务之间的依赖管理。例如,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的介绍:

https://github.com/crewAIInc/crewAI

Logo

一站式 AI 云服务平台

更多推荐