跳转至

启动你的CrewAI项目

欢迎阅读启动新CrewAI项目的终极指南。本文档将指导你完成创建、定制和运行CrewAI项目的步骤,确保你拥有开始项目所需的一切。

在开始之前,需要注意以下几点:

  1. CrewAI是一个Python包,需要Python版本>=3.10且<=3.13才能运行。
  2. 设置CrewAI的首选方法是使用crewai create crew命令。这将创建一个新的项目文件夹并安装一个骨架模板供你使用。

前提条件

在开始使用CrewAI之前,请确保你已通过pip安装它:

$ pip install 'crewai[tools]'

创建新项目

在这个例子中,我们将使用poetry作为我们的虚拟环境管理器。

要创建一个新的CrewAI项目,运行以下CLI命令:

$ crewai create crew <project_name>

此命令将创建一个新的项目文件夹,结构如下:

my_project/
├── .gitignore
├── pyproject.toml
├── README.md
└── src/
    └── my_project/
        ├── __init__.py
        ├── main.py
        ├── crew.py
        ├── tools/
           ├── custom_tool.py
           └── __init__.py
        └── config/
            ├── agents.yaml
            └── tasks.yaml

你现在可以通过编辑src/my_project文件夹中的文件来开发你的项目。main.py文件是项目的入口点,crew.py文件是定义你的代理和任务的地方。

定制你的项目

要定制项目,你可以: - 修改src/my_project/config/agents.yaml来定义你的代理。 - 修改src/my_project/config/tasks.yaml来定义你的任务。 - 修改src/my_project/crew.py来添加你自己的逻辑、工具和特定参数。 - 修改src/my_project/main.py来添加代理和任务的自定义输入。 - 将你的环境变量添加到.env文件中。

示例:定义代理和任务

agents.yaml

researcher:
  role: >
    职位候选人研究员
  goal: >
    寻找职位的潜在候选人
  backstory: >
    你擅长通过探索各种在线资源来找到合适的候选人。你识别合适候选人的技能确保了职位匹配的最佳人选。

tasks.yaml

research_candidates_task:
  description: >
    进行深入研究,找到指定职位的潜在候选人。
    利用各种在线资源和数据库,收集潜在候选人的综合名单。
    确保候选人符合提供的职位要求。

    职位要求:
    {job_requirements}
  expected_output: >
    一份包含10位潜在候选人的名单,包括他们的联系方式和简要介绍,突出他们的适配性。
  agent: researcher # 这需要与agents.yaml文件中的代理名称以及crew.py文件中定义的代理相匹配
  context: # 这些需要与上文定义的任务名称匹配,并与tasks.yaml文件和crew.py文件中定义的任务相匹配
    - researcher

引用变量:

你定义的具有相同名称的函数将被使用。例如,你可以从tasks.yaml文件中引用代理的具体任务。确保你的注解代理和函数名称相同,否则任务将无法正确识别引用。

示例引用

agents.yaml

email_summarizer:
    role: >
      邮件总结者
    goal: >
      将邮件总结为简洁清晰的摘要
    backstory: >
      你将为报告创建一个5个要点总结
    llm: mixtal_llm

tasks.yaml

email_summarizer_task:
    description: >
      将邮件总结为5个要点摘要
    expected_output: >
      邮件的5个要点摘要
    agent: email_summarizer
    context:
      - reporting_task
      - research_task

注解(装饰器)包括:

  • @agent
  • @task
  • @crew
  • @tool
  • @callback
  • @output_json
  • @output_pydantic
  • @cache_handler

crew.py

crew.py
# ...
@agent
def email_summarizer(self) -> Agent:
    return Agent(
        config=self.agents_config["email_summarizer"],
    )

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

# ...

安装依赖项

要安装项目的依赖项,你可以使用Poetry。首先,导航到你的项目目录:

$ cd my_project
$ crewai install

这将安装pyproject.toml文件中指定的依赖项。

插值变量

agents.yamltasks.yaml文件中插入的任何变量,如{variable},都将在main.py文件中被变量值替换。

tasks.yaml

research_task:
  description: >
    对客户和其竞争对手进行深入研究,研究范围是{customer_domain}。
    确保你找到任何有趣且相关的信息,当前年份为2024。
  expected_output: >
    一份关于客户及其客户和竞争对手的完整报告,
    包括他们的人口统计、偏好、市场定位和受众参与度。

main.py

# main.py
def run():
    inputs = {
        "customer_domain": "crewai.com"
    }
    MyProjectCrew(inputs).crew().kickoff(inputs=inputs)

运行你的项目

要运行你的项目,使用以下命令:

$ crewai run

这将初始化你的一组AI代理并开始执行main.py文件中定义的任务。

从最近的Crew Kickoff重放任务

CrewAI现在包含一个重放功能,允许你列出上次运行中的任务并从特定任务重放。要使用此功能,运行:

$ crewai replay <task_id>

<task_id>替换为你想要重放的任务ID。

重置Crew记忆

如果需要在再次运行之前重置Crew的记忆,你可以通过以下命令来实现:

$ crewai reset-memory

这将清除Crew的记忆,允许重新开始。

部署你的项目

部署你的Crew最简单的方法是通过CrewAI+,在那里你可以通过几次点击部署你的Crew。