问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

基于CrewAI多智能体框架,手把手构建一个自动化写作应用实战

创作时间:
作者:
@小白创作中心

基于CrewAI多智能体框架,手把手构建一个自动化写作应用实战

引用
1
来源
1.
https://www.cnblogs.com/obullxl/p/18414880/NTopic2024091401

本文将介绍如何使用CrewAI多智能体框架构建一个自动化写作应用。通过本文,读者将了解CrewAI框架的基本概念、安装步骤以及如何使用该框架搭建自动化写作系统。

CrewAI框架基本介绍

CrewAI是一个多智能体框架,主要为角色扮演中的智能体提供自动化配置,以促进智能体之间的合作,共同解决复杂问题。CrewAI主要由Agent(智能体)、Task(任务)、Tool(工具)和Crew(团队)模块组成。智能体是具有角色和背景故事、目标和记忆的团队成员;任务是智能体需要完成的任务;工具是智能体使用的设备,用于辅助完成任务;团队则是智能体和任务相结合的容器,是智能体协调合作执行任务的实际场所,智能体由它共同完成实际任务。

CrewAI框架比较灵活,它不仅支持OpenAI标准API,还支持Ollama标准API,它具备如下核心特征:

  • 角色定制代理:可以根据不同的角色、目标和工具来量身定制代理。
  • 自动任务委派:代理之间能够自主地分配任务和进行交流,有效提升解题效率。
  • 任务管理灵活性:可以根据需要自定义任务和工具,并灵活地指派给不同代理。
  • 流程导向:目前系统仅支持按顺序执行任务,但更加复杂的如基于共识和层级的流程正在研发中。

本地安装CrewAI框架依赖

我们通过Miniconda管理Python虚拟环境,Miniconda的安装和使用可以参考相关文章。以下是安装步骤:

# Python虚拟环境名:CrewAI,版本号:3.10
conda create -n CrewAI python=3.10 -y
# 激活虚拟环境
conda activate CrewAI

接下来,我们就可以安装CrewAI框架依赖:

pip install crewai

至此,CrewAI框架依赖就安装好了,我们接下来使用它来构建一个自动化协作应用。

使用CrewAI搭建自动化写作系统

前面提到,智能体依赖的大模型既支持OpenAI标准接口,也支持Ollama标准接口。为了方便演示,使用Ollama本地部署Qwen2-7B大模型。

第一步:明确我们的需求

我们以儿童绘本故事为例,提供一个主题:由第1个智能体根据主题产出绘本故事的构思内容,然后由第2个智能体根据第1个智能体的构思内容,产出故事内容。

因此,我们需要有2个智能体(即:需要定义2个角色),分别是:故事内容构思者,和故事内容协作者;他们各自都有一个任务,分别是:产出故事内容构思,和根据构思编写故事。

第二步:定义构思者角色的智能体

对于构思者智能体,它的定义如下:

  • 我们要给它设定一个与任务相符的角色(role):为了简单,我们就设定为构思者
  • 我们为这个智能体设定了一个目标(goal):要根据给定的主题({topic}),产出儿童绘本故事内容创意
  • 我们再为规划者智能体设定一个背景故事(backstory):我们尽可能多地设定相关的上下文,比如它的职责、对它产出物的要求等。
  • 我们还要设置一些其它属性:allow_delegation代表这个智能体不允许把工作委托给其他的智能体;verbose代表把它的工作详细记录下来,这样我们可以看到它在执行内部任务时是如何运行的

第三步:定义写作者角色的智能体

对于写作者智能体来说,它的目标就是:根据构思者所提供的儿童绘本故事创意来编写故事内容。

第四步:定义每个智能体的任务

上面我们定义了2个智能体角色,现在给他们分别定义1个任务:

构思者和写作者的任务,均包含了描述、期望输出和分配的智能体等3个属性:

  • 描述(description):期望智能体能做什么
  • 预期的输出(expected_output):类似一种强制机制,明确任务的产出结果
  • 智能体(agent):即为这个任务分配智能体

第五步:让智能体和任务协同工作

智能体是按照顺序执行任务的,上一个任务的输出,会被作为下一个任务的输入。特别注意:我们提供了topic上下文参数,它在智能体和任务中可以通过{topic}使用。

运行程序,我们可以逐步看到构思者智能体的运行过程内容:

接下来,可以看到写作者智能体的运行过程内容:

最终,所有的智能体执行完成,产出的目标故事内容:

最后:CrewAI总结说明

通过以上示例,我们了解了CrewAI的三个核心模块:Agent智能体,Task任务,Crew团体或者称容器,容器把他们组合在一起。

  • Agent:一般情况下,一个Agent只做一件事,明确智能体的目标和期望;当然,一个Agent可以执行多项任务。
  • Task:无论是创建Agent还是Task都需要明确自己的职责,以及对自己的期望。
  • Crew:最终把任务,按照串行或并行的方式组织起来。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号