← all posts
// economics · commercial-models

Commercial vs free models for tool-using agents: quality ceiling versus sufficient quality

Buying the frontier model for every agent call is usually a waste of money. That's the claim. It holds only when the cheaper route can actually finish the job unattended.

"Commercial versus free" hides three purchases: a paid API bundling inference with a service, a free tier rationing that same service, and an open-weight model whose license may or may not be open, with local inference trading the invoice for hardware and upkeep nobody schedules. For an agent that calls tools, what matters is a completed task whose actions stayed inside policy: a malformed call or a correct-looking action without authority costs more, once you count the repair, than the pricier call that just finishes.

Judged at the acceptance boundary, not on vibes

Quality gets judged where your application accepts or rejects the output, not by how eloquent it sounds. The free candidate is an open-weight agent model, local or on a free allowance; the commercial candidate is a reasoning API with native tools. Use real prices and model names, then drop them from the permanent decision: catalogs reshuffle, allowances get pulled.

Score both paths blind, on the same evidence, respecting each route's own prompt template rather than one flattering shared harness; a native tool the other route must hand-build still counts as cost. Track model revision, token counts, latency, hardware energy, and the pass, retry, abstain, repair split. The gate is completion, tool-call validity, step count, and recovery. Label every failure: missing evidence, a bad instruction, malformed structure, wrong reasoning, a tool error, an unsafe action. A local model clears the easy majority and breaks past some threshold you can name.

The ceiling only earns its price when hard cases pile up

Commercial wins when hard cases are common enough that frontier capability visibly cuts severe errors or review time. That's not license to route everything to the biggest model: put a cheaper commercial tier in the comparison, and cap output and reasoning effort before crediting the expensive one. Managed capacity earns its cost when it removes work the team would otherwise do by hand.

Free or open-weight wins when an evaluated model clears that gate on most traffic, and the edge grows with steady work. It shrinks once the model barely fits, reloads constantly, or needs a runtime only one person understands. Spare GPU time is never really free. The recurring mistake is paying for a benchmark lead that never changes what ships. Tie every number to a workload and a time window, the same math 99-percent-cost-architecture runs on: tokens per second is a diagnostic, not an outcome, and what matters is cost per accepted task, p95 latency, and the human attention still propping it up.

Write the divorce clause first

Put provider-specific handling behind one narrow adapter. Keep prompts and schemas in version control, and hold job state outside any vendor's thread object, the way a local-first-cascade would. Contract-test streaming, tool calls, structured output, and token accounting for every route.

Make the fallback a decision, not an accident. A local model covering for a down commercial API works fine, as long as people know capability changed; exhausted local capacity never excuses sending sensitive data remotely. Re-run the comparison whenever traffic, prices, or review practice shifts enough to matter: a route right at ten thousand tasks a month can be wrong at a hundred thousand.

None of this needs a universal winner. What I still don't have a clean answer for is the adapter itself: thin enough to swap providers, it flattens the native tool support that justified commercial in the first place; grown enough to keep that capability, it rebuilds the lock-in the interface was supposed to prevent.

#commercial-models#open-models#cost