CrewAI 技术总结笔记
CrewAI 是一个专注于增强 AI 代理协作能力的框架,旨在通过角色定制、任务管理、团队协作和流程优化,创建高效的多代理系统。此手册将全面解析 CrewAI 的核心概念、使用方法及其扩展功能,帮助开发者快速上手并构建复杂的 AI 解决方案。
1. 代理(Agents)
1.1 概述
代理是 CrewAI 的基本构建单元。每个代理都代表一个具备特定角色和能力的虚拟个体,通过背景故事赋予代理鲜明的个性化特征。代理能够执行任务、使用工具、与其他代理协作并在必要时进行任务委派。
1.2 创建代理
代理通过 Agent
类进行定义。以下是示例代码:
from crewai import Agent
from crewai_tools import SerperDevTool
search_tool = SerperDevTool()
# 创建一个研究员代理
researcher = Agent(
role='高级研究员',
goal='发现AI领域的突破性技术',
verbose=True,
memory=True,
backstory="被好奇心驱使,你在创新的前沿。",
tools=[search_tool],
allow_delegation=True
)
# 创建一个作家代理
writer = Agent(
role='作家',
goal='撰写引人入胜的科技文章',
verbose=True,
memory=True,
backstory="你擅长讲故事,简化复杂主题。",
tools=[search_tool],
allow_delegation=False
)
1.3 参数解析
参数 | 描述 |
---|---|
role |
代理的角色或职能,例如“研究员”或“作家”。 |
goal |
代理的主要目标,例如完成研究或撰写文章。 |
verbose |
是否启用详细日志输出。 |
memory |
是否允许代理记住任务执行的上下文。 |
backstory |
代理的背景故事,赋予个性化特征。 |
tools |
可供代理使用的工具列表。 |
allow_delegation |
是否允许代理将任务委派给其他代理。 |
2. 任务(Tasks)
2.1 概述
任务是代理需要完成的具体工作单元。每个任务都包含清晰的描述和预期输出,并由指定的代理执行。
2.2 创建任务
以下示例展示了如何创建任务:
from crewai import Task
# 创建一个研究任务
research_task = Task(
description="识别AI领域的下一个大趋势。",
expected_output='关于最新AI趋势的全面报告。',
agent=researcher,
)
# 创建一个写作任务
write_task = Task(
description="撰写一篇关于AI进展的文章。",
expected_output='一篇关于AI趋势的高质量文章。',
agent=writer,
)
2.3 参数解析
参数 | 描述 |
---|---|
description |