多Agent框架之-CrewAI-人工智能代理团队的未来

这篇具有很好参考价值的文章主要介绍了多Agent框架之-CrewAI-人工智能代理团队的未来。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CrewAI- a role playing AI Agents

git地址:https://github.com/joaomdmoura/crewai#why-crewai

langchain地址:CrewAI Unleashed: Future of AI Agent Teams

Agent具有与另一个Agent联系的能力,以委派工作或提出问题。

任务可以使用特定的代理工具覆盖,这些工具应该被使用,同时还可以指定特定的代理来处理它们。

流程定义了代理如何协同工作:任务如何分配给代理。代理之间如何互动。代理如何执行它们的任务。

1 CrewAI相关概念

1.1 Agent相关

在 CrewAI 中,Agent是一个被编程为执行任务、做出决策并与其他代理进行通信的自治单元。将Agent视为团队的成员,具有特定的技能和特定的工作要做。Agent可以担任不同的角色,例如“研究员”、“作家”或“客户支持”,每个角色都有助于团队的总体目标。

Agent的关键属性:
researcher = Agent(
  role:定义代理在团队中的职能。它决定了代理最适合的任务类型。
  goal:代理想要实现的个人目标。它指导代理人的决策过程。
  backstory:为代理的角色和目标提供背景,丰富交互和协作动态。
  tools:可用来执行任务的一组能力或功能。工具可以共享或用于特定代理。
  verbose:这使您可以实际查看 Crew 执行期间发生的情况。
  allow_delegation:座席可以相互委派任务或问题,确保每项任务都由最合适的座席处理。
)
Agent的生命周期:
  • 初始化:使用定义的角色、目标、背景故事和工具集创建代理。

  • 任务分配:代理直接或通过机组人员的流程管理分配任务。

  • 执行:代理使用其可用工具并根据其角色和目标执行任务。

  • 协作:在整个执行过程中,代理可以与其他代理进行通信以进行委托、查询或协助。

创建代理例子:

可以按照下述格式进行代理的创建

from crewai import Agent

# Create an agent with a role and a goal
agent = Agent(
  role='Data Analyst',
  goal='Extract actionable insights',
  verbose=True,
  backstory="You'er a data analyst at a large company. I am responsible for analyzing data and providing insights to the business. I am currently working on a project to analyze the performance of our marketing campaigns. I have been asked to provide insights on how to improve the performance of our marketing campaigns.",
  tools=[
    SearchTools.search_internet,
    BrowserTools.scrape_and_summarize_website,
  ],
   llm=...
)
代理交互:

代理可以使用 CrewAI 的内置委托和通信机制相互交互。这允许在团队内部进行动态任务管理和问题解决。

1.2 Task相关

在 CrewAI 框架中,任务是代理负责完成的个人分配。它们是人工智能团队将承担的基本工作单元。了解如何定义和管理任务是充分发挥 CrewAI 潜力的关键。CrewAI 中的任务封装了代理执行该任务所需的所有信息,包括描述、分配给它的代理以及所需的任何特定工具。任务设计灵活,可根据您的需要进行简单和复杂的操作。

Task的关键属性:

CrewAI 中的每个任务都有几个属性:

  • 描述:清晰简洁地说明需要做什么。

  • 代理:分配给任务的代理(可选)。如果未指定代理,则任何代理都可以根据定义的流程来接取任务。

  • 工具:代理可以用来完成任务的工具列表(可选)。如有必要,这些可以覆盖代理的默认工具。

创建任务:

以下是一个创建task的例子:

from crewai import Task

# Define a simple task with just a description
simple_task = Task(description='Validate user input data')

# Define a task with a designated agent and specific tools
advanced_task = Task(description='Generate monthly sales report', agent=sales_agent, tools=[reporting_tool])
Task的分配:

可以通过多种方式将任务分配给代理:

  • 通过在创建任务时指定代理。 上述例子所示:task的属性中加入代理

  • 通过 Crew 的流程,可以根据代理角色、可用性或其他标准分配任务。

1.3 process相关

流程是 CrewAI 工作流程管理的核心,类似于人类团队组织工作的方式。在 CrewAI 中,流程定义了代理执行任务的顺序和方式,反映了您在运作良好的团队中所期望的协调。CrewAI 中的流程可以被视为 AI 代理如何处理其工作负载的游戏计划。正如项目经理根据团队成员的技能和项目时间表将任务分配给他们一样,CrewAI 也将任务分配给代理以确保高效的工作流程。

流程类型

现在主要有三种,目前只支持顺序流程

  • 顺序(支持):这是目前在 CrewAI 中实现的唯一流程。它确保任务按给定的顺序一次处理一个,就像接力赛中一个跑步者将接力棒传递给下一个跑步者一样。

  • 共识(WIP):设想未来的更新,共识过程将使代理能够就任务执行做出联合决策,类似于在继续之前在会议中达成的团队共识。

  • 分层(WIP):同样在管道中,此过程将引入任务执行的命令链,其中某些代理可能有权确定任务的优先级或委派任务,类似于传统的公司层次结构。这些额外的流程一旦实施,将为代理提供更细致、更复杂的方式来交互和完成任务,就像复杂组织结构中的团队一样。

顺序过程的分配:

要将进程分配给工作组,只需在创建工作组时进行设置即可。代码如下所示:

from crewai import Crew

# Create a crew with a sequential process
crew = Crew(agents=my_agents, tasks=my_tasks, process=sequential_process)

2 CrewAI框架

CrewAI的主要特征为:

  • 基于角色的Agent设计:定制具有特定角色、目标和工具的Agent。

  • 代理间自主委派:代理可以自主委派任务并相互查询,提高解决问题的效率。

  • 灵活的任务管理:使用可定制的工具定义任务并将其动态分配给代理。

  • 流程驱动:具有流程性,虽然目前仅支持sequential任务执行,但正在处理更复杂的流程,例如共识和分层。这也是其他多Agent框架不支持的。

框架如下所示:

多Agent框架之-CrewAI-人工智能代理团队的未来,人工智能,ai,langchain

3 实现案例

代码:

import os
from crewai import Agent, Task, Crew, Process

os.environ["OPENAI_API_KEY"] = "Your Key"

# Define your agents with roles and goals
researcher = Agent(
  role='Researcher',
  goal='Discover new insights',
  backstory="You're a world class researcher working on a major data science company",
  verbose=True,
  allow_delegation=False
  # llm=OpenAI(temperature=0.7, model_name="gpt-4"). It uses langchain.chat_models, default is GPT4
)
writer = Agent(
  role='Writer',
  goal='Create engaging content',
  backstory="You're a famous technical writer, specialized on writing data related content",
  verbose=True,
  allow_delegation=False
)

# Create tasks for your agents
task1 = Task(description='Investigate the latest AI trends', agent=researcher)
task2 = Task(description='Write a blog post on AI advancements', agent=writer)

# Instantiate your crew with a sequential process
crew = Crew(
  agents=[researcher, writer],
  tasks=[task1, task2],
  verbose=True, # Crew verbose more will let you know what tasks are being worked on
  process=Process.sequential # Sequential process will have tasks executed one after the other and the outcome of the previous one is passed as extra content into this next.
)

# Get your crew to work!
result = crew.kickoff()

顺序执行流程

def __sequential_loop(self) -> str:
遍历该(crew)中的所有任务
当前任务的execute方法执行任务,传递上一个任务的执行结果作为参数,并将新的执行结果赋值给task_outcome
按顺序执行任务,每个任务的执行结果会作为下一个任务的输入。在执行每个任务之前,如果代理允许委托,会添加一些委托工具。

4 与其他多Agent框架对比

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

  • ChatDev:ChatDev 将流程的概念引入了 AI 代理领域,但其实现了相当的僵化。ChatDev中的自定义是有限的,并且不适合生产环境,这可能会阻碍实际应用程序中的可扩展性和灵活性

CrewAI 的优势:CrewAI 的构建以生产为中心。它提供了 Autogen 对话代理的灵活和 ChatDev 的成型流程方法,但没有僵化。CrewAI的流程设计为动态且强大,可无缝适配开发和生产工作流程。文章来源地址https://www.toymoban.com/news/detail-775925.html

到了这里,关于多Agent框架之-CrewAI-人工智能代理团队的未来的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能 Agent 简介:核心原理 / 数学公式 / 实现算法 / 代码实例

    人工智能Agent(AI Agent)是一个自动化的系统,它可以感知其环境并根据其感知进行决策以实现特定的目标。这些Agent可以是简单的程序,如搜索引擎的爬虫,也可以是复杂的系统,如自动驾驶汽车。AI Agent的主要目标是通过学习和优化来提高其性能。 AI Agent的实现原理主要基

    2024年02月12日
    浏览(58)
  • SWE-Agent 这是针对本地模型的新人工智能一个开源项目

    完全自主的编码代理,可以解决 GitHub 问题。 它在编码基准测试中的得分几乎与 Devin 一样高。 这是完整的评论和教程。 SWE-agent 将 LM(例如 GPT-4)转变为软件工程代理,可以修复真实 GitHub 存储库中的错误和问题。 🎉 在完整的 SWE-bench 测试集上,SWE-agent 修复了 12.29% 的问题

    2024年04月26日
    浏览(44)
  • 【测试转型】人工智能的当下,测试团队如何敏捷转型 —— 无测试组织

    初次看到“ 无测试组织 ”的朋友可能会觉得有标题党之嫌,类似“测试岗位已死”的论调每几年就会在媒体和圈子里传播一轮。难道“狼”又要来了吗? 实际上,行业对测试工程师的招聘数量不降反升,随着新兴公司的蓬勃发展,测试工程师的薪酬也水涨船高。显然,“

    2024年02月08日
    浏览(57)
  • 【人工智能】— 逻辑Agent、一般逻辑、Entailment 蕴涵、命题逻辑、前向链接、反向链接、Resolution归结

    逻辑智能体:基于知识的智能体 知识和推理的重要性 部分可观察的环境 自然语言理解 基于知识的智能体的灵活性 知识库是一组用形式化语言表述的陈述句,其中包含有系统需要了解的信息。 在构建一个智能体时,通常采用“告诉”和“询问”的方式,即先将需要的知识加

    2024年02月08日
    浏览(45)
  • Teamlinker:基于人工智能的新一代团队协作开源解决方案

    企业用户团队协作解决方案 团队协作从未如此轻松 在上一家工作的时候,当时我们用的项目管理软件是 jira ,视频会议是 zoom ,日历是 office ,平时的沟通则是用的微信,在不同的平台间切换是一件让人疲惫不堪的事情,同时公司每年在这些产品的开销也很多,当时我就有想

    2024年02月03日
    浏览(72)
  • 【二等奖方案】基于人工智能的漏洞数据分类赛题「道可道,非常道」团队解题思路

    2022 CCF BDCI 大赛 · 数字安全公开赛「基于人工智能的漏洞数据分类」赛题二等奖团队 「道可道,非常道」战队获奖方案,赛题地址: http://go.datafountain.cn/s57 本团队具有丰富的比赛和项目经验。在AI大赛上多次拿到Top成绩,其中包括阿里云天池安全恶意程序检测第一名、科大讯

    2024年02月16日
    浏览(47)
  • 探索图文处理的未来:知名学府与合合信息团队分享NLP实践经验,人工智能引领技术革新

    相信最近很多朋友关注的公众号和短视频号都有关于ChatGPT的文章或者视频,对此我就不再过多描述“生成式人工智能”是促成ChatGPT落地的重要技术,“ChatGPT之父”阿尔特曼曾说:“我认为我们离生成式人工智能还有一定距离。至于判断标准,根据我过去五年甚至更长时间的

    2024年02月02日
    浏览(72)
  • 人工智能学习框架—飞桨Paddle人工智能

    机器学习的三要素:模型、学习策略、优化算法。 当我们用机器学习来解决一些模式识别任务时,一般的流程包含以下几个步骤: 浅层学习 (Shallow Learning):不涉及特征学习,其特征主要靠人工经验或特征转换方法来抽取。 底层特征VS高层语义:人们对文本、图像的理解无法

    2024年02月12日
    浏览(52)
  • 【人工智能业务概述】—人工智能的技术框架

    人工智能的技术框架按照产业生态通常可以划分为基础层、技术层、应用层三大板块。其中,基础层提供了支撑人工智能应用的基础设施和技术,包括存储和处理大规模数据的能力,以及高性能的计算和通信基础设施;技术层提供了各种人工智能技术和算法,用于处理和分析

    2024年02月02日
    浏览(53)
  • 人工智能与IP代理池:解析网络数据采集的未来

    随着互联网的快速发展,数据成为了当今社会最宝贵的资源之一。然而,要获取大量的网络数据并进行有效的分析,往往需要面对诸多挑战,其中之一就是网络封锁与反爬虫机制。在这个背景下,人工智能(AI)技术和IP代理池成为了破解这些限制的重要工具。本文将深入探讨

    2024年04月17日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包