Models and Run Cost
Which model an agent runs on, who can change it, and how tokensPerRun charges your wallet.
Every Horizon agent runs on a large language model that the platform chooses, and each run is charged to your token wallet at a fixed price per run.
The model is a single field, and most agents never set it
An agent deployment carries one optional model field: modelName, a free-text model identifier.
When it is unset — which is the normal case — runs use the platform default:
anthropic/claude-sonnet-4
Two fields on an agent deployment govern the model and the cost of a run:
| Field | What it sets | When unset |
|---|---|---|
modelName | The model the deployment’s runs use | anthropic/claude-sonnet-4 |
tokensPerRun | What one run charges your token wallet | 1 token |
Who can change it
Model selection is an administrative control, not a builder-facing one. The edit control lives on the agent’s store listing and is gated on backend access, so ordinary org users — including people who build and deploy agents — cannot see or change it.
Two consequences worth being clear about:
- Editing the model on a store listing changes the listing. It is not a per-agent override you can apply to an agent you have already deployed.
- If you need a specific model for a specific workload, that is a request to your Horizon administrator, not a setting to go find.
tokensPerRun is a wallet charge, not an output limit
This is the one that costs money if you misread it. tokensPerRun is an optional integer on the
deployment, and it is the price of one run against your token wallet:
const cost = BigInt(deployment.tokensPerRun ?? 1);It does not cap how long a response can be, and it does not influence the model’s behaviour in any way. When it is unset, a run costs 1 token.
Raising tokensPerRun does not buy longer or better answers — it charges the wallet more for
exactly the same run. It is not an output-length setting, and increasing it only increases what
you are billed.
Because the charge is per run rather than per token consumed, cost scales with how often your agents run, not with how much the model reads or writes on any given run.
Managing cost
Since the per-run charge is fixed and the model is not yours to tune, cost control is about how often agents run and how much work each run does:
- Prefer scheduled or triggered runs over polling-style agents that run on a timer regardless of whether there is anything to do.
- Keep instructions tight. They are re-sent on every run, and a long system prompt makes each run slower without making it cheaper.
- Constrain skill output with filters and pagination, so a run is not pulling data it will not use.