What it costs to run a customer-facing agent per conversation
JustCopy.ai launches one agent for every small business it builds a website for. The agent answers customers on the site and in the inbox. Here is what one of those conversations costs, how the number is measured, and what it means for a $9.99 plan.
· 5 min · by oncell
Why the per-conversation number matters
JustCopy sells to restaurant owners, salons, clinics, tradespeople, and coaches. Plans run from $9.99 to $49.99 a month, priced by how many things a customer can ask for per day. Every one of those customers is a separate tenant with a separate budget. When JustCopy adds an agent to each website, the question is not what the agents cost the platform in total. It is what one business’s agent costs, this month, against what that business pays.
That is the per-customer cost of AI agents, and most teams cannot answer it. Model spend arrives as one invoice for one API key. Attributing it back to a tenant means instrumenting every call, tagging it, and reconciling the tags against the bill. On oncell the attribution is a by-product of running the agent, because every model call crosses the runtime boundary on its way to the model.
How the number is measured
A JustCopy customer’s question goes to the agent’s chat task. The cell wakes, the model call goes through oncell’s gateway, where it is metered and logged, and the reply comes back in about a second with its cost and its run id. Nothing in JustCopy’s code counts tokens. These are three real replies from the agents deployed during the study, verbatim, with what each one cost on claude-haiku.
are you open monday morning?
We're closed Sundays and Mondays, but we'd love to see you Tuesday through Saturday from 7am to 3pm!
my crown fell off last night, can someone see me today?
I'm sorry to hear your crown fell off. Yes, we can help you today. Since you're calling about an emergency, if you call (425) 555-0177 by 9am we can see you before noon. Can I get your name and phone number, and are you an existing patient?
water is pouring out from under my kitchen sink what do I do
Okay, let's get this handled right away. First thing: shut off the water at your main valve. It's usually near the street or in your basement. Then give me your address and I'll get a truck dispatched.
JustCopy reads run history per agent and shows the owner recent conversations, with cost and latency under each reply. Every run is a full trace on oncell, so when a customer disputes what the agent said, the exact run is a run id away. The model is claude-haiku by default, and the model call never carries a vendor key into the cell: the gateway resolves the agent’s project, picks a credential from its pool, and records each served turn against the agent and project that caused it.
The bakery’s birthday-cake order, the longest exchange in the study, cost $0.00065 and took 1.1 seconds. Across the seven evals Summit Plumbing’s agent runs, the average is $0.0007 per reply at 1.8 seconds. The number JustCopy plans around is $0.0006 per customer conversation.
What $0.0006 buys on a $9.99 plan
At $0.0006 per conversation, a $9.99 plan covers about 16,000 conversations before the model bill matters. A bakery’s front desk will not see that many in a month. The economics of the agent are therefore not about the model at all; they are about making sure no single customer can run away from the average.
That is what the budget is for. Every JustCopy agent is deployed with a $1 per day budget, set at deploy time from the customer’s plan and enforced by the runtime below the model. A runaway conversation on a $9.99 plan stops at $1 a day, and JustCopy did not write a line of billing code to make that true. The deploy call carries the ceiling; the chat reply carries the cost.
POST https://api.oncell.ai/api/v1/deploy
Authorization: Bearer $ONCELL_API_KEY
{ "agentName": "jc-<customer>-front-desk",
"source": "<generated agent file>",
"manifest": { "identity": { "instructions": "...", "model": "claude-haiku",
"budgets": { "perDayCents": 100 } } } }
POST https://api.oncell.ai/api/v1/agents/jc-<customer>-front-desk/chat
{ "message": "are you open monday morning?" }
→ { "text": "We're closed Sundays and Mondays...", "cost": 0.00041, "runId": "run-..." }Budgets are described in the docs under Budgets: daily ceilings are enforced at the supervisor boundary, so a clever input cannot argue with them.
Cost is an eval, not a report
Knowing the number after the fact is the easy half. The harder half is keeping it from drifting when the agent changes. On oncell an eval receives the whole result of a run, including what it cost, so cost is a check like any other. Summit Plumbing’s agent carries a case called cost-ceiling that fails if a reply costs more than $0.002. A template change that doubles token usage fails that case before it reaches a single customer.
The same evals decide the model. Run them on two models and the scorecard reports pass rate, cost, and latency for each. An agent that passes the same cases at three times the cost is a decision JustCopy makes on evidence, per business, rather than a default it inherits from a framework.
What this means for a platform adding agents
The cost number is only useful if it is also a tenant boundary. Each JustCopy business runs as one agent in its own cell, deployed under a name that carries the customer id, so a bakery’s memory and files are unreadable to a dental practice’s agent, and the meter that prices the bakery’s conversations is the same boundary that isolates them. JustCopy’s one oncell key deploys every agent; there are no per-customer keys to manage.
If you sell a fixed price per month and add an agent to it, you need three numbers: the cost of a conversation, the ceiling per customer, and the proof that a change did not move either. JustCopy got all three from the runtime without building a metering pipeline. The full story, including the evals and the daily follow-up agent, is in the JustCopy customer story.
Related
The customer story
- JustCopy.ai
The website was step one. The agents run the business.
In the docs
- Budgets
Daily budgets enforced at the supervisor boundary.
- Observability
Every model call in the run log with its cost.
- Cost and latency evals
Cost as a first-class assertion.
- The gateway
Where a model call is metered and attributed.
More from the blog
- The run that became a test
Agent evaluation
- One agent, one cell
Multi-tenant agents
- Sync and async agents
Agent runtime