Agent costs

An agent pays for what it looks at.

Every screenshot is image tokens, and a full screen is not a small one. Most of what a loop sends is a picture answering a question that never needed one. The figures below are ours, they are published in full alongside the code, and the design that produces the cheaper column is the thing we build.

What a look costs

The bill is set by how much screen you send.

Models bill visual tokens by area. Current models accept a long edge large enough that a 1080p screenshot is not scaled down before billing, so a full screen is charged as a full screen.

Visual tokens by what you send, with one model's input rate applied for scale. The token counts are a property of the image and do not change; the rate is per vendor and per model, and dated.
What you sendVisual tokens At $5 per million input
1920×1080, the whole screen2,691$0.0135
1456×819, a standard-tier view1,560$0.0078
960×540, half scale, readable for layout700$0.0035
400×200, one dialog, cropped120$0.0006
200×100, one field or button32$0.0002

Prices as of August 2026 and for one model. Check the current rate and multiply by the token counts, which do not move. Other vendors bill differently, but the shape holds: a full screen costs one to two orders of magnitude more than a crop.

The same job, driven two ways

Twenty minutes watching an installer.

Nothing about the task changes between these two rows. The difference is entirely in what the loop was built to ask.

How you drive itImage tokens Cost
A full-screen look every 20 seconds161,460$0.81
Waits, six full looks and twenty crops18,546$0.09

About ninety per cent less, and the waiting is free.

In the order they save

Do not poll with screenshots. Asking whether anything has changed returns a number and costs no image tokens at all. Look once, when it says something happened. An agent can follow a ten-minute operation for free and pay for a picture only when there is something to see.
Crop to what you are reading. One dialog is 120 tokens against 2,691 for the screen it sits on.
Downscale when you only need layout. Half scale is a quarter of the cost and still readable for structure.

The expensive mistake

A picture sent as text costs twenty-one times more and cannot be read.

A 1080p JPEG is about 169 KB. Handed to a model as an image it is roughly 2,700 visual tokens. Handed over as a base64 string it is about 56,000 text tokens, for characters no model can interpret as a picture.

It is the costliest error this kind of interface can make, and it is invisible until the invoice arrives. Our tools return image content, and a test pins that behaviour so it cannot regress quietly.

Why the waiting is free

The wait is answered by the capture service, not the model. It decodes at quarter scale in grayscale, cropped to the region in question, and counts pixels that differ past a threshold you set in full-resolution terms. No image is produced and nothing is billed. It also distinguishes the two ways a wait can end: a timeout after real comparisons means the screen did not change, while a timeout with nothing compared means the eye could not look, and the two must never be reported as the same answer.

The other half of the bill

Local models carry the volume. Frontier models are an escalation.

Cropping controls what a look costs. The second question is who is asked. Most of what a loop wants to know is narrow and repetitive, runs thousands of times, and a small model on your own hardware answers it at a marginal cost of nothing.

What a small model is not good at is coherence: holding a long plan together, or recovering from something genuinely unexpected. Our own comparison put it bluntly. Local hardware wins on speed by a wide margin and loses on coherence. So the frontier model is not the default worker; it is what the loop escalates to.

Where the line sits

Local, in volume. Change detection, state classification, reading a known field, judging whether a step did what it was asked to do.
Escalate when the small model is not confident, when a step has failed more than once, when the screen is one the run has not seen before, or when the next move is a plan rather than a judgement.
Frontier, sparingly. Planning, recovery, and anything needing knowledge of the world beyond the task.

A dedicated small model for internal classifiers and judges also keeps that traffic off the path of whatever is serving the foreground turn, so the two never contend.

What we do about it.

The cost shape is set by the tool surface, and the tool surface is part of the integration rather than something tuned afterwards. We size the regions, decide which questions return answers instead of pictures, put the boundary between the local tier and the escalation where your task needs it, and hand over the numbers for your own workload.

If a job turns out to be an expensive way to do something an API would do cheaply, that is a finding we would rather give you in week one.

Where these figures come from

All of it is published, with the method, in the agentkvm repository under "What a look costs". Nothing on this page is a figure you have to take on trust, and the token counts stay true after the prices move.