跳转到内容

Monorepo 部署

当一个仓库包含多个自动化、共享包或其他应用代码时,monorepo 部署很有用:

company-ai/
|-- uv.lock
|-- packages/
| `-- shared_tools/
`-- crews/
|-- support_agent/
| |-- pyproject.toml
| |-- crew.jsonc
| `-- agents/
| `-- support_agent.jsonc
`-- research_flow/
|-- pyproject.toml
`-- src/
`-- research_flow/
`-- main.py

要部署 support_agent,请将工作目录设置为:

crews/support_agent

AMP 仍会拉取或上传整个仓库,但会把选中的文件夹视为自动化项目根目录。

当设置了工作目录时,AMP 会将该目录用于:

  • 项目验证,包括 pyproject.toml、JSON crew 文件以及任何经典 Crew 或 Flow 入口点
  • 使用 uv 进行依赖安装
  • 运行进程的工作目录
  • CREW_ROOT_DIR 环境变量

将该字段留空会保持现有行为,并使用仓库根目录。

你可以在创建部署时设置工作目录,来源包括:

  • 已连接的 GitHub 仓库
  • 在 AMP 中配置的 Git 仓库
  • ZIP 上传

你也可以在现有部署的 Settings 页面中添加或更改工作目录。该更改会在下一次部署时生效。

  1. 打开 Deploy from Code

    在 CrewAI AMP 中创建一个新部署,并选择你的来源:GitHub、Git Repository 或 ZIP upload。

  2. 选择仓库、分支或 ZIP 文件

    选择包含你的 monorepo 的仓库和分支,或者上传一个其根目录包含 monorepo 内容的 ZIP 文件。

  3. 打开 Advanced 设置

    展开部署表单中的 Advanced 部分。

  4. 输入工作目录

    输入从仓库根目录到 Crew 或 Flow 项目的路径:

    crews/support_agent

    不要包含前导斜杠。

  5. 部署

    添加任何所需的环境变量,然后开始部署。

  1. 打开部署设置

    前往 AMP 中你的自动化并打开 Settings

  2. 必要时关闭自动部署

    如果自动部署已启用,请先将其禁用。启用自动部署时,工作目录字段不可用。

  3. 设置工作目录

    Basic settings 中,输入子文件夹路径,例如:

    crews/support_agent
  4. 重新部署

    保存设置并重新部署自动化。新的工作目录会在下一次部署中使用。

工作目录必须是仓库或 ZIP 根目录下的相对路径。

规则示例
使用相对路径crews/support_agent
不要以 / 开头/crews/support_agent 无效
不要使用 ... 路径段crews/../support_agent 无效
仅使用字母、数字、连字符、下划线、点和正斜杠crews/support agent 无效
路径长度不超过 255 个字符更长的路径会被拒绝

AMP 会裁剪首尾空白、折叠重复斜杠,并移除末尾斜杠。空值表示使用仓库根目录。

选定的文件夹必须包含自动化的 pyproject.toml 以及其类型对应的项目文件:

  • JSON-first crew:crew.jsonccrew.json,以及 agents/
  • Classic crew 或 Flow:src/ 和预期的 Python 入口点

uv.lockpoetry.lock 可以位于选定文件夹内,也可以位于仓库根目录。

这同时支持两种常见的 lock 文件布局:

项目级 lock 文件
company-ai/
`-- crews/
`-- support_agent/
|-- pyproject.toml
|-- uv.lock
|-- crew.jsonc
`-- agents/
`-- support_agent.jsonc
工作区 lock 文件
company-ai/
|-- uv.lock
|-- packages/
| `-- shared_tools/
`-- crews/
`-- support_agent/
|-- pyproject.toml
|-- crew.jsonc
`-- agents/
`-- support_agent.jsonc

检查路径是否相对于仓库或 ZIP 根目录。对于 ZIP 上传,ZIP 内容必须精确包含你输入的工作目录路径。

工作目录应指向 Crew 或 Flow 项目文件夹,而不是只指向一个包含多个项目的父文件夹。

请在选定项目文件夹内或仓库根目录中提交一个 lock 文件。对于 UV 工作区,支持将 uv.lock 保留在工作区根目录。

当设置了工作目录时,自动部署会被禁用。请使用手动重新部署,或通过 AMP API 从 CI/CD 触发重新部署。

Deploy to AMP

选择 monorepo 工作目录后,继续查看部署指南。