What an AI agent task costs, measured call by call
Measured in September 2026: an agent job's turn cost 60 cents on Claude Opus 5.5 and $1.00 on GPT-6 Sol, half Opus's price per token. Where each bill went.
An agent job’s bill is set by how many model calls it takes, times what each call pays for context the cache does not cover, plus any calls the harness makes after the reply. The list price alone does not predict it. In September 2026 the same job’s turn cost 60 cents on Claude Opus 5.5 and $1.00 on GPT-6 Sol, though Opus lists at twice Sol’s price per token: Sol took 21 calls to Opus’s 11 and paid in full on each for a growing share of the job that Opus read from its cache. The harness’s own calls after the reply brought the whole jobs to about $1.06 and $1.18. On an efficient model a job can cost cents: a lease checked on GPT-6 Luna came to under two. The calls, the cached share of each and the calls after the reply all show in your provider’s per-request log.
The runs
Each job went to a newly set-up OpenClaw agent, release 2026.9.4, on a cloud server of its own, asked for in plain words, with reasoning effort high. Every call was billed through OpenRouter, the September 23 runs at the list prices of the day. Each cost is the whole job as the API key’s usage meter recorded it: every call billed while the job ran, whatever the agent’s context carried, the harness’s own calls included. Each model ran once, on September 21 or 23, 2026, so the figures show how a bill is made, not which model is cheaper; a second run could differ in calls, time and cost. Each run was filmed: the menu site on both models, the lease and the recipe app.
Opus 5.5 and GPT-6 Sol did the same job, a menu photo made into a live one-page site; Opus replied in 1 min 44 s and Sol in 3 min 27 s. GPT-6 Luna checked a lease for hidden clauses. Prices are per million tokens, input / output, as listed that day.
| Model, list price | Model calls | Whole job, metered |
|---|---|---|
Claude Opus 5.5$4 / $20 | 11, then 5 after the reply | about $1.06 |
GPT-6 Sol$2 / $10 | 21, then 2 after the reply | about $1.18 |
GPT-6 Luna$0.10 / $0.50 | 10 | 1.3 to 1.5 cents |
Each job was checked against an answer key written before the run, and each was done right: both menu sites carried all twelve items, every price and the opening hours, and the lease check reported all five clauses written into the lease as traps. One of Luna’s ten calls was the harness’s PDF reader, set to the same model.
Where the menu job’s bills went
| Part of the bill | Opus 5.5 | GPT-6 Sol |
|---|---|---|
Output | 11¢ | 12¢ |
Context from the cache | 13¢ | 11¢ |
Context not from the cache | 36¢ | 78¢ |
The turn | 60¢ | $1.00 |
Calls after the reply | about 46¢ | about 18¢ |
The whole job | about $1.06 | about $1.18 |
Output, the replies and tool calls the model wrote, was the small part on both. The rest was context sent again on every call: the agent’s instructions, its tool definitions and the record of the job so far, which is why an agent’s bill follows the input price. What separated the two turns was how that context was charged. Opus’s first call wrote its whole starting context into the cache, 28 of the turn’s 60 cents. After that, each call read everything before it from the cache at a twentieth of the input price and paid in full only for what the last step had added.
Sol’s first call wrote its starting context into the cache for 7 cents. From the second call on, each read the same first 27,840 tokens from the cache and paid for everything after them at the cache-write rate, a quarter above the input price. That part was the record of the job so far, so it grew with every step, from 4,700 tokens on the second call to 20,200 on the last: 283,000 tokens over the turn, 71 cents of its $1.00.
Neither difference alone made the gap. Twice the calls at half the price would have left the two turns level. And had Sol’s calls read the job from the cache the way Opus’s did, the same 21 would have come to about 40 cents, less than Opus’s 60: that is arithmetic on Sol’s own per-call records, not a run. The extra calls multiplied what each call paid in full. The two first calls also differed in size, as each provider counted them: the agent’s starting context came to about 55,000 tokens on Opus and 28,000 on Sol, so a price per token does not compare one for one across the two.
A flat cache on two OpenAI models
GPT-6 Luna did what Sol did, on the lease the same day: every call after the first read 27,841 tokens from the cache and paid the cache-write rate on the rest, about two fifths of its turn. Two OpenAI models showed the pattern that week, on one route and one OpenClaw release; why their cache stopped there is not established, and whether it holds on later releases or on GPT-6.1 Sol we have not measured. A per-request log shows which pattern a job is paying for. On Opus the cached count grew with the job, call by call. A count that stays flat while the job grows means every step pays again for the record so far, and the more steps the job takes, the more that costs.
The calls after the reply
Both bills kept growing after the agent had answered. The harness on Opus’s server made five more calls on the same model starting 35 seconds after its reply, and a learned skill was saved in those minutes; Sol’s made two, starting 34 seconds after. None of them appear in the conversation’s transcript. Their timing and model match what OpenClaw’s docs for 2026.9.4 describe for its self-learning, which is on by default: after a turn of at least ten model calls, once the agent has been quiet for 30 seconds, a background review re-reads the conversation on the same model to save a procedure worth reusing, kept out of the transcript and billed at that provider’s prices. The lease check took nine of the agent’s own calls, under the threshold, and its bill shows no calls after the reply. On 2026.10.6, the current release, self-learning is still on by default and queues a review once a session reaches ten model calls since its last one.
On the menu job those calls cut Opus’s lead from 40 cents on the turn to 12 on the whole job. A review spends now so that a later job can follow a learned skill instead of working the procedure out again. The docs’ switch is openclaw config set skills.workshop.autonomous.mode off, which stops the background reviews and the cleanup of unused learned skills; we have not measured a job with it off.
The cheap end
GPT-6 Luna, at $0.10 per million input tokens, read a three-page lease and reported all five clauses 86 seconds after the ask, in ten model calls, for 1.3 to 1.5 cents. That is a different job from the menu site, so the comparison is rough, but at about the same number of calls Luna’s bill was about a fortieth of Opus’s turn, close to the gap between their list prices. DeepSeek V4.1 Flash, an open-weights model that several hosts serve at different prices, read ten recipe screenshots with its own vision on September 21, built a meal-planner app from them, tested it, fixed two bugs its test found and put it on a public link, with all 69 ingredient lines right, in under seven minutes of building; the whole job came to about 25 cents on the meter.
At today’s prices
Re-pricing the measured calls at the list prices of October 23, 2026 is arithmetic, not a new run. Opus 5.5, GPT-6 Sol and GPT-6 Luna list at the same prices. GPT-6.1 Sol, GPT-6 Sol’s successor, halves the cached price to $0.10 a million, which would take about 6 cents off Sol’s $1.00 turn, because most of that turn was context not read from the cache.
Measuring a job of your own
The provider’s per-request log holds every figure above for a job of your own: the number of calls the job took, the cached tokens on each call, and any calls after the reply. Send one representative job to each model you are weighing and add up its rows, the check the OpenClaw cost guide asks for before a task is scheduled to repeat.