AGI|浅尝多Agent协作框架CrewAI,打造一个智能旅行助手

目录

一、介绍

二、特性

三、使用案例

四、 结语


一、介绍

Crew AI是一个多智能体协作智能框架,可以编排角色扮演的AI智能体。旨在协调角色扮演的自主AI代理,通过促进协作智能体,Crew AI使代理能够无缝协作,共同应对复杂任务。直白点说,一个大的任务,可以根据步骤拆分为许多小的步骤,每个小步骤可以给多个Agent去协作完成,每个Agent可以选择适合的大模型和工具。

整个框架的几个主要组件是Tool、Agent、Task、Process、Crew。

Tool

CrewAI 中的工具是一种技能,代理可以使用它来执行任务,目前这些工具可以是crewAI Toolkit和LangChain Toolkit的工具,这些基本上是代理可用于各种操作的功能,从简单的搜索到复杂的交互外部系统。此外,开发人员也可以根据Agent的需求制作定制工具或利用pre-build的选择。

Agent

Agent是⼀个被编程为执⾏任务、做出决策并与其他代理进⾏通信的⾃治单元。将Agent视为团队的成员,具有特定的技能和特定的⼯作要做。Agent可以担任不同的⻆⾊,例如“研究员”、“作家”或“客户⽀持”,每个⻆⾊都有助于团队的总体⽬标。Agent可以根据⾃⼰的需要绑定特定的⼤模型,在Crew⾥⾯可以接⼊各种⼤模型,包含本地⼤模型和云端⼤模型,具体⽂档说明可以参考官⽹⽂档:https://docs.crewai.com/how-to/LLM-Connections/

Task

在CrewAI中,Task是Agent需要执行的具体工作或目标,每个Task定义了一个明确的目标、约束和环境条件。它可以是简单的独立任务,也可以是复杂的、多步骤任务链。Task通常由系统或Crew分配给特定的Agent, 任务完成的质量和效率会反馈给系统,用于后续的优化和调整。

Process

Process协调Agent执行任务的方式,类似于人类团队中的项目管理。它们确保根据预定义的游戏计划有效地分配和完成任务。目前只支持Sequential和Hierarchical两种,Consensual方式的还在开发中。

Crew

Crew是由多个Agent组成的一个协作团队。Crew是框架的核心组件,负责协调、管理和分配任务给不同的Agent。Crew的主要作用是通过集成多个Agent的能力来实现复杂的、需协作的任务。Crew可以动态调整团队结构,根据任务需求选择最合适的Agent,并管理团队中各个成员的合作。

二、特性

  • 基于角色的代理设计:为代理定制特定的角色、目标和工具。
  • 自主代理间任务委托:代理能够自主地委托任务并在彼此之间询问,提高问题解决的效率。
  • 灵活的任务管理:使用可定制的工具定义任务,并动态分配给代理。
  • 流程驱动:目前仅支持顺序任务执行和层级流程,但正在开发更复杂的流程,如共识和自主流程。
  • 将输出保存为文件:将单个任务的输出保存为文件,以便后续使用。
  • 解析输出为 Pydantic 或 JSON:将单个任务的输出解析为 Pydantic 模型或 JSON 格式。
  • 与开源模型兼容:使用 OpenAI 或开源模型或本地模型运行您的团队

三、使用案例

在CrewAI的官网有许多的使用案例,下面我们就以旅行助手本地尝试体验一下CrewAI的趣味吧。

1、这个项目用到了两个很好用的API,Browseless和Serper。

需要先注册Browseless和Serper,这两个API都提供一定的免费额度。

https://www.browserless.io/
https://serper.dev/

2、安装CrewAI的第三方包。

pip installcrewai

3、定义角色构建Agent

这里定义了三个角色:城市选择专家、本地专家、旅行策划官。

4、 构建Task。

5、构建Crew(这里按照默认的顺序结构执行)

6、执行主函数方法

7、执行程序,输入用户输入,获取结果

输入了地点、时间、和兴趣爱好,Crew团队帮你生成一份旅行计划,从回答中可以看到,帮我制定了国庆假期七天的行程安排,并且为我计算了相应的费用以及相应的注意事项。

四、 结语

总的来说,CrewAI框架易于使用,用户只需关心我们需要做什么,将其拆分成子任务,定义好对应角色的Agent, 其他的丢给Crew团队去执行。目前来讲大部分还是使用的顺序结构执行,后面的层次结构和共识结构会有更强大的功能,官方还在开发中。

参考资料:

[1].https://github.com/crewAIInc/crewAI

[2].https://docs.crewai.com/how-to

[3].https://zhuanlan.zhihu.com/p/680779769

作者:肖泉|AI开发工程师

更多AI小知识欢迎关注“神州数码云基地”公众号,回复“AI与数字化转型”进入社群交流

版权声明:文章由神州数码武汉云基地团队实践整理输出,转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/450825.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JavaScript】LeetCode:61-65

文章目录 61 课程表62 实现Trie(前缀树)63 全排列64 子集65 电话号码的字母组合 61 课程表 Map BFS拓扑排序:将有向无环图转为线性顺序。遍历prerequisites:1. 数组记录每个节点的入度,2. 哈希表记录依赖关系。n 6&a…

(十九)、使用 minikube 运行k8s 集群

文章目录 1、机器信息2、官方文档3、启动本机 docker4、安装 minikube5、启动 minikube5.1、报错重试应该做什么? 6、启动后7、安装 Vs Code & k8s extensions8、在 VS Code 查看运行起来的 k8s 集群9、基本命令10、虚拟化不支持 Mac Os 14.3.1 1、机器信息 Ma…

c++算法第3天

本篇文章包含三道算法题,难度由浅入深,适合新手练习哟 目录 第一题 题目链接 题目解析 代码原理 代码编写 本题总结 第二题 题目链接 题目解析 代码原理 代码编写 第三题 题目链接 题目解析 代码原理 代码编写 第一题 题目链接 [NOIP2…

Iceberg 基本操作和快速入门二-Spark DDL操作

Iceberg 基本操作和快速入门一-CSDN博客 启动spark会话 docker exec -it spark-iceberg spark-sql 创建表 CREATE TABLE prod.db.sample ( id bigint NOT NULL COMMENT unique id, data string) USING iceberg; 创建分区表 CREATE TABLE prod.db.sample_par ( id bigint, …

No.17 笔记 | XXE漏洞:XML外部实体注入攻击

1. XXE漏洞概览 XXE(XML External Entity)是一种允许攻击者干扰应用程序对XML输入处理的漏洞。 1.1 XXE漏洞比喻 想象XML解析器是一个听话的机器人,而XXE就是利用这个机器人的"过分听话"来获取不应该获取的信息。 1.2 XXE漏洞危…

基于51单片机的大棚环境检测系统设计

温室大棚环境监测系统设计:基于51单片机的智能化解决方案 引言 随着现代农业技术的发展,温室大棚种植已成为提高农作物产量和质量的重要手段。为了更好地控制温室环境,提高作物生长效率,环境监测系统成为了温室管理中不可或缺的…

【Java 22 | 9】 深入解析Java 22 :Foreign Function Memory API 的改进

Java 22 对 Foreign Function & Memory API(FFI,外部函数和内存 API)进行了重要改进,旨在增强 Java 与本地代码及内存的交互能力。这一特性使 Java 程序能够更方便地调用非 Java 代码,如 C/C 库,同时提…

振弦式渗压计压力计算出现负值是什么原因?

振弦式渗压计作为一种高精度的测量仪器,被广泛应用于地质工程、水利水电工程等领域,用于监测土壤或结构物内部的渗水压力。然而,在实际应用中,有时会出现压力计算结果为负值的情况,这不仅影响数据的准确性,…

基于Java微信小程序的水果销售系统详细设计和实现(源码+lw+部署文档+讲解等)

详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不…

iLogtail 开源两周年:UC 工程师分享日志查询服务建设实践案例

作者:UC 浏览器后端工程师,梁若羽 传统 ELK 方案 众所周知,ELK 中的 E 指的是 ElasticSearch,L 指的是 Logstash,K 指的是 Kibana。Logstash 是功能强大的数据处理管道,提供了复杂的数据转换、过滤和丰富…

快充协议有哪些,都有哪些特点

什么是PD协议 PD协议是一种充电协议,全称为“USB Power Delivery(USB PD)”,是由USB-IF(USB Implementers Forum)组织制定的一种标准协议‌。它是一种基于USB接口的快速充电技术,可以实现高达1…

领导满意的可视化数据分析图表,原来一键配置就可以完成

数据分析图表是数据可视化的一种形式,它是将数据以图表的形式呈现出来,从而帮助人们更直观地理解数据和数据之间的关系。数据分析图表可以包括各种类型的图表,例如线图、柱状图、散点图、饼图等。这些图表可以用于描述单个变量的分布&#xf…

2010年国赛高教杯数学建模C题输油管的布置解题全过程文档及程序

2010年国赛高教杯数学建模 C题 输油管的布置 某油田计划在铁路线一侧建造两家炼油厂,同时在铁路线上增建一个车站,用来运送成品油。由于这种模式具有一定的普遍性,油田设计院希望建立管线建设费用最省的一般数学模型与方法。   1. 针对两炼…

外包干了3周,技术退步太明显了。。。。。

先说一下自己的情况,大专生,21年通过校招进入武汉某软件公司,干了差不多3个星期的功能测试,那年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我才在一个外包企业干了3周的功…

推荐一款流量录制回放工具:JVM-sandbox-repeater!

在软件开发和测试过程中,我们经常会遇到需要对网络请求进行录制和回放的需求,以便进行调试、测试和分析。为了模拟真实的用户请求,我们通常会使用各种流量录制回放工具来记录并重放网络请求。 其中,jvm-sandbox-repeater 是一款功…

电子电气架构 --- 智能网联汽车未来是什么样子?

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

基于SpringBoot+Vue+uniapp微信小程序的婚庆摄影小程序的详细设计和实现(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

GO语言指针有那些限制

GO语言指针有那些限制 GO 语言的指针 一个指针变量本身存会计的只是一个内存地址 一个内存地邗在32位系统上占4个字节,在64位系统上占8个字节 内存地址一般用整数的16进制来表示 当一个变量声明的时候,GO运行时将此变量开辟一段内存,此内存…

遥感技术助力生态系统碳储量、碳收支、碳循环等多领域监测与模拟:森林碳储量,城市扩张,夜间灯光数据,陆地生态系统,大气温室气体监测等

目录 专题一 双碳视角下遥感技术的研究方向 专题二 生态系统碳库的遥感估算—以森林碳储量为例 专题三 生态系统碳收支的遥感模拟—以京津冀地区为例 专题四 土地利用变化碳排放效应的遥感监测—以城市扩张为例 专题五 区域能源消耗碳排放空间格局模拟—基于夜间灯光数据 …

为什么你总碰到渣男?伯克森悖论

内容预告 为什么有些女生总觉得自己总是遇到渣男?难道是我具备了“吸引渣男的体质”?,还是“好男人都绝了吗?"。今天,我们通过因果推断中的伯克森悖论,结合心理学中的认知偏差和选择偏差,来解析这个令人困惑的…