启动你的CrewAI项目¶
欢迎阅读启动新CrewAI项目的终极指南。本文档将指导你完成创建、定制和运行CrewAI项目的步骤,确保你拥有开始项目所需的一切。
在开始之前,需要注意以下几点:
- CrewAI是一个Python包,需要Python版本>=3.10且<=3.13才能运行。
- 设置CrewAI的首选方法是使用
crewai create crew命令。这将创建一个新的项目文件夹并安装一个骨架模板供你使用。
前提条件¶
在开始使用CrewAI之前,请确保你已通过pip安装它:
创建新项目¶
在这个例子中,我们将使用poetry作为我们的虚拟环境管理器。
要创建一个新的CrewAI项目,运行以下CLI命令:
此命令将创建一个新的项目文件夹,结构如下:
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
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
# ...
@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。首先,导航到你的项目目录:
这将安装pyproject.toml文件中指定的依赖项。
插值变量¶
在agents.yaml和tasks.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)
运行你的项目¶
要运行你的项目,使用以下命令:
这将初始化你的一组AI代理并开始执行main.py文件中定义的任务。
从最近的Crew Kickoff重放任务¶
CrewAI现在包含一个重放功能,允许你列出上次运行中的任务并从特定任务重放。要使用此功能,运行:
将<task_id>替换为你想要重放的任务ID。
重置Crew记忆¶
如果需要在再次运行之前重置Crew的记忆,你可以通过以下命令来实现:
这将清除Crew的记忆,允许重新开始。
部署你的项目¶
部署你的Crew最简单的方法是通过CrewAI+,在那里你可以通过几次点击部署你的Crew。