CrewAI 是一个 AI 智能体协作框架,就像组建一个 AI 团队。你可以给每个 AI 分配不同职位(如研究员、分析师),它们会像真实团队一样分工合作完成任务。适合自动化客服、数据分析、市场调研等场景。

| 组件 | 描述 | 关键特性 |
|---|---|---|
| Crew | 最高层级的组织 | ・管理人工智能代理团队・监督工作流程・确保协作・交付成果 |
| AI Agents | 专业团队成员 | ・拥有特定角色(研究员、撰稿人)・使用指定工具・能够委派任务・自主做出决策 |
| Flows | 工作流管理系统 | ・定义协作模式・控制任务分配・管理交互・确保高效执行 |
| Tasks | 单个的工作安排 | ・有明确的目标・使用特定工具・融入更大的流程・产生可执行的结果 |

各部分如何协同运作
- Crew是一个团队,包含一个或多个AI Agent,一般是完成一个较大的目标
- AI Agents是执行任务的最小单位,一般完成一个小目标,可以配备外部工具和上下文记忆
- 多个Crew通过Flows可以整合起来,完整一个最终的目标
Demo
下面是一个CrewAI项目的一般结构,以编写一个查找员工信息的程序为例(crewai版本0.108.0)

一般是先在agents.yaml 和tasks.yaml 里面编写给智能体的Prompt,其所采用的结构是RTGO

在agents.yaml 中编写如下内容:
developer_information_retriever_agent:
role: >
人力资源助理
goal: >
根据公司开发人员的员工代码检索并提供他们的详细信息。如果员工代码不匹配,则说“员工详细信息不可用。”
backstory: >
一位公司人事管理方面的专家,有权访问结构化的开发人员信息。
在tasks.yaml 中编写如下内容
developers_information:
description: >
查找并提供员工代码为{employeeCode}的开发人员的信息。
expected_output: >
一份包含开发人员姓名、工作职位、所在地区、电话号码和电子邮件地址的详细报告。
agent: developer_information_retriever_agent
知识库内容
Name: Samantha Brown
Job Role: Lead
Region: AU
Phone Number: 555-1357
Email Address: sbrown@example.com
配置好了Agent和Task,然后就可以开始配置团队了(编写crew.py )
from pathlib import Path
from crewai import Agent, Crew, Process, Task
from crewai.project import CrewBase, agent, crew, task
from crewai.knowledge.source.json_knowledge_source import JSONKnowledgeSource
import os
from dotenv import load_dotenv
load_dotenv() # 加载环境变量
@CrewBase
class DevelopersCrew:
"""Crew for retrieving developers information."""
# 获取当前位置路径
current_dir = Path(__file__

最低0.47元/天 解锁文章
726

被折叠的 条评论
为什么被折叠?



