NSDT工具推荐Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 - 3D道路快速建模

本博客来自 CrewAI 维护者 Joao Moura。CrewAI 是一个基于 LangChain 构建的多智能体框架,我们非常高兴能够重点介绍这项前沿工作。

1、AI 智能体 Crews 正在改变游戏规则

AI 代理正在成为改变游戏规则的因素,迅速成为解决问题、创造和创新的合作伙伴,而这正是 CrewAI 的作用所在。

想象一下,在短短几分钟内将一条思路变成一个全面的着陆页。这是我们今天用 CrewAI 创造的现实。

最近,我在一条推文中演示了这一点,使用 CrewAI 和 LangChain 与 OpenHermes2.5(由 Ollama 提供支持)将一行代码转换为完整的着陆页。结果揭示了 AI 协作中尚未开发的潜力,以及比以往任何时候都更快地对想法进行早期市场测试的能力,而这只是一个用例(使用 Replit 中的代码)。

CrewAI 的愿景很明确,即让工程师利用人工智能代理的集体力量,超越传统自动化,将代理整合在一起,简化决策,增强创造力并解决复杂的挑战。

2、通过模块化设计实现简单性

CrewAI 倡导与每位工程师产生共鸣的原则:通过模块化实现简单性。这意味着它就像一组构建块(与 LangChain 非常相似)。

CrewAI 的主要组件:

  • 代理:Agents。这些代理就像你专门的团队成员,每个人都有自己的角色、背景故事、目标和记忆
  • 工具:Tools。我们的代理用来高效执行任务的设备,您可以使用 LangChain 中现有的任何工具或快速编写自己的工具
  • 任务:Tasks。给定代理应完成的小型且集中的任务
  • 流程:Process。这是工作人员完成任务所遵循的工作流程或策略。
  • 团队:Crew。代理、任务和流程相遇的地方,这是工作发生的容器层

我们相信简单的力量可以解锁复杂性。通过将复杂的代理世界分解为这些模块化组件,我们使其变得平易近人、易于管理且有趣。

虽然个人任务很重要,但当多个代理聚在一起组成一个团队时,CrewAI 才能真正发挥其优势。团队合作——代理协作、分享目标并遵循流程以实现共同目标——从平庸的结果到令人印象深刻的结果!

CrewAI 内部协作的一个例子是授权,借助授权,代理可以请求帮助或将部分任务分配给其他人,就像我们在工作场所所做的那样。这种自发协作的能力是这个库与众不同的一个例子。

我设计 CrewAI 是为了实际的、现实世界的使用。我们努力使它成为一个可以集成到您的应用程序中的库,并且使用它几乎就像调用函数一样容易。

3、使用 CrewAI 构建

完整的代码示例可在 Replit 上作为模板获得,你可以自己自定义并在云中运行,也可以在 Github 上获得。

让我们探索一个可以从一行想法构建着陆页面(landing page)的团队的想法。组建新团队的最佳方式是首先规划出你作为人类自己完成这项工作需要经历的过程,然后我们可以将其转化为团队。

我对着陆页面的需求来自于这样一个事实:我想快速试验各种想法,看看它们是否有吸引力,所以我希望能够快速构建一个着陆页面并衡量人们对它的兴趣,这样我才能花更多的时间在上面。除了着陆页面之外,我还需要很好地传达我提供的产品或服务,以确保它引人注目。

所以这是我作为人类会做的事情:

  • 首先写一行想法,例如“一种让狗狗减肥的健康零食”。
  • 通过一些研究来扩展它,了解市场以及为什么这是一个好主意。
  • 为这个想法的着陆页面找到合适的模板。
  • 为着陆页面编写副本。
  • 使用适当的模板和副本构建着陆页面。

那么,如果我必须为此组建一个团队,我会雇佣什么样的人?

  • 高级创意分析师,了解并扩展创意的本质,确保它们很棒并专注于真正的痛点。
  • 高级沟通策略师,编写引人入胜的故事,以吸引人们参与到创意中。
  • 高级反应工程师,构建直观、美观且高转换率的着陆页面。
  • 高级内容编辑,确保着陆页面内容清晰、简洁且引人入胜。

现在我们有了自己的团队,让我们看看如何将其中的一部分转化为初始的 CrewAI 团队,从而将我们的一句话扩展为一个成熟的研究想法(完整代码位于 Replit 和 Github)。

为此,你需要创建要使用的每个代理,创建你希望他们执行的任务,然后将它们组合成一个 Crew。

# ... early imports, tools, setting OpenAI API key, etc
from crewai import Agent, Task, Crew

## Create Agents with goal, role, backstory and tools
idea_analyst = Agent(
 role="Senior Idea Analyst",
 goal= "Understand and expand upon the essence of ideas... [rest of it]",
 background_story="You're recognized as a thought leader... [rest of it]",
 verbose=True,
 tools=[
   SearchTools.search_internet,
   BrowserTools.scrape_and_summarize_website
 ]
)
# communications_strategist = Agent(...) another agent

## Create the tasks that will produce a fully formed idea proposal
expand_idea_task = Task(
 description="THIS IS A GREAT IDEA! Analyze it and conduct... [rest of description]",
 agent=idea_analyst
)
# refine_idea_task = Task(...) another task

## Create the crew that will produce a fully formed idea proposal
crew = Crew(
 agents=[idea_analyst, communications_strategist],
 tasks=[expand_idea_task, refine_idea_task],
 verbose=True
)

final_improved_idea = crew.kickoff() # returns the final idea proposal

4、自定义

我们刚刚探索的示例是 CrewAI 中最基本的设置之一,看看它有多强大!但这只是冰山一角。想象一下当你开始自定义事物时的可能性(我将在文章后面链接到一些完全可行示例)

考虑在你的团队中混合和匹配不同的 AI 大脑 (LLM)。有些可能基于云,其他则直接在你的计算机上,由你决定。如果你面临独特的挑战怎么办?没问题,你始终可以拥有一个经过微调的模型作为代理之一的大脑。与外部系统的集成怎么样?你可以制作自己的工具或利用 LangChain 提供的大量工具,例如以下示例:

# !pip install yfinance

from langchain.chat_models import ChatOpenAI
from langchain.llms import Ollama
from langchain.tools.yahoo_finance_news import YahooFinanceNewsTool

from crewai import Agent, Task, Crew

stock_analyst = Agent(
 role="Senior Stock Analyst",
 goal= "Report on stocks and analysis with suggestions ...",
 background_story="You're recognized as a major trader...",
 llm = Ollama(model="openhermes2.5-mistral") # Using local model with Ollama
 tools=[ YahooFinanceNewsTool() ], # Using a LangChain tool
 verbose=True,
)

#  Create Other Agents, Tasks and Crew

对于那些深入研究本地模型的人来说,请注意:它们可能有点棘手,尤其是较小的模型。为了充分利用它们,你可能需要调整一些设置。你应该将“观察”添加为停用词,并使用“top_p”、“repeat_last_n”和“temperature”等参数来使其按你的需要工作。这些小调整可以对你的 AI 代理的性能产生巨大的影响。

5、CrewAI的工作原理

在幕后,每个 CrewAI 代理本质上都是一个 LangChain 代理,但通过 ReActSingleInputOutputParser 进行了增强。该解析器经过特别修改,可以更好地支持角色扮演,包含用于上下文焦点的绑定停用词,并集成记忆机制(使用 LangChain 的 ConversationSummaryMemory)以实现任务的连续性。

代理建立在 LangChain 之上这一事实产生了飞轮效应,最主要的是你可以立即访问所有 LangChain 工具和工具包,仅此一项就已经解锁了许多用例。

在当前迭代中,代理自主运行,进行自我对话以确定工具的使用。然而,CrewAI 的未来版本计划引入多种流程类型。这将使各种组设置中的协作执行成为可能,允许在运行时在代理之间进行动态任务分配

任务从当前版本创建时就分配给代理,并提供了覆盖代理在执行工作时可用的工具的能力,这使得引导同一个代理执行略有不同的任务变得更容易,同时不会让太多工具压倒它。

Crew 是一个封装代理和任务的框架,促进它们按顺序执行工作。在实践中,你可能会发现部署多个独立的 Crew 更有效,每个 Crew 都有一些代理。这种模块化方法允许每个团队产生不同的结果,而不是由一个单一的大型团队处理多项任务,或由代理处理单一输出。

6、实际用例和代码

除了构建着陆页面之外,我还将 Crews 用于许多其他案例,其中一些案例在下面,其中包含其 Replit 模板的链接,你可以自行修改和尝试。

7、未来计划

目前,CrewAI 倡导“顺序”流程。 可以将其视为接力赛,每个代理完成自己的部分,然后将工作交给下一个代理。 它很简单但有效。

但这并没有充分利用 AI 代理可以协同工作的所有不同方式,因此我们不会止步于此——我们正在努力引入更复杂的流程,如“共识”和“分层”,以解锁更多潜在用途。

8、结束语

CrewAI 代表了 AI 代理的转变,它提供了一个基于多功能性和效率的薄框架,利用协作和角色扮演。它是工程师和创意人员的工具,使 AI 代理能够无缝组装成有凝聚力、高效的团队。

无论是将单一想法转化为成熟的着陆页面,还是进行复杂的想法分析,CrewAI 都擅长通过其流程处理各种任务。

从提升社交媒体影响力到构建交互式着陆页面,CrewAI 的实际应用凸显了其实用性和适应性。展望未来,CrewAI 将进一步发展,引入更复杂的流程,并继续重新定义 AI 团队合作的格局。凭借其用户友好的集成和自定义选项,CrewAI 不仅仅是一个概念,而是一个利用 AI 代理功能的有形、强大的工具。


原文链接:CrewAI Unleashed: Future of AI Agent Teams

BimAnt翻译整理,转载请标明出处