首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >crewAI—用于编排角色扮演的AI agent(超级智能体)

crewAI—用于编排角色扮演的AI agent(超级智能体)

作者头像
山行AI
发布2024-01-12 15:04:59
发布2024-01-12 15:04:59
9.7K00
代码可运行
举报
文章被收录于专栏:山行AI山行AI
运行总次数:0
代码可运行

crewAI

crewAI的标志,两个人在划船[1]

🤖 用于编排角色扮演的自治AI代理的尖端框架。通过促进协作智能,CrewAI使代理能够无缝协作,处理复杂任务。

•为什么选择CrewAI[2]•开始使用[3]•主要特性[4]•示例[5]•本地开源模型[6]•CrewAI x AutoGen x ChatDev[7]•贡献[8]•💬 CrewAI Discord 社区[9]•招聘咨询[10]•许可证[11]

[12]为什么选择CrewAI?

AI协作的力量有很多可以提供的。CrewAI旨在使AI代理能够承担角色,共享目标,并像一个精密运作的团队一样运作 - 就像一支精心训练的船员。无论您是在构建一个智能助理平台,自动化的客户服务团队,还是多代理研究团队,CrewAI都提供了复杂的多代理互动的支持。

•🤖 与文档对话[13]•📄 文档Wiki[14]

[15]开始使用

要开始使用CrewAI,请遵循以下简单步骤:

1.安装

代码语言:javascript
代码运行次数:0
运行
复制
pip install crewai

下面的例子也使用了duckduckgo,所以也安装它

代码语言:javascript
代码运行次数:0
运行
复制
pip install duckduckgo-search

2.设置您的团队

代码语言:javascript
代码运行次数:0
运行
复制
import os
from crewai import Agent, Task, Crew, Process

os.environ["OPENAI_API_KEY"] = "您的密钥"

# 您可以选择使用本地模型,例如通过Ollama。
#
# from langchain.llms import Ollama
# ollama_llm = Ollama(model="openhermes")

# 安装此示例的duckduckgo-search:
# !pip install -U duckduckgo-search

from langchain.tools import DuckDuckGoSearchRun
search_tool = DuckDuckGoSearchRun()

# 定义具有角色和目标的代理
researcher = Agent(  role='高级研究分析师',  goal='揭示AI和数据科学的最前沿发展',  backstory="""你在一个领先的科技智库工作。
  你擅长识别新兴趋势。
  你善于分析复杂数据并呈现可操作的洞察。""",  verbose=True,  allow_delegation=False,  tools=[search_tool]  # 您可以传递一个可选的llm属性,指定您想使用的模式。
  # 它可以是通过Ollama / LM Studio的本地模型或者像OpenAI, Mistral, Antrophic等其他的远程模型 (https://python.langchain.com/docs/integrations/llms/)
  #
  # 示例:
  # llm=ollama_llm # 上面文件中已定义
  # llm=ChatOpenAI(model_name="gpt-3.5", temperature=0.7)
)
writer = Agent(  role='技术内容策略师',  goal='撰写关于技术进步的引人入胜的内容',  backstory="""你是一名著名的内容策略师,以
  你富有洞察力和引人入胜的文章而闻名。
  你将复杂概念转化为引人注目的叙述。""",  verbose=True,  allow_delegation=True,  # (可选) llm=ollama_llm
)

# 为您的代理创建任务
task1 = Task(  description="""进行2024年AI最新进展的全面分析。
  确定关键趋势、突破性技术和潜在的行业影响。
  您的最终答案必须是一份完整的分析报告""",  agent=researcher
)

task2 = Task(  description="""使用所提供的洞见,开发一篇引人入胜的博客文章
  突出最重要的AI进步。
  您的文章应该既有信息量又易于理解,适合技术娴熟的受众。
  使其听起来很酷,避免使用复杂的词汇,这样听起来不像AI。
  您的最终答案必须是至少4段的完整博客文章。""",  agent=writer
)

# 实例化您的团队并采用顺序处理
crew = Crew(  agents=[researcher, writer],  tasks=[task1, task2],  verbose=2, # 您可以将其设置为1或2以获得不同的日志记录级别
)

# 让您的团队开始工作!
result = crew.kickoff()

print("######################")
print(result)

目前唯一支持的处理流程是Process.sequential,其中一个任务在另一个任务之后执行,前一个任务的结果被作为额外内容传递给下一个任务。

主要特性

·基于角色的代理设计:为代理自定义具体的角色、目标和工具。

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

·灵活的任务管理:使用可自定义的工具定义任务并动态地分配给代理。

·流程驱动:目前仅支持sequential任务执行,但正在开发更复杂的如共识和层级等流程。

CrewAI思维导图

示例

您可以在示例仓库中测试不同的AI团队的真实生活案例在示例仓库

代码

·旅行规划器

·股票分析

·登录页面生成器

·在执行中加入人类输入

视频

快速教程

旅行规划器

股票分析

[16]本地开源模型

crewAI支持与本地模型集成,通过工具如Ollama[17]等,增强灵活性和自定义能力。这允许您使用自己的模型,这对于专门的任务或数据隐私问题特别有用。

[18]设置Ollama

安装Ollama:确保Ollama在您的环境中正确安装。请按照Ollama提供的安装指南进行详细操作。•配置Ollama:设置Ollama以便与您的本地模型协作。你可能需要使用Modelfile来调整模型[19]。我建议添加Observation作为停用词,并调整top_ptemperature

[20]将Ollama与CrewAI集成

•实例化Ollama模型:创建一个Ollama模型的实例。在实例化时,你可以指定模型和基础URL。例如:

代码语言:javascript
代码运行次数:0
运行
复制
from langchain.llms import Ollama
ollama_openhermes = Ollama(model="openhermes")
# 将Ollama模型传递给代理:在CrewAI框架内创建代理时,你可以将Ollama模型作为参数传递给Agent构造器。例如:

local_expert = Agent(  role='该城市的本地专家',  goal='提供关于所选城市的最佳见解',  backstory="""一个了解城市、其景点和习俗的信息丰富的本地向导""",  tools=[    SearchTools.search_internet,    BrowserTools.scrape_and_summarize_website,  ],  llm=ollama_openhermes, # 在这里传递Ollama模型
  verbose=True
)

CrewAI的比较

·Autogen:Autogen在创建能够协同工作的对话代理方面表现出色,但它缺乏内在的流程概念。在Autogen中,编排代理的互动需要额外的编程,随着任务规模的增长,这可能变得复杂和繁琐。

·ChatDev:ChatDev引入了流程概念到AI代理领域,但其实现相当僵硬。ChatDev的自定义限制较多,不适合生产环境,这可能阻碍在实际应用中的可伸缩性和灵活性。

CrewAI的优势:

CrewAI建立在生产考虑之上。它既提供了Autogen的对话代理的灵活性,又有ChatDev的结构化流程方法,但没有僵硬性。CrewAI的流程旨在动态且适应性强,无缝融入开发和生产工作流程。

贡献

CrewAI是开源的,我们欢迎贡献。如果您希望贡献,请:

·Fork仓库。

·为您的功能创建一个新分支。

·添加您的功能或改进。

·发送拉取请求。

·我们感谢您的参与!

安装依赖

代码语言:javascript
代码运行次数:0
运行
复制
Copy code
poetry lockpoetry install

虚拟环境

代码语言:javascript
代码运行次数:0
运行
复制
Copy code
poetry shell

预提交钩子

代码语言:javascript
代码运行次数:0
运行
复制
Copy code
pre-commit install

运行测试

代码语言:javascript
代码运行次数:0
运行
复制
Copy code
poetry run pytest

打包

代码语言:javascript
代码运行次数:0
运行
复制
Copy code
poetry build

本地安装

代码语言:javascript
代码运行次数:0
运行
复制
Copy code
pip install dist/*.tar.gz

引用

更多信息参考:https://github.com/joaomdmoura/crewAI

References

[1]两个人在划船: https://github.com/joaomdmoura/crewAI/blob/main/crewai_logo.png

[2] 为什么选择CrewAI: https://github.com/joaomdmoura/crewAI#why-crewai [3] 开始使用: https://github.com/joaomdmoura/crewAI#getting-started [4] 主要特性: https://github.com/joaomdmoura/crewAI#key-features [5] 示例: https://github.com/joaomdmoura/crewAI#examples [6] 本地开源模型: https://github.com/joaomdmoura/crewAI#local-open-source-models [7] CrewAI x AutoGen x ChatDev: https://github.com/joaomdmoura/crewAI#how-crewai-compares [8] 贡献: https://github.com/joaomdmoura/crewAI#contribution [9] 💬 CrewAI Discord 社区: https://discord.gg/4ZqbAStv [10] 招聘咨询: https://github.com/joaomdmoura/crewAI#hire-consulting [11] 许可证: https://github.com/joaomdmoura/crewAI#license [12] : https://github.com/joaomdmoura/crewAI#why-crewai [13] 与文档对话: https://chat.openai.com/g/g-qqTuUWsBY-crewai-assistant [14] 文档Wiki: https://github.com/joaomdmoura/CrewAI/wiki [15] : https://github.com/joaomdmoura/crewAI#getting-started [16] : https://github.com/joaomdmoura/crewAI#local-open-source-models [17] Ollama: https://ollama.ai/ [18] : https://github.com/joaomdmoura/crewAI#setting-up-ollama [19] 调整模型: https://github.com/jmorganca/ollama/blob/main/docs/modelfile.md [20] : https://github.com/joaomdmoura/crewAI#integrating-ollama-with-crewai

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 山行AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • crewAI
    • [12]为什么选择CrewAI?
    • [15]开始使用
    • 主要特性
    • 示例
    • 代码
    • 视频
      • 快速教程
      • 旅行规划器
      • 股票分析
    • [16]本地开源模型
      • [18]设置Ollama
      • [20]将Ollama与CrewAI集成
    • CrewAI的比较
      • CrewAI的优势:
    • 贡献
      • 安装依赖
      • 虚拟环境
      • 预提交钩子
      • 运行测试
      • 打包
      • 本地安装
      • 引用
      • References
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档