LLM之Agent(八)| 使用CrewAi、Solor/Hermes、Langchain和Ollama构建超级Agent

       随着大模型技术的发展,AI Agent正在成为大模型游戏规则的改变者,它可以帮助用户分解任务、规划任务和执行任务,这就是CrewAI的独特之处。CrewAI是AutoGEN的顶级替代品,为您提供轻松组建人工智能Agent团队执行自动化任务的能力。

       在本文中,将介绍什么是CrewAi,架构设计,Autogen、ChatDev和Crew Ai之间的差异,以及如何使用Crew Ai、Langchain和Ollama的Solar或Hermes Power来构建超级Ai Agent。

一、什么是CrewAI?

       Crew AI是一个优秀的框架,旨在协调角色扮演、自主的AI代理,使这些代理能够高效地协作和解决复杂任务。

CrewAi的主要特点包括:

基于角色的代理设计:CrewAi允许您自定义具有特定角色、目标和工具的人工智能AI代理;

自主代理间委托:代理可以自主委托任务并相互协商,提高解决问题的效率;

灵活的任务管理:用户可以使用自定义工具定义任务,并将其动态分配给代理;

本地模型集成:CrewAI可以通过Ollama等工具与本地模型集成,用于特殊任务或数据隐私考虑;

基于流程的操作:目前支持按顺序执行操作,并计划在未来支持更复杂的流程,如共识和分层流程。

二、Crew AI Vs AutoGen Vs ChatDev

AutoGen

      虽然Autogen擅长创建会话代理,但它缺乏固有的流程概念。在Autogen中,协调代理的交互需要额外的编程,随着任务规模的增长,编程可能会变得复杂和繁琐。

ChatDev

      ChatDev将过程的概念引入了人工智能代理领域,但其实现相当僵化。ChatDev中的定制是有限的,不适合生产环境,这可能会阻碍实际场景应用程序的可扩展性和灵活性。

CrewAI

      CrewAI在构建时就考虑到了生产环境,它既具有Autogen对话代理的灵活性,也具有ChatDev的体系化过程方法。CrewAI是柔性的,流程设计是动态的且强大,能够无缝适应开发和生产工作流程。

三、CrewAI的实现

3.1 安装Ollama

我们首先下载Ollama.ai,下载链接:https://ollama.ai/。

选择合适的操作系统Ollama版本

您可以下载适用于Mac和Linux的Ollama。Windows版本即将推出

将Ollama移动到应用程序

       将Ollama拖放到Applications文件夹中,此步骤仅适用于Mac用户。完成此步骤后,Ollama将完全安装在您的设备上。单击“下一步”按钮。

3.2 安装和部署Openhermes/solar或其他LLM

       现在我们需要安装要在本地使用的LLM,命令如下:

Ollama run Solar

       Ollama现在将下载Solar,这可能需要几分钟的时间,具体取决于您的网速。一旦安装好,你就可以开始与它交谈了。

创建文件夹

        让我们创建一个名为crewai的文件夹并导航到它。

3.3 安装Crewai和依赖项

       我们用“python2.11-m venv crew”创建了一个虚拟环境,并用“source crew/bin/activate”激活它,然后安装“pip-install crewai”

3.4 安装必要的库

       在开始之前,让我们安装所需的库。创建一个名为requirements.txt的文件,并在下面写入依赖项。

unstructuredlangchainJinja2>=3.1.2click>=7.0duckduckgo-search

         之后,只需在VS Code中打开终端或者在打开Mac终端,并运行以下命令:

pip install -r requirements.txt

3.5 导入库

      我们将从crewai导入Agent、Task、Crew和Process,然后从langchain.tools导入DuckDuckGoSearchRun来收集web信息。

       DuckDuckGoSearchRun被创建并存储在变量search_tool

        我们从langchain.lms导入ollama来加载一个模型,这里使用Solar和Openhermes进行实验

from crewai import Agent, Task, Crew, Processimport osfrom langchain.tools import DuckDuckGoSearchRunsearch_tool = DuckDuckGoSearchRun()from langchain.llms import Ollamaollama_openhermes = Ollama(model="openhermes")ollama_solar = Ollama(model="Solar")

3.6 创建一个研究员Agent

让我们创建一个代理来执行任务、做出决策并与其他代理通信。

role:表明其主要功能是进行研究。

goal:研究人员的目标是找到发展特定YouTube频道并增加其订户数量的方法。

backstory:协助研究活动并简化某些任务。

tools:代理可用的工具列表包括search_tool,

verbose:设置为True,这通常意味着代理将提供详细的日志、输出或解释

llm:这代表“大型语言模型”,在这种情况下,ollama_openhermes作为代理使用的模型传递。

allow_delegation:设置为False,表示不允许此代理将其任务委派给其他代理或进程

researcher = Agent(    role='Researcher',    goal='Research methods to grow this channel Gao Dalie (高達烈) on youtube and get more subscribers',    backstory='You are an AI research assistant',    tools=[search_tool],    verbose=True,    llm=ollama_openhermes, # Ollama model passed here    allow_delegation=False)

3.7 创建一个作家Agent

       作为内容策略师的Agent,其目标是撰写关于YouTube增长渠道的有趣博客文章。它可以将撰写博客文章的任务委派给代理

writer = Agent(    role='Writer',    goal='Write compelling and engaging reasons as to why someone should join Gao Dalie (高達烈) youtube channel',    backstory='You are an AI master mind capable of growing any youtube channel',    verbose=True,    llm=ollama_openhermes, # Ollama model passed here    allow_delegation=False)

3.8 为Agent设置任务

      任务1和任务2被分配给一名“研究人员”Agent,负责调查“Gao Dalie (高達烈)”YouTube频道,并找到可靠的方法来生成一个频道。

       任务3被分配给一名“作家”Agent,为“Gao Dalie (高達烈)”编制一份行动清单来实现频道生成。

task1 = Task(description='Investigate Gao Dalie (高達烈) Youtube channel', agent=researcher)task2 = Task(description='Investigate sure fire ways to grow a channel', agent=researcher)task3 = Task(description='Write a list of tasks Gao Dalie (高達烈) must do to grow his channel', agent=writer)

3.9 工作人员和流程

Crew:定义以研究人员作家为成员的团队。

Process.sequential:使用按顺序执行任务的流程。上一个任务的结果将作为附加内容传递给下一个任务。

crew.kickoff():命令crew开始工作。

crew = Crew(    agents=[researcher, writer],    tasks = [task1,task2,task3],    verbose=2,    process=Process.sequential)result = crew.kickoff()

3.10 输出

      crew运行结束时会输出结果,结果是一条简单的分界线和crew的执行结果。

Openherms

下面是Openhermes作为作家和Solar作为研究人员的运行结果:

Solar

       Openhermes将扮演研究员的角色,Solor将扮演作家的角色,这一角色的变化将展示不同模型如何适应不同的生成过程。

四、结论:

       CrewAI不仅是解决人工智能协作问题的有效工具,而且重塑了人类与人工智能之间的关系。

       这将是人工智能助手的能力得到充分发挥,促进人工智能在各行各业的广泛应用。随着CrewAI技术的成熟,人工智能将成为企业协同工作的重要力量。

参考文献:

[1] https://pub.towardsai.net/crewai-solor-hermes-langchain-ollama-super-ai-agent-0ee348404428

[2] https://github.com/joaomdmoura/crewAI

[3] https://arxiv.org/abs/2312.15166

[4] https://huggingface.co/teknium/OpenHermes-2.5-Mistral-7B

[5] https://quickaitutorial.com/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue3+vite创建项目--(傻瓜式教程)

1、运行创建项目命令 # 使用 npm npm create vitelatest # 使用 yarn yarn create vite # 使用 pnpm pnpm create vite剩下的就是启动以及一些配置信息 2、vitevue3路由配置信息 npm install vue-router4在src目录下新建目录叫“router”,新建一个js文件叫“index…

Redis--Geo指令的语法和使用场景举例(附近的人功能)

文章目录 前言Geo介绍Geo指令使用使用场景:附近的人参考文献 前言 Redis除了常见的五种数据类型之外,其实还有一些少见的数据结构,如Geo,HyperLogLog等。虽然它们少见,但是作用却不容小觑。本文将介绍Geo指令的语法和…

Pyside6入门教学——编写一个UI界面并显示

1、安装Pyside6 输入下列命令安装Pyside6。 pip install Pyside6 2、设计UI 打开Qt设计工具(在安装Pyside6包的目录下)。 【注】我这用的是anaconda虚拟环境,所以我的路径是D:\App\Anaconda3\envs\snake\Lib\site-packages\PySide6。设计…

〔全网最正确〕2024华数杯B题成品论文22页word+四小问可执行代码+代码调式+结果分析+高清运行结果图

华数杯B题光伏发电 一、问题分析 (完整版见文末) 问题一: 首先题目要求得到电能行业与经济状况、居民消费水平、城市化率和市场化程度等因素的关系,并对供电量进行预测。其中,电能采用供电量数据、经济采用GDP数据&…

003 摄像头的配置

string realm_s “IP Camera(J4605)”; 需要根据摄像头的具体型号进行修改; IP Camera(L3433) 张XX的摄像头 正常的启动信息 connect 0. connect success. -------------------------SEND OPTIONS------------------------------ OPTIONS rtsp://192.168.1.64:55…

C语言之编译和链接

目录 一、引言 二、编译和链接 2.1 预处理&#xff08;预编译&#xff09; 2.2 编译 2.3 汇编 2.4 链接 一、引言 #include <stdio.h> int main() {printf("hello, world\n");return 0; } 像这样&#xff0c;只由ASCII字符构成的文件被称为文本文件&…

基于人工蚁群、蚁群、遗传算法的多目标任务分配

matlab2020a可运行 基于人工蚁群、蚁群、遗传算法的多目标任务分配资源-CSDN文库

数据结构--串

本文为复习的草稿笔记&#xff0c;&#xff0c;&#xff0c;有点乱 1. 串的基本概念和基本操作 串是由零个或多个字符组成的有限序列 2. 串的存储结构 3.串的应用 模式匹配 BF算法&#xff08;简单匹配算法 穷举法 算法思路&#xff1a;从子串的每一个字符开始依次与主串…

【大数据】Flink 测试利器:DataGen

Flink 测试利器&#xff1a;DataGen 1.什么是 FlinkSQL &#xff1f;2.什么是 Connector &#xff1f;3.DataGen Connector3.1 Demo3.2 支持的类型3.3 连接器属性 4.DataGen 使用案例4.1 场景一&#xff1a;生成一亿条数据到 Hive 表4.2 场景二&#xff1a;持续每秒生产 10 万条…

FunTester 性能测试中获取 JVM 资源信息

在以往性能测试中&#xff0c;通常施压机的硬件资源不会成为压力瓶颈&#xff0c;但是在多任务并行的场景中&#xff0c;如果一个任务占用当前机器资源过多&#xff0c;会影响其他任务执行。或者当前用例本身存在问题&#xff0c;导致性能无法进一步提升&#xff0c;影响了性能…

鸿蒙开发系列教程(四)--ArkTS语言:基础知识

1、ArkTS语言介绍 ArkTS是HarmonyOS应用开发语言。它在保持TypeScript&#xff08;简称TS&#xff09;基本语法风格的基础上&#xff0c;对TS的动态类型特性施加更严格的约束&#xff0c;引入静态类型。同时&#xff0c;提供了声明式UI、状态管理等相应的能力&#xff0c;让开…

脏牛漏洞(CVE-2016-5195)复现过程(详细完整版)

1、实验环境 KaLi 攻击机 Linux靶机 靶场 实验目的&#xff1a; 掌握漏洞利用的方法 掌握脏牛漏洞的原理 提高对内核安全性的认识 2、靶场搭建 VMware导入靶场 靶场地址&#xff1a;链接&#xff1a;百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。…

SEO品牌推广的核心步骤

在当今数字化的商业环境中&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;品牌推广已经成为企业不可或缺的一部分。通过优化网站&#xff0c;提高在搜索引擎结果中的排名&#xff0c;企业能够更好地吸引潜在客户&#xff0c;提升品牌知名度。本文将专心分享如何做好SEO品…

线性表的顺序存储实现

前言 线性表的顺序存储及基本操作的实现 一、线性表 线性表&#xff08;List&#xff09;是由同类型数据元素构成有序序列的线性结构&#xff0c;用户处理线性表数据时常常需要初始化、查找、插入、删除、计算数据长度等操作。 线性表还包含以下几个要素&#xff1a; 表中元…

C语言编译和链接

翻译环境和运行环境 在ANSI C的任何一种实现中&#xff0c;存在两个不同的环境 .第一种是翻译环境&#xff0c;在这个环境中源代码被转换为可执行的机器指令 .第二种是执行环境&#xff0c;它用于实际执行代码 翻译环境 翻译环境是由编译和链接两个大过程组成&#xff0c;而…

交叉编译工具 aarch64-linux-gnu-gcc 的介绍与安装

AArch64 是随 ARMv8 ISA 一起引入的 64 位架构&#xff0c;用于执行 A64 指令的计算机。而且在 AArch64 状态下执行的代码只能使用 A64 指令集。&#xff0c;而不能执行 A32 或 T32 指令。但是&#xff0c;与 AArch32 中不同&#xff0c;在64位状态下&#xff0c;指令可以访问 …

ArcGIS Pro控件汇总

控件来源 我们对其一一进行查看是否有控件 查看位置 控件展示 ribbonControls 展示 代码 <controls:ProWindow x:Class"ProAppModule9.ProWindowRibbon"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:controls"clr-…

集成学习算法(Bagging 思想、Boosting思想)及具体案例

概述&#xff1a;是机器学习中的一种思想&#xff0c;通过多个模型的组合形成一个精度更高的模型&#xff0c;参与组合的模型称为弱学习器 1、Bagging 思想 有放回的抽样&#xff08;booststrap抽样&#xff09;产生不同的训练集&#xff0c;从而训练不同的学习器&#xff1b;…

FairGuard游戏安全2023年度报告

导 读&#xff1a;2023年&#xff0c;游戏行业摆脱了疫情带来诸多负面影响&#xff0c;国内游戏市场收入与用户规模双双实现突破&#xff0c;迎来了历史新高点。但游戏黑灰产规模也在迅速扩大&#xff0c;不少游戏饱受其侵扰&#xff0c;游戏厂商愈发重视游戏安全问题。 为帮助…

重磅发布!基于百度飞桨的《人工智能基础及应用》书籍正式上线

科技日新月异的今天&#xff0c;人工智能已经成为引领未来的核心驱动力。为了帮助大家更好地深入理解人工智能的理论和技术&#xff0c;为未来发展做好准备&#xff0c;百度飞桨教材编写组联合北京交通大学王方石教授、北京邮电大学杨煜清特聘副研究员共同撰写推出了《人工智能…