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

# Dependencies

> How Onecortex finds your dependency file, in what order, how to point at a different one, and what an install failure shows.

Onecortex installs your agent's dependencies from the file your repository already has. It looks in the agent folder, in order, and uses the first file it finds: a lockfile first, because it is what makes a build repeatable.

## The search order

<Tabs>
  <Tab title="Python">
    | Order | File | How it installs |
    | - | - | - |
    | 1 | `uv.lock` | The locked set, exactly, without development dependencies |
    | 2 | `poetry.lock` | From `pyproject.toml` beside it, and the versions installed are recorded after the build |
    | 3 | `Pipfile.lock` | The locked default group |
    | 4 | `pyproject.toml` | The project's dependencies, resolved at build time |
    | 5 | `requirements.txt` | As listed |

    Everything is installed with `uv`.
  </Tab>

  <Tab title="TypeScript">
    | Order | File | How it installs |
    | - | - | - |
    | 1 | `bun.lock` | `bun install --frozen-lockfile` |
    | 2 | `bun.lockb` | `bun install --frozen-lockfile` |
    | 3 | `pnpm-lock.yaml` | `pnpm install --frozen-lockfile` |
    | 4 | `package-lock.json` | `npm ci` |
    | 5 | `yarn.lock` | `yarn install --frozen-lockfile` |
    | 6 | `package.json` | `npm install`, and the versions installed are recorded after the build |

    Development dependencies are installed too.
  </Tab>
</Tabs>

If none is found, validation fails with `agent.yml: no dependency manifest was found in the build context.` An agent with no dependencies still needs one: an empty `requirements.txt`, or a `package.json` with no dependencies.

## Point at a different file

Set `dependencies` to use a file that is not first in the order, or not at the folder's root:

```yaml agent.yml theme={null}
dependencies: requirements/prod.txt
```

The path is relative to the agent folder and may not leave it. A file that does not exist fails validation with ``agent.yml line <n>: `dependencies` is `<file>`, which does not exist in the build context.``, listing the files that are there.

## When the install fails

The build fails at **Build image** with:

```text theme={null}
Installing dependencies failed.
```

followed by your package manager's own output, unedited. The usual causes are a version that does not exist, a conflict between two packages, a private package the build cannot reach, or a lockfile out of date with its manifest: a frozen install refuses to change the lockfile. Run the same install locally, from a clean environment, to reproduce it.

A package with no build for 64 bit ARM Linux fails with its own message. See [Python agents](/build/python#the-architecture-64-bit-arm-linux).

## Size

The built image, with your dependencies, may be at most 2048 MB. A larger one fails with `The built image is too large to deploy.` Machine learning libraries with GPU builds are the usual cause: install the CPU only build, or call a hosted model instead.
