--- title: 'How do I choose a model?' description: 'Where each model id is set, how to read the live catalogue, and how to measure a swap instead of guessing at it.' position: 2 --- # How do I choose a model? > Stackbone does not rank models for you. What it gives you is one place to set > each model, a live catalogue to read, and eval suites to measure a swap once > you have made it. Three model ids come from your own project, and each is set in a different place. The agent's reasoning model is the `model` you pass to `defineDeepAgent(...)` in its `index.ts`, and it drives the main loop. A one-off completion, embedding or image goes through `stackbone.ai`, where you pass `model` on the call itself. Retrieval takes the `model` you pass on the `stackbone.rag` call, and the `rag.embeddingModel` key in `agent.yaml` parses but changes nothing. Guardrails and evals ask their own models, which you pick in Studio settings rather than in code. To compare candidates, read the catalogue. `stackbone.ai.models.list()` returns whatever the provider reports for each model, which on OpenRouter includes `context_length` and `pricing`. Every id uses the `creator/model-name` form, so switching is a one-line edit. Then measure the change. An **eval suite** runs your saved cases against the agent and reports a pass rate against a pass mark, and that number belongs in CI. ## Read more - **[Gateway](/docs/home/features/gateway)**: where each of those ids is set, and the one endpoint they all resolve through. - **[`stackbone.ai`](/docs/sdk/platform/ai)**: the catalogue call and every `ai_*` error code. - **[Testing and evals](/docs/faqs/building/testing-and-evals)**: how to measure a model swap. - **[Which models can I use?](/docs/faqs/general/supported-models)**: providers and the ids they resolve.