首页
/ CrewAI项目快速入门指南:5分钟构建你的首个AI智能体工作流

CrewAI项目快速入门指南:5分钟构建你的首个AI智能体工作流

2026-02-04 04:08:22作者:彭桢灵Jeremy

前言

在当今快速发展的AI领域,构建高效的智能体工作流已成为提升生产力的关键。CrewAI作为一个创新的AI智能体协作框架,允许开发者快速创建和部署复杂的多智能体系统。本文将带你快速上手CrewAI,在5分钟内构建一个能够自动完成AI领域研究并生成专业报告的智能体工作流。

环境准备

在开始之前,请确保已完成以下准备工作:

  1. 安装Python 3.8或更高版本
  2. 安装CrewAI框架(可通过包管理器完成)
  3. 准备Serper.dev API密钥(用于网络搜索功能)
  4. 配置LLM模型访问权限(如OpenAI、Anthropic等)

项目创建

首先,我们需要创建一个新的CrewAI项目。打开终端并执行以下命令:

crewai create crew latest-ai-development

这个命令会创建一个名为latest-ai-development的项目目录,包含项目的基本结构。创建完成后,进入项目目录:

cd latest-ai-development

配置智能体

CrewAI采用YAML文件来定义智能体的角色和行为。编辑agents.yaml文件,配置两个核心智能体:

  1. 研究员智能体:负责收集特定主题的最新AI发展信息
  2. 报告分析师智能体:负责将研究结果整理成专业报告
researcher:
  role: "{topic}高级数据研究员"
  goal: "发现{topic}领域的前沿发展"
  backstory: |
    你是一位经验丰富的研究员,擅长发现{topic}领域的最新发展。
    你以能够找到最相关信息并以清晰简洁的方式呈现而闻名。

reporting_analyst:
  role: "{topic}报告分析师"
  goal: "基于{topic}数据分析和研究发现创建详细报告"
  backstory: |
    你是一位细致入微的分析师,对细节有着敏锐的洞察力。
    你擅长将复杂数据转化为清晰简洁的报告,使他人能够轻松理解并基于你提供的信息采取行动。

定义任务流程

接下来,在tasks.yaml文件中定义智能体需要执行的具体任务:

research_task:
  description: |
    对{topic}进行深入研究
    确保找到所有有趣且相关的信息,考虑到当前年份是2025年
  expected_output: |
    包含10个关于{topic}最相关信息的要点列表
  agent: researcher

reporting_task:
  description: |
    审查获得的内容,并将每个主题扩展为报告的完整部分
    确保报告详细且包含所有相关信息
  expected_output: |
    一份完整的报告,包含主要主题,每个主题都有完整的信息部分
    以不带'```'的markdown格式呈现
  agent: reporting_analyst
  output_file: report.md

编写核心逻辑

crew.py文件中,我们定义智能体工作流的核心逻辑:

from crewai import Agent, Crew, Process, Task
from crewai.project import CrewBase, agent, crew, task
from crewai_tools import SerperDevTool

@CrewBase
class LatestAiDevelopmentCrew():
    """最新AI发展研究团队"""

    @agent
    def researcher(self) -> Agent:
        return Agent(
            config=self.agents_config['researcher'],
            verbose=True,
            tools=[SerperDevTool()]
        )

    @agent
    def reporting_analyst(self) -> Agent:
        return Agent(
            config=self.agents_config['reporting_analyst'],
            verbose=True
        )

    @task
    def research_task(self) -> Task:
        return Task(
            config=self.tasks_config['research_task'],
        )

    @task
    def reporting_task(self) -> Task:
        return Task(
            config=self.tasks_config['reporting_task'],
            output_file='output/report.md'
        )

    @crew
    def crew(self) -> Crew:
        """创建最新AI发展研究团队"""
        return Crew(
            agents=self.agents,
            tasks=self.tasks,
            process=Process.sequential,
            verbose=True,
        )

运行工作流

main.py中,我们可以指定研究主题并启动工作流:

from latest_ai_development.crew import LatestAiDevelopmentCrew

def run():
    inputs = {
        'topic': 'AI智能体'
    }
    LatestAiDevelopmentCrew().crew().kickoff(inputs=inputs)

环境配置

在运行前,确保在项目根目录下的.env文件中配置以下环境变量:

SERPER_API_KEY=你的Serper.dev API密钥
OPENAI_API_KEY=你的OpenAI API密钥

安装依赖并运行

安装项目依赖:

crewai install

运行智能体工作流:

crewai run

结果查看

运行完成后,你将在output/report.md文件中看到生成的完整报告。报告内容将包含:

  1. 研究主题的详细介绍
  2. 当前领域的主要发展趋势
  3. 相关技术框架分析
  4. 行业应用案例
  5. 未来发展方向预测

进阶功能

CrewAI还提供了工作流前后钩子函数,允许你在工作流执行前后添加自定义逻辑:

@before_kickoff
def before_kickoff_function(self, inputs):
    print(f"工作流启动前,输入参数: {inputs}")
    return inputs

@after_kickoff
def after_kickoff_function(self, result):
    print(f"工作流完成后,结果: {result}")
    return result

命名一致性注意事项

在CrewAI项目中,保持YAML文件和Python代码中的命名一致性至关重要:

  1. agents.yaml中的智能体名称必须与crew.py中的方法名一致
  2. tasks.yaml中的任务名称必须与crew.py中的任务方法名一致
  3. 任务中引用的智能体名称必须与agents.yaml中的定义一致

这种命名一致性机制使CrewAI能够自动将配置与代码关联起来。

总结

通过本指南,你已经学会了:

  1. 如何快速创建CrewAI项目
  2. 定义智能体角色和能力
  3. 配置任务流程
  4. 实现智能体协作逻辑
  5. 运行并获取结果

CrewAI的强大之处在于其简洁的配置方式和灵活的扩展能力。你可以基于这个基础框架,构建更复杂的多智能体系统,应用于各种业务场景。

随着AI技术的不断发展,掌握智能体工作流的构建能力将成为开发者的重要技能。希望本指南能帮助你快速入门CrewAI,开启你的智能体开发之旅。

登录后查看全文
热门项目推荐
相关项目推荐