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

发布时间:2024年01月18日

? ? ? ?随着大模型技术的发展,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 os?from 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/

文章来源:https://blog.csdn.net/wshzd/article/details/135676280
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。