前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CrewAI如何使AI代理成为协作团队成员

CrewAI如何使AI代理成为协作团队成员

作者头像
云云众生s
发布于 2025-01-04 01:12:21
发布于 2025-01-04 01:12:21
20800
代码可运行
举报
文章被收录于专栏:云云众生s云云众生s
运行总次数:0
代码可运行

CrewAI 的架构远远超越了静态工作流,它支持智能、上下文感知和协作的 AI 代理。

译自 How CrewAI Enables AI Agents as Collaborative Team Members,作者 Janakiram MSV。

在本系列的第一部分中,我们介绍了 CrewAI,将其功能与 AI 智能体的关键属性进行了映射。现在,我们将更仔细地研究使CrewAI真正强大的核心概念,并探讨其架构如何使开发人员能够构建复杂、智能的系统。

CrewAI 的核心是基于角色的AI 智能体的概念。每个智能体都设计用于执行特定任务,其行为由定义的角色、目标和背景故事引导。这些智能体不仅仅执行任务——它们动态协作、共享信息并适应工作流程的需求。

考虑这样一种场景:一个智能体充当市场研究分析师,负责识别市场趋势。可以如下配置此智能体:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from crewai import Agent
from crewai_tools import SerperDevTool  
 
researcher = Agent(  
    role="Market Research Analyst",  
    goal="Identify emerging market trends",  
    backstory="An experienced analyst with a focus on technology and startups.",  
    llm="gpt-4o-mini",  # Specifies the language model  
    tools=[SerperDevTool()],  # Integrates a web search tool  
    memory=True,  # Retains interaction history  
    allow_delegation=False,  # Restricts task delegation  
    verbose=True  # Enables detailed logs  
) 

在这里,智能体配置了特定的角色、明确的目标和背景故事来解释其行为。其他属性,例如集成工具(例如,网络搜索)和内存功能,使智能体能够智能地适应工作流程。

CrewAI 中的模块化

CrewAI 最强大的功能之一是其模块化设计,它允许开发人员将各种组件——大型语言模型 (LLM)、工具、向量数据库和内存——无缝地与智能体关联。这种模块化架构确保可以自定义和扩展智能体以适应各种任务和工作流程,而无需进行重大重新配置。

CrewAI 智能体与 LLM 无关,这意味着它们可以根据任务要求利用任何开源或专有语言模型。开发人员可以在智能体级别指定 LLM 提供商和模型,从而确保灵活选择符合性能、成本或隐私需求的模型。

例如,集成OpenAIGPT-4o-mini 或其他模型非常简单:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from crewai import Agent, LLM
 
custom_llm = LLM(
    model="gpt-4o-mini",
    temperature=0.7,
    max_tokens=4000
)
 
researcher = Agent(
    role="AI Researcher",
    goal="Analyze AI adoption trends",
    backstory="A data-driven analyst specializing in AI trends",
    llm=custom_llm
)

CrewAI 支持向量数据库集成,以启用检索增强生成 (RAG) 工作流程。通过将语言模型与向量嵌入相结合,智能体可以从结构化或非结构化数据源检索上下文相关的信,从而提高响应准确性和基础性。

例如,配置为搜索向量数据库以获取研究内容的智能体可以定义如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from crewai import Agent, Task, Crew, tools
from langchain.vectorstores import Chroma
from langchain.embeddings import OpenAIEmbeddings
 
# Initialize vector database
vectorstore = Chroma(
    embedding_function=OpenAIEmbeddings(),
    persist_directory="./research_db"
)
 
# Create a custom tool for vector search
@tools.tool('Vector Search')
def vector_search(query: str) -> str:
    """Search vector database for relevant context"""
    results = vectorstore.similarity_search(query)
    return str(results)
 
# Create a research agent with vector database access
researcher = Agent(
    role='Research Specialist',
    goal='Retrieve precise information from vector database',
    backstory='I am an expert at retrieving and analyzing information from databases',
    tools=[vector_search],
    verbose=True
)
 
# Define task utilizing vector database
research_task = Task(
    description='Conduct targeted research using vector database',
    agent=researcher
)
 
# Create crew
crew = Crew(
    agents=[researcher],
    tasks=[research_task],
    verbose=True
)
 
# Execute workflow
result = crew.kickoff()

使用 CrewAI 构建工作流程

CrewAI通过使代理在结构化工作流中协作,促进了多代理间的无缝协调。工作流可以定义为顺序的、层次的或异步的,这取决于任务的性质。

一个简单的例子说明了两个代理——市场研究员和内容策略师——如何协作以产生洞察并制定营销策略。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from crewai import Agent, Task, Crew
from langchain_openai import ChatOpenAI
 
researcher = Agent(
    role='Market Research Analyst',
    goal='Discover emerging market trends',
    backstory='Expert in identifying innovative business opportunities',
    verbose=True,
    allow_delegation=False,
    llm=ChatOpenAI(model_name="gpt-4")
)
 
writer = Agent(
    role='Content Strategist',
    goal='Create compelling marketing narratives',
    backstory='Skilled at transforming research into engaging content',
    verbose=True,
    allow_delegation=False,
    llm=ChatOpenAI(model_name="gpt-4")
)
 
research_task = Task(
    description='Analyze current market trends',
    agent=researcher,
    expected_output="A detailed analysis of current market trends"
)
 
writing_task = Task(
    description='Develop marketing strategy based on research',
    agent=writer,
    context=research_task.output,
    expected_output="A comprehensive marketing strategy document"
)
 
market_crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, writing_task],
    verbose=True 
)
 
result = market_crew.kickoff()
print(result)

在这个例子中,任务是顺序执行的。市场研究员首先识别新出现的趋势,然后内容策略师根据这些洞察制定策略。CrewAI无缝协调代理的工作,确保任务高效执行。

高级工作流管理与CrewAI流程

对于更复杂的场景,CrewAI引入了Flows——一种模块化且基于事件的方法来管理AI工作流。Flows允许开发人员动态链接任务,管理状态并实现决策的逻辑条件。

考虑一个场景,我们使用Flow生成一个随机城市的名字,并检索有关它的有趣事实:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from crewai.flow.flow import Flow, listen, start  
from litellm import completion  
 
class ExampleFlow(Flow):  
    model = "gpt-4o-mini"  
 
    @start()  
    def generate_city(self):  
        response = completion(  
            model=self.model,  
            messages=[  
                {"role": "user", "content": "Return the name of a random city in the world."},  
            ],  
        )  
        random_city = response["choices"][0]["message"]["content"]  
        return random_city  
 
    @listen(generate_city)  
    def generate_fun_fact(self, random_city):  
        response = completion(  
            model=self.model,  
            messages=[  
                {"role": "user", "content": f"Tell me a fun fact about {random_city}"},  
            ],  
        )  
        fun_fact = response["choices"][0]["message"]["content"]  
        return fun_fact  
 
flow = ExampleFlow()  
result = flow.kickoff()  
print(f"Generated fun fact: {result}")  

在这个例子中,Flow类负责协调工作流。@start()方法生成一个随机城市的名字,而@listen()装饰器触发一个后续方法,根据城市的名字检索一个有趣的事实。Flows简化了创建适应性强、事件驱动的工作流的过程,这些工作流能够动态响应状态变化或触发器。

当Flows与CrewAI的现有原语结合时,它们成为了一个强大的编排框架,用于设计和构建复杂的工作流。

使用CrewAI实现RAG

CrewAI的灵活性扩展到了实现RAG,这是一种通过将外部信息检索集成到生成过程中来增强AI系统的强大技术。配备有PDFSearchTool或WebSearchTool等工具的CrewAI代理可以从各种来源提取和处理数据,以产生上下文准确的结果。

这里有一个例子,一个专门的代理使用RAG从研究论文中提取关键见解:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from crewai import Agent, Task, Crew  
from crewai_tools import PDFSearchTool  
 
# Define RAG tool  
rag_tool = PDFSearchTool(  
    pdf='research_paper.pdf'  
)  
 
# Define agent with RAG capabilities  
researcher = Agent(  
    role='Research Analyst',  
    goal='Extract key insights from research documents',  
    backstory='Expert at analyzing complex academic papers',  
    tools=[rag_tool]  
)  
 
# Define task for RAG  
research_task = Task(  
    description='Analyze the research paper and summarize key findings',  
    agent=researcher,  
    tools=[rag_tool],  
    expected_output='A detailed summary of the key findings from the research paper'  
)  
 
# Create Crew to coordinate workflow  
research_crew = Crew(  
    agents=[researcher],  
    tasks=[research_task],  
    process='sequential'  
)  
 
# Execute RAG workflow  
result = research_crew.kickoff()  
print(result)  

可扩展性和模块化

CrewAI 的模块化架构使其成为跨行业扩展 AI 系统的理想选择。代理、任务和工具是可重用的组件,可以组合成各种配置来解决复杂的问题。无论您是在金融领域自动化工作流程,在学术界协调研究,还是在电子商务中管理客户查询,CrewAI 都提供了一个一致且可扩展的框架。

例如,创建可重用的“研究团队”允许相同的代理分析不同的数据源,而只需最少的重新配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from crewai import Agent, Task, Crew  
from crewai_tools import PDFSearchTool  
 
def create_research_crew(doc):  
    tool = PDFSearchTool(pdf=doc)  
    agent = Agent(
        role="Research Analyst",
        tools=[tool],
        goal="Summarize document insights",
        backstory="I am an expert research analyst who specializes in extracting and summarizing key insights from documents."
    )  
    task = Task(
        description="Analyze and summarize content", 
        agent=agent,
        expected_output="A comprehensive summary of the key insights from the document"
    )  
    return Crew(agents=[agent], tasks=[task], process="sequential")  
 
# Execute for multiple documents  
for pdf in ["doc1.pdf", "doc2.pdf"]:  
    crew = create_research_crew(pdf)  
    print(crew.kickoff())  

这种模块化确保了可扩展性,同时不会影响可维护性或性能。

CrewAI 的架构远远超越了静态工作流程,它支持智能的、上下文感知的和协作的代理。通过内存、规划、事件驱动的流程和 RAG 集成等高级功能,CrewAI 为开发人员提供了应对复杂现实世界挑战的工具。通过结合适应性、可扩展性和模块化,CrewAI 使团队能够设计既动态又可靠的 AI 系统,从而为自动化和智能任务执行解锁新的可能性。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-032,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
浪漫七夕!相“约”云端!
【活动内容】 在七夕这个充满浪漫气氛的节日里,云真机也是应约而来。第一批只限安卓手机用户报名,限100名,想获得测试资格?很简单啊。得抢!抢!抢!重要的事情自然要说三遍!成功预约的用户有获得10QB的机会喔。 云真机是什么? 通过她,你可以控制全世界;拥有她,你就拥有了全世界。她是WeTest远程调试2.0的革新版! WeTest云真机效果演示视频 1、全新的触摸板模式,把你的手机变成手柄,更多模式将会陆续开启 2、支持多点触控,操作简单,享受游戏极致体验 3、极速畅快的远程操控体验,让你身临其境。
WeTest质量开放平台团队
2018/10/29
4220
浪漫七夕!相“约”云端!
要测试却没有测试机?那都不是事儿!
“老王,把你那台三星I-9500测试机借我一下” “不行,我自己也要用的。” “**,那明天要交报告了我去哪找测试机?” “那就去WeTest云真机约一个呗!” WeTest云真机是腾讯内部最新研发的技术,远程调试2.0革新版:用一台手机就可以控制所有的手机。 WeTest云真机效果演示视频 温馨提示:请在wifi下观看,土豪请随意 1、支持多点触控,兼容更多类型游戏 切水果、拳皇98、全民突击、天天炫斗等热门游戏全兼容 2、极速畅快,远程手机也能真实体验。 稳定极速的远程操作体验、享受“零”延迟
WeTest质量开放平台团队
2018/10/29
5770
要测试却没有测试机?那都不是事儿!
告别测试机!云真机的进阶之路
WeTest云真机自9月份全新改版上线以来,受到了广大开发者和测试人员的好评。与传统测试机相比,WeTest云真机不仅有更流畅的操作体验,更方便的测试选择,同时还能节省一大笔测试费用。为了让云真机对大家有更大的帮助,故在这里对云真机的使用做一个详细的说明。
WeTest质量开放平台团队
2018/10/29
3.8K0
再接再厉,WeTest云真机荣膺2015年10月腾讯微创新奖!
腾讯WeTest云真机,凭借着全新的操作方式,极速流畅的体验感觉,获得了2015年10月的腾讯微创新奖。 【什么是腾讯微创新奖】 腾讯微创新奖诞生于2011年,用于鼓励员工日常工作中的创新。腾讯微创新奖每个月对公司所有新发布创意进行评选并奖励优秀创意,评选结果由公司骨干员工及普通用户投票结果产生。 【什么是WeTest云真机】 手机游戏和应用开发者普遍都面临着这样一个问题:安卓设备品牌众多,操作系统版本各异,分辨率不统一。游戏和应用上线前需要使用大量不同型号手机进行测试,如果直接购买手机的话成本非常高
WeTest质量开放平台团队
2018/10/29
1.1K0
再接再厉,WeTest云真机荣膺2015年10月腾讯微创新奖!
腾讯WeTest——生于游戏,精于游戏
“互联网+”通过不断整合和优化资源,造就了一个各行业跨界融合、实现裂变式增长的时代。在游戏行业生态圈内,腾讯精心打造游戏质量平台WeTest,致力于成为连接游戏产品、游戏玩家和游戏开发者的有机连接力。
WeTest质量开放平台团队
2018/10/29
1.4K0
iPhone13全线机型上线WeTest云手机平台
近日,苹果iPhone 13系列智能手机正式发售,作为今年热度最高的手机之一,iPhone 13自然是受到了很多用户的关注。全新的硬件技术也为企业及开发者提供了更多可能。 为了帮助企业及开发者能够第一时间使用iPhone 13进行应用的适配与调试工作。WeTest云手机平台目前已上线iPhone 13全系列机型,分别是13 mini、13、13 Pro、13 Pro Max,屏幕大小分别为:5.4英寸、6.1英寸、6.1英寸、6.4英寸。即日起,企业与开发者即可登陆WeTest官网(wetest.qq
WeTest质量开放平台团队
2021/09/28
1.5K0
腾讯WeTest压力测试—预约进行时
随着手游的技术革新和玩家喜好的挖掘,多人实时对战类手游自去年年中的出现,《王者荣耀》《全民超神》《CF手游》等游戏已经分别占据了手游界的一席之地。而伴随着此类游戏的发展,手工性能测试的难度提升,导致了用户体验受到影响。而测试环节中难度最高的性能测试成为了游戏是否被玩家接受的重要门槛。
WeTest质量开放平台团队
2018/10/29
9130
云端手游测试,从未如此流畅!
WeTest远程调试2.0 — 云真机今天正式上线,WeTest云真机是腾讯内部最新的游戏测试技术,远程调试性能大大提升,为广大开发者解决了3大难题: 1、 测试机少,购买手机会花费大量的人力、物力。 2、远程体验差,老是出现黑屏、卡死、网络卡顿等问题 3、操作困难、没法完美重现问题。 毫秒级时延,游戏画面更流畅 稳定极速的远程操作体验、享受“零”延迟的快感。 全新的触摸板模式,支持多点触控,把你的手机变成无线手柄 更加灵活多变操作模式,例如天天炫斗,左手摇杆,右手攻击,优化您的操作体验。
WeTest质量开放平台团队
2018/10/29
2.3K0
云端手游测试,从未如此流畅!
通过我们的努力,让世界没有被埋没的游戏 ——腾讯WeTest助力,再造200个亿万富翁
2015年腾讯全球合作伙伴大会,腾讯把地址挪到了重庆,那个词变成了“创业”,与其说是合作会议,现场更像是一个包裹着互联网思维的创业平台。五年前,腾讯坚定的选择了开放,五年后,在开放生态里,腾讯的角色悄然发生了变化,从开放平台,变成了众创生态。
WeTest质量开放平台团队
2018/10/29
6570
真香!iOS云真机全新上线!
众多开发者已经渐渐适应通过调用线上的安卓真机进行远程调试,但是针对iOS设备,则依然存在“iOS设备昂贵”“无法及时采购iOS最新设备”“无法复现iOS历史系统版本”等问题。
WeTest质量开放平台团队
2019/03/20
1.2K0
真香!iOS云真机全新上线!
WeTest功能优化第3期:业内首创,有声音的云真机
原文链接:https://wetest.qq.com/lab/view/419.html
WeTest质量开放平台团队
2018/11/04
6990
WeTest功能优化第3期:业内首创,有声音的云真机
真香!iOS云真机全新上线!
原文链接:https://wetest.qq.com/lab/view/434.html
WeTest质量开放平台团队
2019/01/03
1.6K0
真香!iOS云真机全新上线!
为开发者而生,腾讯WeTest参展GMGC2016
全球移动游戏联盟(GMGC)第五届大会于2016年3月7日在北京如期举办。 汇集了来自全球移动游戏及泛娱乐产业的上万观众共话移动游戏及泛娱乐产业的热点议题。 腾讯WeTest(wetest.qq.com)作为腾讯游戏官方推出的一站式测试平台以展台形式和大家见面,分享关于游戏品质标准和解决方案的丰富经验。 腾讯WeTest参展GMGC2016 除了行业新宠“VR”以外,此次大会的绝大多数目光仍然和去年一样聚焦在开发者和移动游戏板块。今年的大会主题从“泛娱乐”的概念所展开。移动游戏通过与文学、影视、游
WeTest质量开放平台团队
2018/10/29
3630
为开发者而生,腾讯WeTest参展GMGC2016
WeTest受邀参加2018腾讯•云+未来峰会:游戏生态,连接未来
5月23日,2018腾讯·云+未来峰会于广州保利世贸博览馆盛大开幕。大会包含13大主题专场论坛、T-DAY 互动体验展等多个项目同时并行,更有80+场顶级演讲和8000名优质嘉宾到场参会。 包括腾讯
WeTest质量开放平台团队
2018/07/11
2.2K0
WeTest五周年 |“领航者”的破浪之路:诞生
2008年,苹果公司推出iPhone 3G,开启了智能手机发展新时代;2010年,划时代产品iPhone4的推出,又以其惊人的风靡程度极大地推动了全球各地智能手机厂商的效仿和崛起;2013年至2015年,中国智能手机换代高峰期来临,三年累计销售额突破2万亿元。
WeTest质量开放平台团队
2020/09/29
5890
WeTest功能优化第3期:业内首创,有声音的云真机
第3期功能优化目录 【云真机远程调试】音频同步传输实现测试有声 【兼容性测试报告】新增视频助力动态定位问题 【云真机远程调试】菜单栏优化助力机型选择 本期介绍的新功能,秉承创造用户需求的理念,在云真机声音、报告截图(视频)、云真机菜单栏三大模板上改善用户体验。 1 WeTest首创云真机音频同步传输,实现测试有声 还记得上一期介绍的云真机视频映射功能吗?那就是本地手机和远程真机可以实现无延时、同画面映射。其中提到的WeTest助手还有没有印象呢?WeTest助手是实现本地手机和远程真机同步传输的一
WeTest质量开放平台团队
2018/12/11
5260
WeTest功能优化第3期:业内首创,有声音的云真机
为WeTest加油,重磅大奖,给最爱WeTest的人
腾讯WeTest于10月26日正式开放给了广大游戏开发者。为了让用户更快熟悉平台上的工具,我们推出了“为WeTest加油,送百万大奖”的活动,通过完成一个个加油任务,大家对平台上的工具会越来越熟悉。 功能一:适配兼容测试 腾讯WeTest的适配兼容测试旨在验证手游在市场占有率较高的大量热门机型上的兼容适配情况。目前腾讯WeTest能够精准覆盖腾讯精品游戏用户的主流机型,深入探索更多游戏场景,在游戏研发和测试阶段,帮助游戏全面提升兼容适配能力,精准定位游戏性能瓶颈,打造极致的玩家体验。 功能二:
WeTest质量开放平台团队
2018/10/29
8480
为WeTest加油,重磅大奖,给最爱WeTest的人
国庆长假综合症?云真机新功能让你迅速重回高效测试状态
可是,假期远去,日子还得照样过,为了让技术人员在国庆假期结束后能够加快测试效率,WeTest开发人员,在长假期间中开发了一个新功能——云真机键盘输入。
WeTest质量开放平台团队
2018/10/29
3740
WeTest功能优化第1期:截图960px,云真机映射功能了解
截图小?放大模糊?无法清晰匹配问题?No ! WeTest 960px的高清分辨率截图来啦。960px很厉害么?当然,你可要知道之前测试报告里的截图分辨率最高640px。960px比640px高清一倍,一倍,一倍!
WeTest质量开放平台团队
2018/08/29
6070
WeTest功能优化第1期:截图960px,云真机映射功能了解
腾讯上海Innovation space,WeTest与你同行
由腾讯上海分公司主办的Innovation Space是一个为在校学生提供的打造创新产品发现和培育的平台,在创意发现阶段,采用腾讯员工和在校大学生混合组队,赛训结合的方式,通过创意海选,组队,Demo实现,路演选拔等环节,来发现创新产品方向及人才。 58小时的封闭开发和风投准备后,大会将通过路演和模拟风投的方式决出本次比赛的优胜者。奖励丰厚,不仅仅有着丰厚的奖金,还有与腾讯高层见面和进入腾讯实习的机会。 腾讯WeTest质量开放平台作为这次的合作伙伴之一,将把自己变成一个强力的助推器,助参赛者实现
WeTest质量开放平台团队
2018/10/29
1.1K0
腾讯上海Innovation space,WeTest与你同行
相关推荐
浪漫七夕!相“约”云端!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档