[AI CrewAI] 你来当老板,组建AI团队,协作AI Agent完成任务

简介: [AI CrewAI] 你来当老板,组建AI团队,协作AI Agent完成任务

为什么要使用CrewAI?

AI协作的力量不容小觑。CrewAI旨在让AI代理能够扮演角色、共享目标并作为一个协调的单元运作——就像一支训练有素的团队。无论您是在构建智能助手平台、自动化客户服务组合,还是多代理研究团队,CrewAI都提供了复杂多代理交互的基础。

开始

安装

pip install crewai
pip install crewai[tools]

代码

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

os.environ["OPENAI_API_KEY"] = "YOUR_API_KEY"
os.environ["SERPER_API_KEY"] = "Your Key" # serper.dev API key

# You can choose to use a local model through Ollama for example. See https://docs.crewai.com/how-to/LLM-Connections/ for more information.

# os.environ["OPENAI_API_BASE"] = 'http://localhost:11434/v1'
# os.environ["OPENAI_MODEL_NAME"] ='openhermes'  # Adjust based on available model
# os.environ["OPENAI_API_KEY"] ='sk-111111111111111111111111111111111111111111111111'

# You can pass an optional llm attribute specifying what model you wanna use.
# It can be a local model through Ollama / LM Studio or a remote
# model like OpenAI, Mistral, Antrophic or others (https://docs.crewai.com/how-to/LLM-Connections/)
#
# import os
# os.environ['OPENAI_MODEL_NAME'] = 'gpt-3.5-turbo'
#
# OR
#
# from langchain_openai import ChatOpenAI

search_tool = SerperDevTool()

# Define your agents with roles and goals
researcher = Agent(
  role='Senior Research Analyst',
  goal='Uncover cutting-edge developments in AI and data science',
  backstory="""You work at a leading tech think tank.
  Your expertise lies in identifying emerging trends.
  You have a knack for dissecting complex data and presenting actionable insights.""",
  verbose=True,
  allow_delegation=False,
  # You can pass an optional llm attribute specifying what model you wanna use.
  # llm=ChatOpenAI(model_name="gpt-3.5", temperature=0.7),
  tools=[search_tool]
)
writer = Agent(
  role='Tech Content Strategist',
  goal='Craft compelling content on tech advancements',
  backstory="""You are a renowned Content Strategist, known for your insightful and engaging articles.
  You transform complex concepts into compelling narratives.""",
  verbose=True,
  allow_delegation=True
)

# Create tasks for your agents
task1 = Task(
  description="""Conduct a comprehensive analysis of the latest advancements in AI in 2024.
  Identify key trends, breakthrough technologies, and potential industry impacts.""",
  expected_output="Full analysis report in bullet points",
  agent=researcher
)

task2 = Task(
  description="""Using the insights provided, develop an engaging blog
  post that highlights the most significant AI advancements.
  Your post should be informative yet accessible, catering to a tech-savvy audience.
  Make it sound cool, avoid complex words so it doesn't sound like AI.""",
  expected_output="Full blog post of at least 4 paragraphs",
  agent=writer
)

# Instantiate your crew with a sequential process
crew = Crew(
  agents=[researcher, writer],
  tasks=[task1, task2],
  verbose=2, # You can set it to 1 or 2 to different logging levels
  process = Process.sequential
)

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

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

关键特性

  • 基于角色的代理设计:根据特定角色、目标和工具定制代理。
  • 自主代理间委托:代理可以自主地委托任务并在彼此之间进行询问,提高问题解决效率。
  • 灵活的任务管理:使用可定制工具定义任务,并动态地将它们分配给代理。
  • 流程驱动:目前仅支持顺序任务执行和层次化流程,但更复杂的流程(如共识和自主流程)正在开发中。
  • 保存输出为文件:将单个任务的输出保存为文件,以便您稍后使用。
  • 解析输出为Pydantic或Json:可以将单个任务的输出解析为Pydantic模型或Json,如果您愿意的话。
  • 与开源模型兼容:使用Open AI或开源模型运行您的团队,请参阅将crewAI连接到LLMs页面,了解有关配置代理与模型连接的详细信息,甚至包括在本地运行的模型!

crewAI-mindmap

CrewAI与其它产品的比较

  • Autogen:虽然Autogen在创建能够协同工作的对话代理方面做得很好,但它缺乏固有的流程概念。在Autogen中,协调代理之间的交互需要额外的编程,随着任务规模的增长,这可能会变得复杂和笨重。
  • ChatDev:ChatDev将流程的概念引入到AI代理领域,但其实现相当僵硬。ChatDev的定制化有限,并不适合生产环境,这可能会阻碍现实世界应用中的可扩展性和灵活性。

CrewAI的优势:CrewAI是专为生产环境设计的。它提供了与Autogen对话代理相当的灵活性,以及ChatDev的结构化流程方法,但却没有那种僵硬。CrewAI的流程旨在动态和适应性强,无缝融入开发和生产工作流程中。

亮点

我们只需要写一些如上的代码,定义一些角色代理(agent)和任务(task),然后让CrewAI来协调他们,完成任务,达到目的。

这样我们就可以专注于任务本身,而不是代理之间的交互。这是一个非常有趣的概念,我很期待看到CrewAI在未来的发展中能够发挥出更大的作用。


相关文章
|
3天前
|
人工智能 自然语言处理 Java
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
文章介绍了Spring AI,这是Spring团队开发的新组件,旨在为Java开发者提供易于集成的人工智能API,包括机器学习、自然语言处理和图像识别等功能,并通过实际代码示例展示了如何快速集成和使用这些AI技术。
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
|
2天前
|
人工智能 监控 决策智能
震惊!多角色 Agent 携手合作,竟能如此高效搞定复杂任务,背后秘密大揭晓!
在复杂任务环境中,单个智能体常因能力与资源限制而难以应对。多智能体系统(multi-agent systems)通过将任务分解并分配给各具专长的智能体,实现了高效协同工作。例如,在物流配送中,不同智能体分别处理路线规划、货物装载与交通监控,确保任务准确高效完成。同样,在大型游戏开发项目里,各智能体专注剧情设计、美术创作等特定领域,显著提升项目质量和开发速度。通过共享信息、协商决策等方式,多智能体系统展现出强大灵活性与适应性,为物流、软件开发等领域带来新机遇。
10 2
|
6天前
|
人工智能 搜索推荐 API
AI智能体研发之路-工程篇(二):Dify智能体开发平台一键部署
AI智能体研发之路-工程篇(二):Dify智能体开发平台一键部署
26 2
|
6天前
|
人工智能 API 异构计算
AI智能体研发之路-工程篇(四):大模型推理服务框架Xinference一键部署
AI智能体研发之路-工程篇(四):大模型推理服务框架Xinference一键部署
34 2
|
6天前
|
机器学习/深度学习 人工智能 PyTorch
AI智能体研发之路-模型篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比
AI智能体研发之路-模型篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比
20 1
|
4天前
|
人工智能 数据挖掘 知识图谱
预训练模型STAR问题之AI团队探索智能对话中的问题如何解决
预训练模型STAR问题之AI团队探索智能对话中的问题如何解决
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
AI与人类协作的未来:探索智能辅助系统的新篇章
本文旨在探讨人工智能(AI)如何在未来的工作中与人类形成更紧密的合作关系。通过分析当前的技术趋势和未来的发展预测,我们将揭示AI如何成为增强人类能力的助手,而非替代者。文章将详细讨论AI在医疗、教育和创意产业中的应用案例,并展望未来AI技术的发展方向和潜在的社会影响。最后,我们将反思这种合作对人类社会的深远意义,并提出对未来工作场景的建议。
|
6天前
|
机器学习/深度学习 人工智能 Linux
【机器学习】Dify:AI智能体开发平台版本升级
【机器学习】Dify:AI智能体开发平台版本升级
30 0
|
6天前
|
机器学习/深度学习 人工智能 缓存
AI智能体研发之路-模型篇(二):DeepSeek-V2-Chat 训练与推理实战
AI智能体研发之路-模型篇(二):DeepSeek-V2-Chat 训练与推理实战
12 0
|
6天前
|
人工智能 物联网 异构计算
AI智能体研发之路-模型篇(一):大模型训练框架LLaMA-Factory在国内网络环境下的安装、部署及使用
AI智能体研发之路-模型篇(一):大模型训练框架LLaMA-Factory在国内网络环境下的安装、部署及使用
28 0