What one AI agent call costs, and what sits around it
Pricing an agent from a per-token table is easy. Knowing what one call looks like is harder.
I drafted this with an AI assistant and checked every number against my own project notes. The numbers come from an assistant agent I run for myself and a few other systems I built. Where a figure is a ceiling I set or an estimate, I say so.
One call, priced
A typical step of my assistant agent sends about 4,000 tokens in and gets about 500 out. That is the per-call estimate written into the agent’s own code for its background check, so it is an estimate and not a meter reading.
At OpenRouter list prices on 15 October 2026, that one step costs USD 0.00065 on Claude Haiku 5.5, USD 0.013 on Claude Sonnet 5.5 and USD 0.026 on Claude Opus 5.5. The cheapest model I priced, DeepSeek V4.1 Flash, comes to USD 0.00046.
Those numbers look like nothing, so multiply by a thousand. A thousand identical steps cost USD 0.46 on DeepSeek, USD 0.65 on Haiku, USD 13 on Sonnet and USD 26 on Opus. The most expensive model I priced, Claude Fable 5.1, is USD 65. Same work, about 140 times between the cheapest and the dearest.
From one call to a month
Take an agent that handles 200 tasks a day with 6 model calls each. That is 36,000 calls a month. At the step price above it is about USD 16 a month on DeepSeek, USD 23 on Haiku, USD 468 on Sonnet and USD 936 on Opus. This is an example workload to scale from, not a measurement of one of my systems.
If you want the same table for a smaller and a larger agent, with twelve models in it, I put it together in how much an AI agent costs to run per month. Everything you need to follow this piece is already here.
The 4,000 is the part that moves
Price per token stays put for weeks. The size of the call does not, and that was where my own assistant hurt.
I kept a warm session open between messages so replies came faster. When the context overflowed, the model started answering in garbled text with mixed alphabets. Now the session is recycled after 20 messages. Another day calls failed with “Prompt is too long”, because a saved checkpoint had grown. It is capped at 2 KB now.
Get Denys Zaichenko’s stories in your inbox
Join Medium for free to get updates from this writer.
The other direction paid off too. Loading skills only when a message needs them saved about 3,000 tokens per call, and taking three reference files out of the preload saved about 1,500 more. I cut the chat history sent with each call from 20 messages to 10. The token savings are estimates from my commit notes, not lines on an invoice.
Prices move as well. The same step costs USD 0.0065 on Haiku 4.5 and USD 0.00065 on Haiku 5.5. Anthropic says the newer models count about 30% more tokens for the same text, so it is still almost eight times cheaper per step. I would not plan a year ahead on today’s table.
The second meter: what the agent drives
My travel price benchmark has an AI agent in front of it, and that agent pays for its own tokens. What the benchmark pays for is scraping. One run over two travel sites used about 935 MB of residential proxy traffic, about USD 3.08.
For scale, the most I allow a full research run in my assistant to cost is USD 2.10, built from a USD 0.10 step, three USD 0.50 researchers and a USD 0.50 answer. That is a ceiling I set, not what I spent. Still, one proxy run costing more than the cap on a whole model run tells you which meter to watch first when the agent drives browsers.
The third meter: failures nobody sees
This is the one that no pricing page has.
Another project on the same server changed a shared browser cache, and my scraper’s pool went from 40 working browsers to 0. Jobs hung without an error. It took 8 days to find, because nothing alerted on the pool.
One run went through 359 dates in 12 minutes, saved 0 rows and reported success. Now a job stops after 25 empty dates in a row and says why. A benchmark I had marked as stopped kept running for 4 hours and used proxy traffic the whole time.
None of this is a token price. It shows up as hours of debugging and as trust lost when the agent says done and it is not.
What I would do again
Put a dollar ceiling on every job in code, not only a monthly limit on the account. Delete model calls that do not earn their place. My background check used to ask the model for a status report every cycle, with no access to email or the CRM, so all it wrote was messages nobody needed. I removed the call.
And store the cost of every call from day one. My agent’s SDK reports an estimate for each call and I never saved it. I can tell you the ceilings, but not which job used the most, and that is the first thing I would want to know.





