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_agentAMP 仍会拉取或上传整个仓库,但会把选中的文件夹视为自动化项目根目录。
工作目录控制什么
Section titled “工作目录控制什么”当设置了工作目录时,AMP 会将该目录用于:
- 项目验证,包括
pyproject.toml、JSON crew 文件以及任何经典 Crew 或 Flow 入口点 - 使用
uv进行依赖安装 - 运行进程的工作目录
CREW_ROOT_DIR环境变量
将该字段留空会保持现有行为,并使用仓库根目录。
你可以在创建部署时设置工作目录,来源包括:
- 已连接的 GitHub 仓库
- 在 AMP 中配置的 Git 仓库
- ZIP 上传
你也可以在现有部署的 Settings 页面中添加或更改工作目录。该更改会在下一次部署时生效。
- 打开 Deploy from Code
在 CrewAI AMP 中创建一个新部署,并选择你的来源:GitHub、Git Repository 或 ZIP upload。
- 选择仓库、分支或 ZIP 文件
选择包含你的 monorepo 的仓库和分支,或者上传一个其根目录包含 monorepo 内容的 ZIP 文件。
- 打开 Advanced 设置
展开部署表单中的 Advanced 部分。
- 输入工作目录
输入从仓库根目录到 Crew 或 Flow 项目的路径:
crews/support_agent不要包含前导斜杠。
- 部署
添加任何所需的环境变量,然后开始部署。
配置现有部署
Section titled “配置现有部署”- 打开部署设置
前往 AMP 中你的自动化并打开 Settings。
- 必要时关闭自动部署
如果自动部署已启用,请先将其禁用。启用自动部署时,工作目录字段不可用。
- 设置工作目录
在 Basic settings 中,输入子文件夹路径,例如:
crews/support_agent - 重新部署
保存设置并重新部署自动化。新的工作目录会在下一次部署中使用。
工作目录必须是仓库或 ZIP 根目录下的相对路径。
| 规则 | 示例 |
|---|---|
| 使用相对路径 | crews/support_agent |
不要以 / 开头 | /crews/support_agent 无效 |
不要使用 . 或 .. 路径段 | crews/../support_agent 无效 |
| 仅使用字母、数字、连字符、下划线、点和正斜杠 | crews/support agent 无效 |
| 路径长度不超过 255 个字符 | 更长的路径会被拒绝 |
AMP 会裁剪首尾空白、折叠重复斜杠,并移除末尾斜杠。空值表示使用仓库根目录。
Lock 文件与 UV 工作区
Section titled “Lock 文件与 UV 工作区”选定的文件夹必须包含自动化的 pyproject.toml 以及其类型对应的项目文件:
- JSON-first crew:
crew.jsonc或crew.json,以及agents/ - Classic crew 或 Flow:
src/和预期的 Python 入口点
uv.lock 或 poetry.lock 可以位于选定文件夹内,也可以位于仓库根目录。
这同时支持两种常见的 lock 文件布局:
company-ai/`-- crews/ `-- support_agent/ |-- pyproject.toml |-- uv.lock |-- crew.jsonc `-- agents/ `-- support_agent.jsonccompany-ai/|-- uv.lock|-- packages/| `-- shared_tools/`-- crews/ `-- support_agent/ |-- pyproject.toml |-- crew.jsonc `-- agents/ `-- support_agent.jsonc找不到工作目录
Section titled “找不到工作目录”检查路径是否相对于仓库或 ZIP 根目录。对于 ZIP 上传,ZIP 内容必须精确包含你输入的工作目录路径。
缺少 pyproject.toml
Section titled “缺少 pyproject.toml”工作目录应指向 Crew 或 Flow 项目文件夹,而不是只指向一个包含多个项目的父文件夹。
缺少 uv.lock 或 poetry.lock
Section titled “缺少 uv.lock 或 poetry.lock”请在选定项目文件夹内或仓库根目录中提交一个 lock 文件。对于 UV 工作区,支持将 uv.lock 保留在工作区根目录。
自动部署不可用
Section titled “自动部署不可用”当设置了工作目录时,自动部署会被禁用。请使用手动重新部署,或通过 AMP API 从 CI/CD 触发重新部署。
Deploy to AMP
选择 monorepo 工作目录后,继续查看部署指南。