# Build agents

> Three ways to build an agent: from the library, with the builder, or in code.

There are three ways to put an agent to work. Each ends in the same place: a card in your deployment’s catalogue, released through the same gate.

| Way                                 | When to use it                                | State                                                                                    |
| ----------------------------------- | --------------------------------------------- | ---------------------------------------------------------------------------------------- |
| [From the library](/build/library/) | A ready-made agent fits the job               | Built: you request it in LightHouse; it reaches your deployment through a reviewed merge |
| [With the builder](/build/builder/) | You want to describe the job in plain words   | \[Coming]                                                                                |
| [In code](/build/code/)             | Your engineers write the agent, or change one | Built: a card and a Python function, run by the engine’s orchestrator                    |

## What every agent has

- **A card**: its tools, its budget, its effect and its autonomy. See [Agents](/concepts/agents/).
- **Evaluations**: a golden set run before every release, and again against what is released. See [Evaluations](/build/evaluations/).
- **Approvals**: a person signs off any output with an effect outside the run, unless a standing pre-approval covers it. See [Approvals](/build/approvals/).
- **Versions**: only a version that passed the release gate can be made current, and a breach rolls back to the last version that passed. See [Versioning and rollback](/build/versioning/).
- **A run map**: every step of every run, with its model, cost and sign-offs. See [The run map](/build/run-map/).

Source: https://docs.atlanticagenticlabs.com/build/
