商城首页欢迎来到中国正版软件门户

您的位置:首页 > 业界资讯 >浅谈CrewAI开源框架:构建多代理必备工具

浅谈CrewAI开源框架:构建多代理必备工具

  发布于2024-11-06 阅读(0)

扫一扫,手机访问

大家好,我是Luga。今天我们继续探讨人工智能(AI)生态领域的相关技术,这次我们聚焦在AI代理人(AI Agents)上。本文将详细解析新型开源AI代理人CrewAI的技术,让大家对CrewAI的基本概念有所了解,并介绍基于CrewAI的应用和市场开发。

大型语言模型(LLM)已经深入到我们生活的各个方面,从日常聊天到文档解析,发挥着重要的作用。随着LLM在全球范围内的热潮涌动,开发者们开始将注意力集中在人类推理和问题解决上,创造出了更加专注和目标导向的语言和逻辑学习(LLL)应用程序,以应对当今面临的各种复杂问题。

这些创新的LLL应用程序通过改进、扩展和增强LLL的功能,为我们提供了更高效、智能化的解决方案。无论是在商业、科学还是社会领域,这些应用程序都成为了我们理解和解决复杂问题的有力工具,同时也为我们开辟了全新的可能性。

一文读懂用于构建多代理的 CrewAI 开源框架

一、传统 AI Agents 的出路在哪里 ?

CrewAI的独特之处在于,随着技术的迅速发展,AI代理正在成为改变游戏规则的力量。它们成为了解决问题、创造力和创新的合作伙伴。

可以想象一下,在仅仅几分钟的时间内,我们就能够将一个想法迅速转化为一个完整的登录页面。这一切都得益于我们与CrewAI的合作。CrewAI是一款强大的人工智能工具,它能够帮助我们快速、高效地实现各种设计和开发任务。借助CrewAI的智能算法和自动生成功能,我们能够节省大量的时间和精力,从而迅速将想法变为现实。无论是设计

最近有一个案例展示了CrewAI、LangChain和OpenHermes2.5(由Ollama提供支持)合作的成果。他们成功地将一行简单的文字转化为一个完整的登录页面。这个案例揭示了AI Agents在协作中尚未开发的巨大潜力,以及更快速地进行市场测试想法的能力。这只是CrewAI在Replit中使用代码的一个应用场景,展示了他们的技术在实践中的可行性。

以下是一个示例,展示了如何将Ollama与CrewAI进行集成: 1. 首先,确保你已经在CrewAI平台上创建了一个项目,并获取了API密钥。 2. 在你的代码中导入Ollama和CrewAI的库文件。 3. 使用Ollama库初始化一个Ollama对象,并传入你的CrewAI API密钥。 4. 创建一个函数,用于处理从CrewAI收到的用户输入。这个函数将接收用户输入并将其传

from langchain.llms import Ollamaollama_openhermes = Ollama(model="agent")# Pass Ollama Model to Agents: When creating your agents within the CrewAI framework, you can pass the Ollama model as an argument to the Agent constructor. For instance:local_expert = Agent(role='Local Expert at this city',goal='Provide the BEST insights about the selected city',backstory="""A knowledgeable local guide with extensive informationabout the city, it's attractions and customs""",tools=[SearchTools.search_internet,BrowserTools.scrape_and_summarize_website,],llm=ollama_openhermes, # Ollama model passed hereverbose=True)

实例化 Ollama 模型

CrewAI有一个明确的愿景,那就是让工程师们能够通过AI代理的集体力量,超越传统的自动化方法。CrewAI将各种代理聚集在一起,简化决策过程,增强创造力,并迎接解决复杂挑战的挑战。

这种新型协作方式不仅提供了高效的工具和技术支持,而且还鼓励创新和实验。CrewAI 的出现为工程师们创造了一个全新的机遇,使他们能够更快速地推动想法的实现,并在竞争激烈的市场中保持领先地位。

二、什么是 CrewAI 库 ?

由 OpenAI 开发,于 2023 年 8 月发布。CrewAI 提供了一组通用的工具和库,可用于处理多代理系统的常见任务,如代理通信、协调和决策。CrewAI 的潜在应用包括机器人协作、自动驾驶、虚拟现实以及增强现实等多种不同领域。

作为一个专为构建和编排 AI Agents 组而设计的库。CrewAI 基于简单化理念以及模块化策略的模式,使得我们可以将 CrewAI 集成到我们的项目中变得轻而易举。我们可以这样理解:将 CrewAI 想象成一组构建块,每个构建块都是独一无二的,但它们都经过精心设计,可以无缝组合在一起。

从技术实现角度而言,CrewAI 建立在 LangChain 之上,这使得它能够与多种不同的现有工具兼容,包括通过 Ollama 等平台的本地开源模型。

通过借助 CrewAI,我们可以轻松构建一个强大的 AI Agents 组,以解决各种复杂任务和挑战。无论是自然语言处理、问题解答还是智能决策,CrewAI 提供了丰富的功能和灵活性。我们可以根据具体需求自由选择和组合各种模块,以创建一个符合我们预期目标的独特系统。

借助 CrewAI 的模块化设计,我们可以将现有的工具和技术与其无缝集成,实现更高效的开发和部署。基于所提供的简单易用接口和开发人员友好的文档,使得我们能够快速上手并快速实现我们的创意。

不仅如此,CrewAI 同时也是一个持续发展和更新的库,积极采纳并融合最新的研究成果和技术进展。这意味着我们可以始终与前沿的人工智能能力和最佳实践保持同步。

三、CrewAI 架构设计及实现原理

类似于 LangChain 的设计理念,CrewAI 的设计思想是让工程师们能够以简单的方式构建复杂的 AI 应用。通过模块化的方法,将功能划分为独立的构建块,每个构建块都具有特定的功能和任务。这种模块化的设计思维使得工程师们可以根据需要自由选择、组合和定制这些构建块,从而快速搭建出符合自己需求的系统。

通常来说,CrewAI 的核心组件主要涉及如下:

1、Agent - 代理

Agent 通常为我们忠诚而值得信赖的伙伴,每个 Agent 都有自己独特的个性、背景故事和技能。他们能够随时准备被协调支配,无论是去实现某一特定的功能场景、解决棘手的难题,还是探索未知的世界。

2、Task - 任务

CrewAI 任务是为了解决特定问题或完成特定目标而设计的。每个任务都具有明确的目标和要求,并且被分解成小而专注的子任务。这种任务的细分使得 Agent 能够更加集中精力,并以更高效的方式完成任务。

每个 CrewAI 任务都具有独特的特征和要求,Agent 需要根据任务的性质和目标来选择合适的方法和策略。这使得任务的执行更加灵活和自适应,Agent 可以根据具体情况做出相应的决策和调整。

3、Tools - 工具

在 CrewAI 中,Agent 被用作高效执行任务的工具。我们可以利用 LangChain 中的各种现有工具,也可以快速开发自己的工具。同时,CrewAI 也鼓励我们根据具体任务的需求,快速编写自定义工具。这种灵活性使得我们能够根据特定情况和任务的要求,定制化代理工具,以更好地满足我们的需求。

通过结合使用 LangChain 中的现有工具和自定义工具,我们能够最大程度地发挥代理的潜力,提高任务执行的效率和质量。

4、Process - 流程

Process 是根据任务的性质和复杂程度进行定制的。不同的任务可能需要不同的 Process 来达到最佳效果。Process 可以包括任务的分解、资源的分配、沟通协调等环节,旨在最大限度地提高团队的工作效率和任务完成质量。

Process 的设计也可以根据经验和实践进行不断优化和改进。通过对 Process 的不断迭代和优化,团队可以提高工作效率、减少错误和风险,并提供更好的团队协作和成果交付。

5、Crew - 执行者

Crew 在 CrewAI 中是代理人、任务和过程相结合的容器层,是任务执行的实际场所。作为一个协同合作的环境,Crew 提供了代理人之间的交流、合作和按照规定过程执行任务的平台。通过 Crew 的设计,代理人能够更好地协作并以高效的方式完成任务。

一文读懂用于构建多代理的 CrewAI 开源框架

从架构设计角度而言,经过 ReActSingleInputOutputParser 增强,每个 CrewAI Agent 本质上都是一个 LangChain Agent。该解析器经过专门修改,以便更好地进行功能支持,包含用于上下文焦点的绑定停用词,并集成了内存机制(使用 LangChain 的 ConversationSummaryMemory)以实现任务的连续性。

Agent 是建立在 LangChain 之上的,这一事实创造了飞轮效应,主要的一个是我们可以立即使用所有 LangChain 工具和工具包,从而使得 CrewAI 具有很强的可扩展性和灵活性,可用于各种任务。

在当前的迭代中,Agent 自主运行,通过自我对话来确定工具的使用。这使得其能够适应不断变化的环境和任务要求。然而,CrewAI 的未来版本计划引入不同的流程类型。这些将允许代理在更复杂的场景中协同工作,例如在团队合作任务或需要多个代理来解决单个问题的情况下。

在最新版本的 CrewAI 平台中,每个 Task 在创建时都将明确分配至指定的代理单元来执行。这有助于更清晰识别每个代理当前负责的任务类型与量,以及任务运行进度。

同时,系统还能针对每个 Task 限定其使用的工具范围,例如仅允许调用某类算法库等,从而可以有效避免由于工具限制导致的任务失败,也防止单个代理长期占用特定资源阻塞其他工作。

Crew 作为封装代理和任务的框架,促进它们顺序执行工作,从而使得更容易管理代理之间的依赖关系,并确保任务以正确的顺序执行。在业务实践中,我们可能会发现部署多个独立的 Crew(每个 Crew 配备几个特工)更为有效。这种模块化方法允许每个工作人员产生不同的结果,而不是由单个大型工作人员处理许多任务和代理处理单一输出。

四、CrewAI 与 Autogen 以及 ChatDev Agents 的对比分析

Autogen 擅长创建能够协同工作的会话代理,但其缺点是缺乏固有的流程概念。这意味着在 Autogen 中,编排代理的交互需要额外的编程。随着任务规模的增长,这可能会变得复杂和繁琐。

相对于 CrewAI, 具体来说,Autogen 在以下方面存在缺陷:

  • 缺乏流程概念:这意味着 Autogen 代理只能按照它们被编程的方式进行交互。如果需要代理以不同的方式交互,则需要进行额外的编程。
  • 编程复杂:编程 Autogen 代理的交互可能非常复杂,尤其是对于复杂的任务及逻辑。
  • 可扩展性差:Autogen 代理的编程方式不利于可扩展性。随着任务规模的增长,编程代理的交互变得更加困难。

ChatDev 将流程的概念引入了 AI 代理领域,但其实现相当僵化。ChatDev 中的自定义是有限的,并且不适合生产环境。这意味着 ChatDev 可能难以满足复杂应用程序的需求,并且可能导致可扩展性和灵活性问题。

同样,相对于 CrewAI,ChatDev 的不足主要体在以下几个方面,具体:

  • 自定义有限:ChatDev 中的自定义是有限的。这意味着 ChatDev 可能难以满足复杂应用程序的需求。
  • 不适合生产环境:ChatDev 不适合生产环境。这意味着 ChatDev 可能难以满足实际应用程序的要求。
  • 可扩展性差:ChatDev 的实现不利于可扩展性。随着任务规模的增长,ChatDev 可能难以满足应用程序的需求。

总的来说,相对于 Autogen 和 ChatDev 创建会话代理的工具,CrewAI 的构建以生产为中心,既提供了Autogen 对话代理的灵活性,又采用了 ChatDev 的结构化流程方法,但又不失灵活性。

CrewAI 基于动态的流程设计理念,具有很强的适应性,可以无缝地融入开发和生产工作流程,以使得工作流程可以根据需求进行调整和优化,以适应不同的工作场景和业务需求。

未来,CrewAI 将继续丰富其工作流程能力,支持涵盖更多领域的流程定义。同时,CrewAI 平台将进一步优化不同助手间的协作体系,提高工作效率和质量。

与此同时,CrewAI 在用户体验和定制性方面也在不断改进。基于简单直观的集成接口,可以有效地帮助企业快速定义和执行定制化的工作流,用户无需关注底层技术细节,便可安全有效地利用 AI 助手团队。

因此,从某种意义上来讲,CrewAI 不仅是一个解决人工智能协同问题的有效工具,同时,也在重新塑造人类与 AI 之间的关系模式。它将 AI 助手的能力发挥到极致,助推 AI 在各行各业的广泛应用。随着 CrewAI 技术的不断成熟,AI 将成为企业协同工作的重要力量。

Reference :[1] https://github.com/joaomdmoura/crewai

本文转载于:https://www.51cto.com/article/778088.html 如有侵犯,请联系admin@zhengruan.com删除

热门关注