跳转到内容

部署到 AMP

准备好可部署项目

你应该已经有一个可在本地成功运行的 Crew 或 Flow。请参考我们的 部署前准备指南 来验证项目结构。

GitHub 仓库

你的代码应位于 GitHub 仓库中(用于 GitHub 集成方式)

CLI 提供了将本地开发的 Crews 或 Flows 部署到 AMP 平台的最快方式。CLI 会根据 pyproject.toml 自动检测项目类型并进行相应构建。

  1. 安装 CrewAI CLI

    如果你还没有安装,请先安装 CrewAI CLI:

    Terminal window
    pip install crewai[tools]
  2. 使用 Enterprise 平台进行认证

    首先,你需要让 CLI 通过 CrewAI AMP 平台完成认证:

    Terminal window
    # If you already have a CrewAI AMP account, or want to create one:
    crewai login

    当你运行任一命令时,CLI 会:

    1. 显示一个 URL 和唯一的设备代码
    2. 打开浏览器进入认证页面
    3. 提示你确认该设备
    4. 完成认证流程

    认证成功后,你会在终端中看到确认消息!

  3. 创建部署

    在项目目录中运行:

    Terminal window
    crewai deploy create

    该命令会:

    1. 检测你的 GitHub 仓库信息
    2. 识别本地 .env 文件中的环境变量
    3. 安全地将这些变量传输到 Enterprise 平台
    4. 创建一个带有唯一标识的新部署

    成功创建后,你会看到如下消息:

    Terminal window
    Deployment created successfully!
    Name: your_project_name
    Deployment ID: 01234567-89ab-cdef-0123-456789abcdef
    Current Status: Deploy Enqueued
  4. 监控部署进度

    使用以下命令跟踪部署状态:

    Terminal window
    crewai deploy status

    查看构建过程的详细日志:

    Terminal window
    crewai deploy logs

CrewAI CLI 提供了若干命令用于管理部署:

Terminal window
# List all your deployments
crewai deploy list
# Get the status of your deployment
crewai deploy status
# View the logs of your deployment
crewai deploy logs
# Push updates after code changes
crewai deploy push
# Remove a deployment
crewai deploy remove <deployment_id>

你也可以通过连接 GitHub 账号,直接在 CrewAI AMP Web 界面中部署 Crews 或 Flows。这种方式不需要在本地机器上使用 CLI。平台会自动检测项目类型并正确处理构建。

  1. 推送到 GitHub

    你需要将 crew 推送到 GitHub 仓库。如果你还没有创建 crew,可以先按照本教程

  2. 将 GitHub 连接到 CrewAI AMP
    1. 登录 CrewAI AMP
    2. 点击 “Connect GitHub” 按钮

    Connect GitHub Button

  3. 选择仓库

    连接 GitHub 账号后,你可以选择要部署的仓库:

    Select Repository

  4. 设置环境变量

    在部署之前,你需要设置环境变量,以连接 LLM 提供方或其他服务:

    1. 你可以逐个添加变量,也可以批量添加
    2. KEY=VALUE 格式输入环境变量(每行一个)

    Set Environment Variables

  5. 部署你的 Crew
    1. 点击 “Deploy” 按钮开始部署流程
    2. 你可以通过进度条监控进度
    3. 首次部署通常需要大约 1 分钟

    Deploy Progress

    部署完成后,你会看到:

    • crew 的唯一 URL
    • 一个用于保护 crew API 的 Bearer token
    • 如果需要移除部署,还会有一个 “Delete” 按钮

选项 3:通过 API 重新部署(CI/CD 集成)

Section titled “选项 3:通过 API 重新部署(CI/CD 集成)”

对于 CI/CD 管道中的自动化部署,你可以使用 CrewAI API 来触发现有 crews 的重新部署。这对 GitHub Actions、Jenkins 或其他自动化工作流特别有用。

  1. 获取个人访问 token

    前往 CrewAI AMP 账号设置生成一个 API token:

    1. 进入 app.crewai.com
    2. 点击 SettingsAccountPersonal Access Token
    3. 生成一个新 token 并安全复制
    4. 将该 token 作为 CI/CD 系统中的 secret 保存
  2. 查找你的 Automation UUID

    找到已部署 crew 的唯一标识:

    1. 前往 CrewAI AMP 仪表板中的 Automations
    2. 选择你现有的 automation/crew
    3. 点击 Additional Details
    4. 复制 UUID - 这就是你的特定 crew 部署标识
  3. 通过 API 触发重新部署

    使用 Deploy API 端点触发重新部署:

    Terminal window
    curl -i -X POST \
    -H "Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN" \
    https://app.crewai.com/crewai_plus/api/v1/crews/YOUR-AUTOMATION-UUID/deploy
    # HTTP/2 200
    # content-type: application/json
    #
    # {
    # "uuid": "your-automation-uuid",
    # "status": "Deploy Enqueued",
    # "public_url": "https://your-crew-deployment.crewai.com",
    # "token": "your-bearer-token"
    # }
  4. GitHub Actions 集成示例

    下面是一个包含更复杂部署触发条件的 GitHub Actions workflow:

    name: Deploy CrewAI Automation
    on:
    push:
    branches: [ main ]
    pull_request:
    types: [ labeled ]
    release:
    types: [ published ]
    jobs:
    deploy:
    runs-on: ubuntu-latest
    if: |
    (github.event_name == 'push' && github.ref == 'refs/heads/main') ||
    (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'deploy')) ||
    (github.event_name == 'release')
    steps:
    - name: Trigger CrewAI Redeployment
    run: |
    curl -X POST \
    -H "Authorization: Bearer ${{ secrets.CREWAI_PAT }}" \
    https://app.crewai.com/crewai_plus/api/v1/crews/${{ secrets.CREWAI_AUTOMATION_UUID }}/deploy

部署完成后,你可以通过以下方式访问 crew:

  1. REST API:平台会生成一个唯一的 HTTPS 终端节点,包含以下关键路由:

    • /inputs:列出所需输入参数
    • /kickoff:使用提供的输入启动一次执行
    • /status/{kickoff_id}:检查执行状态
  2. Web Interface:访问 app.crewai.com 以查看:

    • Status tab:查看部署信息、API 终端节点详情和认证 token
    • Run tab:以可视化方式展示 crew 的结构
    • Executions tab:查看所有执行历史
    • Metrics tab:查看性能分析
    • Traces tab:查看详细执行洞察

在 Enterprise 仪表板中,你可以:

  1. 点击 crew 名称打开详情
  2. 在管理界面中选择 “Trigger Crew”
  3. 在弹出的模态框中输入所需内容
  4. 监控执行在流水线中的推进

Enterprise 平台提供完整的可观测能力:

  • Execution Management:跟踪活跃和已完成运行
  • Traces:每次执行的详细分解
  • Metrics:token 使用量、执行时长和成本
  • Timeline View:任务序列的可视化表示

Enterprise 平台还提供:

  • Environment Variables Management:安全存储和管理 API keys
  • LLM Connections:配置与各种 LLM 提供方的集成
  • Custom Tools Repository:创建、分享和安装工具
  • Crew Studio:通过聊天界面构建 crews,无需编写代码

如果你的部署失败,请检查以下常见问题:

症状:构建在依赖解析时很早失败

解决方案:生成并提交 lock 文件:

Terminal window
uv lock
git add uv.lock
git commit -m "Add uv.lock for deployment"
git push

症状:“Could not find entry point” 或 “Module not found” 错误

解决方案:验证你的项目是否符合预期结构:

  • JSON-first Crews:将 crew.jsonccrew.json 以及 agents/ 保持在项目根目录
  • Classic Crews:使用 src/project_name/main.py,并提供 run() 入口点
  • Flows:使用 src/project_name/main.py,并提供 kickoff() 入口点

查看 部署前准备 获取详细结构图。

症状:“Crew not found”、“Config not found” 或 agent/task 配置错误

解决方案:对于经典 Python/YAML crews,请确保所有 crew 类都使用 @CrewBase 装饰器。JSON-first crews 不需要这个装饰器。

from crewai.project import CrewBase, agent, crew, task
@CrewBase # This decorator is REQUIRED
class YourCrew():
"""Your crew description"""
@agent
def my_agent(self) -> Agent:
return Agent(
config=self.agents_config['my_agent'], # type: ignore[index]
verbose=True
)
# ... rest of crew definition

症状:构建成功但运行时失败,或者出现意外行为

解决方案:验证 [tool.crewai] 部分是否与项目类型一致:

# For Crew projects:
[tool.crewai]
type = "crew"
# For Flow projects:
[tool.crewai]
type = "flow"

症状:API key 错误、“model not found” 或认证失败

解决方案

  1. 确认 LLM 提供方的 API key 已正确设置在环境变量中
  2. 确保环境变量名称与你的代码期望一致
  3. 在部署前使用完全相同的环境变量进行本地测试

症状:crew 启动但在执行过程中失败

解决方案

  1. 检查 AMP 仪表板中的执行日志(Traces 选项卡)
  2. 验证所有工具都已配置所需的 API keys
  3. 对于 JSON-first crews,验证 crew.jsoncagents/ 中引用的文件
  4. 对于经典 crews,确保 agents.yamltasks.yaml 有效

需要帮助?

如需部署问题或 AMP 平台相关问题的帮助,请联系我们的支持团队。