crewAI的标志,两个人在划船[1]
🤖 用于编排角色扮演的自治AI代理的尖端框架。通过促进协作智能,CrewAI使代理能够无缝协作,处理复杂任务。
•为什么选择CrewAI[2]•开始使用[3]•主要特性[4]•示例[5]•本地开源模型[6]•CrewAI x AutoGen x ChatDev[7]•贡献[8]•💬 CrewAI Discord 社区[9]•招聘咨询[10]•许可证[11]
AI协作的力量有很多可以提供的。CrewAI旨在使AI代理能够承担角色,共享目标,并像一个精密运作的团队一样运作 - 就像一支精心训练的船员。无论您是在构建一个智能助理平台,自动化的客户服务团队,还是多代理研究团队,CrewAI都提供了复杂的多代理互动的支持。
•🤖 与文档对话[13]•📄 文档Wiki[14]
要开始使用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
任务执行,但正在开发更复杂的如共识和层级等流程。
CrewAI思维导图
您可以在示例仓库中测试不同的AI团队的真实生活案例在示例仓库
·旅行规划器
·股票分析
·登录页面生成器
·在执行中加入人类输入
crewAI支持与本地模型集成,通过工具如Ollama[17]等,增强灵活性和自定义能力。这允许您使用自己的模型,这对于专门的任务或数据隐私问题特别有用。
•安装Ollama:确保Ollama在您的环境中正确安装。请按照Ollama提供的安装指南进行详细操作。•配置Ollama:设置Ollama以便与您的本地模型协作。你可能需要使用Modelfile来调整模型[19]。我建议添加Observation
作为停用词,并调整top_p
和temperature
。
•实例化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
)
·Autogen:Autogen在创建能够协同工作的对话代理方面表现出色,但它缺乏内在的流程概念。在Autogen中,编排代理的互动需要额外的编程,随着任务规模的增长,这可能变得复杂和繁琐。
·ChatDev:ChatDev引入了流程概念到AI代理领域,但其实现相当僵硬。ChatDev的自定义限制较多,不适合生产环境,这可能阻碍在实际应用中的可伸缩性和灵活性。
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
[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