> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aodeploy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Deploy your first AI agent to production in under 5 minutes.

## Prerequisites

* Python agent using LangChain, LangGraph or CrewAI
* `requirements.txt` and `pyproject.toml` in your project root
* An AO account at [aodeploy.com](https://aodeploy.com)

<Steps>
  <Step title="Install the CLI">
    ```bash theme={null}
    npm install -g @ao-ai/cli
    ```
  </Step>

  <Step title="Login">
    ```bash theme={null}
    ao login
    ```

    This opens your browser to authenticate. Once done, your API key is stored securely on your machine.
  </Step>

  <Step title="Initialize your project">
    Inside your agent's project directory:

    ```bash theme={null}
    ao init
    ```

    This creates an `ao.toml` file:

    ```toml theme={null}
    name = "my-agent"
    framework = "langgraph"
    entrypoint = "./graph.py:graph"

    python = "3.11"

    [runtime]
    max_retries = 3
    timeout = 300 # 5 minutes
    ```

    Edit `entrypoint` to point to your agent's main file.
  </Step>

  <Step title="Deploy">
    ```bash theme={null}
    ao deploy
    ```

    AO zips your project, builds a Docker image, and deploys it. You'll see a link to your deployment in the dashboard when it's done.

    ```
    Deploying agent...
    Packing project...
    Deployment successful!
    View your deployment at: https://aodeploy.com/dashboard/deployments
    ```
  </Step>

  <Step title="Run your agent">
    ```bash theme={null}
    ao run --deployment <deployment-id> --input '{"messages": ["your input here"]}'
    ```

    Find your deployment ID in the [dashboard](https://aodeploy.com/dashboard/deployments).

    ## What happens next

    Once deployed, AO handles:

    * **Retries** - if your agent fails, it retries automatically with exponential backoff up to `max_retries`
    * **Timeouts** - if a run exceeds `timeout` seconds, it's killed and retried
    * **Queues** - runs are queued durably so nothing is lost if the server restarts, processed concurrently across workers, and never duplicated
    * **Scheduling** - run your agent on a cron schedule, no infrastructure needed
    * **Logging** - every tool call, LLM call, and error is logged and visible in the dashboard
    * **State** - each retry knows what attempt it's on and what the previous error was
  </Step>
</Steps>

<Card title="Configure ao.toml" icon="file-code" href="/configuration" horizontal>
  Learn how to customize retries, timeouts, scheduling, and more.
</Card>
