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

crewAI

picture.image 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.安装


        
            

          pip install crewai
        
      

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


        
            

          pip install duckduckgo-search
        
      

2.设置您的团队


          
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任务执行,但正在开发更复杂的如共识和层级等流程。

picture.image

CrewAI思维导图

示例

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

代码

·旅行规划器

·股票分析

·登录页面生成器

·在执行中加入人类输入

视频

快速教程

picture.image

旅行规划器

picture.image

股票分析

picture.image

[16]本地开源模型

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

[18]设置Ollama

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

[20]将Ollama与CrewAI集成

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


          
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仓库。

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

· 添加您的功能或改进。

· 发送拉取请求。

· 我们感谢您的参与!

安装依赖


          
Copy code
          
poetry lockpoetry install
      

虚拟环境


          
Copy code
          
poetry shell
      

预提交钩子


          
Copy code
          
pre-commit install
      

运行测试


          
Copy code
          
poetry run pytest
      

打包


          
Copy code
          
poetry build
      

本地安装


          
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

0
0
0
0
评论
未登录
暂无评论