主题
CLI
了解如何使用 CrewAI CLI 与 CrewAI 交互。
WARNING
自 0.140.0 版本起,CrewAI AMP 开始了迁移其登录 服务商的流程。因此,通过 CLI 进行的身份认证流程已更新。使用 Google 登录的用户,或在 2025 年 7 月 3 日之后创建账户的用户,将 无法使用旧版本的 crewai 库登录。
概述
CrewAI CLI 提供了一组用于与 CrewAI 交互的命令,使你能够创建、训练、运行和管理团队与流程。
安装
要使用 CrewAI CLI,请确保已安装 CrewAI:
shell
pip install crewai基本用法
CrewAI CLI 命令的基本结构是:
shell
crewai [COMMAND] [OPTIONS] [ARGUMENTS]可用命令
1. Create
创建一个新的团队、流程、工具、技能或模板项目。
shell
crewai create [OPTIONS] TYPE NAMETYPE:crew、flow、tool、skill或templateNAME:项目、工具句柄、技能或模板的名称
团队
shell
crewai create crew my_new_crew
crewai create crew my_new_crew --classic默认情况下,crewai create crew 会创建一个以 JSON 为先的团队项目,包含 crew.jsonc 和 agents/*.jsonc。仅当你需要旧的、使用 crew.py、config/agents.yaml 和 config/tasks.yaml 的 Python/YAML 脚手架时,才使用 crewai create crew my_new_crew --classic。
流程
shell
crewai create flow my_new_flow
crewai create flow my_new_flow --declarative工具
生成自定义工具仓库脚手架:
shell
crewai create tool my_tool技能
生成智能体技能脚手架。在团队项目内(存在 pyproject.toml 的位置),技能会创建在 ./skills/ 下:
shell
crewai create skill my-skill
crewai create skill my-skill --no-project使用 --no-project 可将技能创建在当前目录中,而不是 ./skills/ 下。
模板
将远程项目模板添加到当前目录:
shell
crewai create template my-template
crewai create template my-template --output-dir custom_dir使用 --output-dir 覆盖输出文件夹名称(默认为模板名称)。
已弃用的 create 别名
这些较旧的命令仍然可用,但会打印黄色弃用警告。请优先使用上面的 crewai create <type> 形式。
| 已弃用 | 请改用 |
|---|---|
crewai tool create <handle> | crewai create tool <handle> |
crewai skill create <name> | crewai create skill <name> |
crewai template add <name> | crewai create template <name> |
生命周期命令保持不变 —— 例如 crewai tool install、crewai skill publish 和 crewai template list 仍保留在其资源组下。
已弃用的标志别名
这些较旧的 snake_case 标志仍然可用,但会从 --help 中隐藏。请优先使用下文各命令部分记录的 kebab-case 形式。
| 已弃用 | 请改用 |
|---|---|
--skip_provider(用于 crewai create crew) | --skip-provider |
--n_iterations(用于 crewai train、crewai test) | --n-iterations |
--task_id(用于 crewai replay) | --task-id |
2. Version
显示已安装的 CrewAI 版本。
shell
crewai version [OPTIONS]--tools:(可选)显示已安装的 CrewAI 工具版本
示例:
shell
crewai version
crewai version --tools3. Train
按指定迭代次数训练团队。
shell
crewai train [OPTIONS]-n, --n-iterations INTEGER:训练团队的迭代次数(默认值:5)-f, --filename TEXT:用于训练的自定义文件路径(默认值:"trained_agents_data.pkl")
示例:
shell
crewai train -n 10 -f my_training_data.pkl4. Replay
从特定任务重放团队执行。
shell
crewai replay [OPTIONS]-t, --task-id TEXT:从此任务 ID 开始重放团队,包括所有后续任务
示例:
shell
crewai replay -t task_1234565. Log-tasks-outputs
获取你最新的 crew.kickoff() 任务输出。
shell
crewai log-tasks-outputs6. Reset-memories
重置团队记忆(长期、短期、实体、latest_crew_kickoff_outputs)。
shell
crewai reset-memories [OPTIONS]-l, --long:重置长期记忆-s, --short:重置短期记忆-e, --entities:重置实体记忆-k, --kickoff-outputs:重置最新的 kickoff 任务输出-kn, --knowledge:重置知识存储-akn, --agent-knowledge:重置智能体知识存储-a, --all:重置所有记忆
示例:
shell
crewai reset-memories --long --short
crewai reset-memories --all7. 测试
测试团队并评估结果。
shell
crewai test [OPTIONS]-n, --n-iterations INTEGER:测试团队的迭代次数(默认值:3)-m, --model TEXT:用于对团队运行测试的 LLM 模型(默认值:"gpt-4o-mini")
示例:
shell
crewai test -n 5 -m gpt-3.5-turbo8. 运行
运行团队或流程。
shell
crewai runNOTE
从 0.103.0 版本开始,可使用 crewai run 命令同时运行标准团队和流程。对于流程,它会从 pyproject.toml 自动检测类型并运行相应的命令。这现在是运行团队和流程的推荐方式。
NOTE
请确保在设置 CrewAI 项目的目录中运行这些命令。某些命令可能需要在项目结构内进行额外的配置或设置。
9. 聊天
从 0.98.0 版本开始,当你运行 crewai chat 命令时,会与你的团队启动一个交互式会话。AI 助手会通过询问执行团队所需的输入来引导你。一旦所有输入都提供完毕,团队就会执行其任务。
收到结果后,你可以继续与助手交互,以获取进一步的指令或提出问题。
shell
crewai chatNOTE
请确保从 CrewAI 项目的根目录执行这些命令。
NOTE
重要提示:在团队定义中设置 chat_llm 属性以启用此命令。
对于以 JSON 为先的团队,将其添加到 crew.jsonc:
jsonc
{
"name": "My Crew",
"agents": ["researcher"],
"tasks": [],
"chat_llm": "openai/gpt-4o"
}对于经典的 Python/YAML 团队,在 crew.py 中设置:
python
@crew
def crew(self) -> Crew:
return Crew(
agents=self.agents,
tasks=self.tasks,
process=Process.sequential,
verbose=True,
chat_llm="gpt-4o", # LLM for chat orchestration
)10. 部署
将团队或流程部署到 CrewAI AMP。
身份认证:你需要通过身份认证才能部署到 CrewAI AMP。 你可以登录或创建账户:
shellcrewai login创建部署:完成身份认证后,你可以从本地项目的根目录为团队或流程创建部署。
shellcrewai deploy create- 读取你的本地项目配置。
- 提示你确认在本地找到的环境变量(如
OPENAI_API_KEY、SERPER_API_KEY)。这些变量将被安全地存储在企业版平台上的部署中。在运行此命令之前,请确保你的敏感密钥已在本地正确配置(例如在.env文件中)。
11. 组织管理
管理你的 CrewAI AMP 组织。
shell
crewai org [COMMAND] [OPTIONS]命令:
list:列出你所属的所有组织
shell
crewai org listcurrent:显示当前活动的组织
shell
crewai org currentswitch:切换到指定组织
shell
crewai org switch <organization_id>NOTE
你必须通过 CrewAI AMP 的身份认证才能使用这些组织管理命令。
创建部署(续):
- 将部署链接到对应的远程 GitHub 仓库(通常会自动检测)。
部署团队:完成身份认证后,你可以将团队或流程部署到 CrewAI AMP。
shellcrewai deploy push- 在 CrewAI AMP 平台上启动部署流程。
- 成功启动后,它会输出 Deployment created successfully! 消息,以及部署名称和唯一的部署 ID(UUID)。
- Push 保留创建时使用的源。之后添加 git
origin不会将 ZIP 部署切换为 git。
部署状态:你可以使用以下命令检查部署状态:
shellcrewai deploy status这会获取你最近一次部署尝试的最新状态(例如
Building Images for Crew、Deploy Enqueued、Online)。如果部署失败,它还会打印错误信息和建议的修复方案。部署日志:你可以使用以下命令查看部署日志:
shellcrewai deploy logs这会将部署日志流式输出到你的终端。
列出部署:你可以使用以下命令列出所有部署:
shellcrewai deploy list这会列出你的所有部署。
删除部署:你可以使用以下命令删除部署:
shellcrewai deploy remove这会从 CrewAI AMP 平台删除该部署。
帮助命令:你可以通过以下命令获取 CLI 帮助:
shellcrewai deploy --help这会显示 CrewAI Deploy CLI 的帮助信息。
观看此视频教程,了解如何使用 CLI 将团队部署到 CrewAI AMP 的分步演示。
11. 登录
使用安全的设备码流程与 CrewAI AMP 进行身份认证(无需输入邮箱)。
shell
crewai login具体流程如下:
- 终端中会显示验证 URL 和短码
- 浏览器会打开该验证 URL
- 输入/确认验证码以完成身份认证
请注意:
- OAuth2 服务商和域通过
crewai config配置(默认使用login.crewai.com) - 登录成功后,CLI 还会尝试自动向工具仓库进行身份认证
- 如果你重置了配置,请再次运行
crewai login重新进行身份认证
12. API 密钥
运行 crewai create crew 命令时,CLI 会显示可用的 LLM 服务商列表,然后为你选择的服务商进行模型选择。选中的模型会保存到生成的 .env 文件中,且每个生成的智能体 JSONC 文件都可以设置自己的 llm。
选择 LLM 服务商和模型后,系统会提示你输入 API 密钥。
可用的 LLM 服务商
以下是 CLI 建议的最受欢迎的 LLM 服务商列表:
- OpenAI
- Groq
- Anthropic
- Google Gemini
- SambaNova
当你选择某个服务商后,CLI 会显示该服务商可用的模型,并提示你输入 API 密钥。
其他选项
如果选择「other」,你将可以从 LiteLLM 支持的服务商列表中进行选择。
当你选择某个服务商后,CLI 会提示你输入 Key name 和 API 密钥。
各服务商的密钥名称请参见以下链接:
13. 配置管理
管理 CrewAI 的 CLI 配置设置。
shell
crewai config [COMMAND] [OPTIONS]命令:
list:显示所有 CLI 配置参数
shell
crewai config listset:设置某个 CLI 配置参数
shell
crewai config set <key> <value>reset:将所有 CLI 配置参数重置为默认值
shell
crewai config reset可用的配置参数
enterprise_base_url:CrewAI AMP 实例的基础 URLoauth2_provider:用于身份认证的 OAuth2 服务商(例如 workos、okta、auth0)oauth2_audience:OAuth2 受众值,通常用于标识目标 API 或资源oauth2_client_id:由服务商签发的 OAuth2 客户端 ID,用于身份认证请求oauth2_domain:OAuth2 服务商的域(例如 your-org.auth0.com),用于签发 token
示例
显示当前配置:
shell
crewai config list示例输出:
| 设置 | 值 | 描述 |
|---|---|---|
| enterprise_base_url | https://app.crewai.com | CrewAI AMP 实例的基础 URL |
| org_name | 未设置 | 当前活动组织的名称 |
| org_uuid | 未设置 | 当前活动组织的 UUID |
| oauth2_provider | workos | OAuth2 服务商(例如 workos、okta、auth0) |
| oauth2_audience | client_01YYY | 标识目标 API/资源的受众 |
| oauth2_client_id | client_01XXX | 由服务商签发的 OAuth2 客户端 ID |
| oauth2_domain | login.crewai.com | 服务商域(例如 your-org.auth0.com) |
设置企业版基础 URL:
shell
crewai config set enterprise_base_url https://my-enterprise.crewai.com设置 OAuth2 服务商:
shell
crewai config set oauth2_provider auth0设置 OAuth2 域:
shell
crewai config set oauth2_domain my-company.auth0.com将所有配置重置为默认值:
shell
crewai config resetTIP
重置配置后,请重新运行 crewai login 再次进行身份认证。
14. 追踪管理
管理团队和流程执行的追踪收集偏好设置。
shell
crewai traces [COMMAND]命令:
enable:启用团队/流程执行的追踪收集
shell
crewai traces enabledisable:禁用团队/流程执行的追踪收集
shell
crewai traces disablestatus:显示当前追踪收集状态
shell
crewai traces status追踪的工作原理
追踪收集通过按优先级顺序检查三项设置来控制:
代码中的显式标志(最高优先级 - 可启用或禁用):
pythoncrew = Crew(agents=[...], tasks=[...], tracing=True) # Always enable crew = Crew(agents=[...], tasks=[...], tracing=False) # Always disable crew = Crew(agents=[...], tasks=[...]) # Check lower priorities (default)tracing=True将始终启用追踪(覆盖其他所有设置)tracing=False将始终禁用追踪(覆盖其他所有设置)tracing=None或省略时将检查优先级更低的设置
环境变量(第二优先级):
envCREWAI_TRACING_ENABLED=true- 仅当代码中未将
tracing显式设置为True或False时才会检查 - 设置为
true或1可启用追踪
- 仅当代码中未将
用户偏好(最低优先级):
shellcrewai traces enable- 仅当代码中未设置
tracing且CREWAI_TRACING_ENABLED未设置为true时才会检查 - 仅运行
crewai traces enable本身即足以启用追踪 - 首次运行时的提示(
Would you like to view your execution traces?)也会更新此偏好设置
- 仅当代码中未设置
NOTE
要启用追踪,请使用以下任一方法:
- 在 Crew/Flow 代码中设置
tracing=True,或 - 在
.env文件中添加CREWAI_TRACING_ENABLED=true,或 - 运行
crewai traces enable
要禁用追踪,请使用以下任一方法:
- 在 Crew/Flow 代码中设置
tracing=False(覆盖其他所有设置),或 - 移除
CREWAI_TRACING_ENABLED环境变量或将其设置为false,或 - 运行
crewai traces disable
优先级更高的设置会覆盖更低的设置。
TIP
有关追踪的更多信息,请参阅追踪文档。
TIP
在向项目添加包时,CrewAI CLI 会自动处理工具仓库的身份认证。只需在任何 uv 命令前加上 crewai 即可使用。例如 crewai uv add requests。更多信息请参阅工具仓库文档。
NOTE
配置设置存储在 ~/.config/crewai/settings.json 中。部分设置(如组织名称和 UUID)为只读,通过身份认证和组织命令管理。工具仓库相关的设置是隐藏的,用户无法直接设置。