Skip to content

Deploy to AMP

Project Ready for Deployment

You should have a working Crew or Flow that runs successfully locally. Follow our preparation guide to verify your project structure.

GitHub Repository

Your code should be in a GitHub repository (for GitHub integration method)

The CLI provides the fastest way to deploy locally developed Crews or Flows to the AMP platform. The CLI automatically detects your project type from pyproject.toml and builds accordingly.

  1. Install CrewAI CLI

    If you haven’t already, install the CrewAI CLI:

    Terminal window
    pip install crewai[tools]
  2. Authenticate with the Enterprise Platform

    First, you need to authenticate your CLI with the CrewAI AMP platform:

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

    When you run either command, the CLI will:

    1. Display a URL and a unique device code
    2. Open your browser to the authentication page
    3. Prompt you to confirm the device
    4. Complete the authentication process

    Upon successful authentication, you’ll see a confirmation message in your terminal!

  3. Create a Deployment

    From your project directory, run:

    Terminal window
    crewai deploy create

    This command will:

    1. Detect your GitHub repository information
    2. Identify environment variables in your local .env file
    3. Securely transfer these variables to the Enterprise platform
    4. Create a new deployment with a unique identifier

    On successful creation, you’ll see a message like:

    Terminal window
    Deployment created successfully!
    Name: your_project_name
    Deployment ID: 01234567-89ab-cdef-0123-456789abcdef
    Current Status: Deploy Enqueued
  4. Monitor Deployment Progress

    Track the deployment status with:

    Terminal window
    crewai deploy status

    For detailed logs of the build process:

    Terminal window
    crewai deploy logs

The CrewAI CLI offers several commands to manage your deployments:

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>

Option 2: Deploy Directly via Web Interface

Section titled “Option 2: Deploy Directly via Web Interface”

You can also deploy your Crews or Flows directly through the CrewAI AMP web interface by connecting your GitHub account. This approach doesn’t require using the CLI on your local machine. The platform automatically detects your project type and handles the build appropriately.

  1. Pushing to GitHub

    You need to push your crew to a GitHub repository. If you haven’t created a crew yet, you can follow this tutorial.

  2. Connecting GitHub to CrewAI AMP
    1. Log in to CrewAI AMP
    2. Click on the button “Connect GitHub”

    Connect GitHub Button

  3. Select the Repository

    After connecting your GitHub account, you’ll be able to select which repository to deploy:

    Select Repository

  4. Set Environment Variables

    Before deploying, you’ll need to set up your environment variables to connect to your LLM provider or other services:

    1. You can add variables individually or in bulk
    2. Enter your environment variables in KEY=VALUE format (one per line)

    Set Environment Variables

  5. Deploy Your Crew
    1. Click the “Deploy” button to start the deployment process
    2. You can monitor the progress through the progress bar
    3. The first deployment typically takes around 1 minute

    Deploy Progress

    Once deployment is complete, you’ll see:

    • Your crew’s unique URL
    • A Bearer token to protect your crew API
    • A “Delete” button if you need to remove the deployment

Option 3: Redeploy Using API (CI/CD Integration)

Section titled “Option 3: Redeploy Using API (CI/CD Integration)”

For automated deployments in CI/CD pipelines, you can use the CrewAI API to trigger redeployments of existing crews. This is particularly useful for GitHub Actions, Jenkins, or other automation workflows.

  1. Get Your Personal Access Token

    Navigate to your CrewAI AMP account settings to generate an API token:

    1. Go to app.crewai.com
    2. Click on SettingsAccountPersonal Access Token
    3. Generate a new token and copy it securely
    4. Store this token as a secret in your CI/CD system
  2. Find Your Automation UUID

    Locate the unique identifier for your deployed crew:

    1. Go to Automations in your CrewAI AMP dashboard
    2. Select your existing automation/crew
    3. Click on Additional Details
    4. Copy the UUID - this identifies your specific crew deployment
  3. Trigger Redeployment via API

    Use the Deploy API endpoint to trigger a redeployment:

    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 Integration Example

    Here’s a GitHub Actions workflow with more complex deployment triggers:

    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

Once deployment is complete, you can access your crew through:

  1. REST API: The platform generates a unique HTTPS endpoint with these key routes:

    • /inputs: Lists the required input parameters
    • /kickoff: Initiates an execution with provided inputs
    • /status/{kickoff_id}: Checks the execution status
  2. Web Interface: Visit app.crewai.com to access:

    • Status tab: View deployment information, API endpoint details, and authentication token
    • Run tab: Visual representation of your crew’s structure
    • Executions tab: History of all executions
    • Metrics tab: Performance analytics
    • Traces tab: Detailed execution insights

From the Enterprise dashboard, you can:

  1. Click on your crew’s name to open its details
  2. Select “Trigger Crew” from the management interface
  3. Enter the required inputs in the modal that appears
  4. Monitor progress as the execution moves through the pipeline

The Enterprise platform provides comprehensive observability features:

  • Execution Management: Track active and completed runs
  • Traces: Detailed breakdowns of each execution
  • Metrics: Token usage, execution times, and costs
  • Timeline View: Visual representation of task sequences

The Enterprise platform also offers:

  • Environment Variables Management: Securely store and manage API keys
  • LLM Connections: Configure integrations with various LLM providers
  • Custom Tools Repository: Create, share, and install tools
  • Crew Studio: Build crews through a chat interface without writing code

If your deployment fails, check these common issues:

Symptom: Build fails early with dependency resolution errors

Solution: Generate and commit the lock file:

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

Symptom: “Could not find entry point” or “Module not found” errors

Solution: Verify your project matches the expected structure:

  • JSON-first Crews: Keep crew.jsonc or crew.json and agents/ at the project root
  • Classic Crews: Use src/project_name/main.py with a run() entry point
  • Flows: Use src/project_name/main.py with a kickoff() entry point

See Prepare for Deployment for detailed structure diagrams.

Missing CrewBase Decorator in a Classic Crew

Section titled “Missing CrewBase Decorator in a Classic Crew”

Symptom: “Crew not found”, “Config not found”, or agent/task configuration errors

Solution: For classic Python/YAML crews, ensure all crew classes use the @CrewBase decorator. JSON-first crews do not need this decorator.

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

Symptom: Build succeeds but runtime fails, or unexpected behavior

Solution: Verify the [tool.crewai] section matches your project type:

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

Symptom: API key errors, “model not found”, or authentication failures

Solution:

  1. Verify your LLM provider’s API key is correctly set in environment variables
  2. Ensure the environment variable names match what your code expects
  3. Test locally with the exact same environment variables before deploying

Symptom: Crew starts but fails during execution

Solution:

  1. Check the execution logs in the AMP dashboard (Traces tab)
  2. Verify all tools have required API keys configured
  3. For JSON-first crews, validate crew.jsonc and the referenced files in agents/
  4. For classic crews, ensure agents.yaml and tasks.yaml are valid

Need Help?

Contact our support team for assistance with deployment issues or questions about the AMP platform.