OOOMETA/OS
← Back to insights

September 2026 · 7 min read

Bounded decisions should never enter the LLM loop

Keep bounded decisions out of the LLM loop

Key definitions

Bounded decision A judgment with a finite candidate set, enumerable criteria and a checkable outcome, such as form field filling, request routing or an access decision. It is the opposite of open-ended semantic reasoning.

Single forward pass One computation produces the answer, with no chain of thought and no multi-turn tool calls. Latency and cost are set by that single inference rather than by how many rounds the loop runs.

Cost per completed task The cost of one successfully finished task, including every intermediate round, retry and context expansion, rather than a token price. It is the test for whether a bounded decision belongs outside the loop.

Agent cost work is usually framed as model compression. It is really two different jobs. On 18 September 2026, Cua open-sourced CUA-S1-FORMS: a 706,048-parameter, 2.8MB form decision model that fills an entire form inside a single forward pass of roughly 50 milliseconds. Handing the same form to a general LLM agent takes 23 rounds and 39.6 seconds. Our judgment: the second path to cheaper agents is not making the big model smaller, it is keeping bounded decisions out of the loop entirely. That path changes no model. It changes which decisions you put inside the loop.

1. The facts: a 706K model replaces 23 rounds of reasoning

Cua, founded by Francesco Bonacci, released CUA-S1-FORMS on 18 September as the first checkpoint of its System One model family: 706,048 parameters, a 2.8MB byte-level transformer, MIT licensed, with the model card published as cua-ai/cua-s1-forms on Hugging Face. Given a single GUI form field and a candidate value set, it decides fill, check, click or skip inside one forward pass, with no chain of thought, no multi-turn tool calls and no LLM API call. Sources: trycua/cua repository and the model card.

The comparison is the point. On the same form, a general LLM agent needs 23 rounds and 39.6 seconds, while the task-specific decision model needs one forward pass of about 50 milliseconds. The model card also reports 99.7 percent decision accuracy against a general LLM API baseline of about 83.6 percent. Source: AI Weekly coverage of the release.

Citation discipline: both accuracy figures come from the model card, so they are vendor-reported, and they cover one narrow task rather than general capability. What holds up is the mechanism and the order of magnitude. Bounded decisions can be handled by very small models, and can is a claim you verify on your own evaluation set.

2. Our judgment: two paths to lower cost, and the second one is ignored

Path A compresses the general model: quantization, distillation, caching, all aimed at a lower price per token. The ceiling on that path is set by the vendor pricing and release cadence. Enterprise buyers choose within it, they do not design it.

Path B moves bounded decisions out of the loop. It changes the architecture rather than the model: which judgments genuinely need general reasoning, and which ones one forward pass can settle. The return on that path is not set by vendor pricing. It is set by how well you decompose your own tasks.

Our judgment: path B gets ignored because it does not look like an AI project. It looks like process mapping. But its leverage is higher. Moving one judgment out of the loop removes rounds, context length and retries at the same time, and none of those three are visible on a per-token price sheet.

3. The test: which decisions to pull out

Three questions have to answer yes at the same time before a decision is a candidate:

1. Is the candidate set finite?

Form fields have dozens of candidate values, routing targets have a dozen categories. A finite set can be settled by a discriminative model; open-ended generation cannot.

2. Are the criteria enumerable?

If correctness can be written down as rules, a checklist or a handful of examples, the decision needs no world knowledge. If it needs cross-document inference, it stays in the loop.

3. Are errors checkable or reversible?

Decisions that downstream systems or a human can catch and correct quickly can carry small-model risk. If a wrong answer is invisible and irreversible, do not save that step.

The negative case is just as clear. Long-tail exception handling, judgments that require cross-system semantic understanding, and open-ended generation with unverifiable output belong in the general loop. Pulling decisions out does not make an agent smaller. It reserves the loop for the parts that actually need it.

4. Rerunning the economics: cost per completed task

One form-filling task inside a general agent is 23 rounds of inference: every round carries context, every round can retry, and every retry is billed again. Replaced by a single forward pass, marginal token cost goes to zero and latency drops three orders of magnitude. That is not a 10 percent optimization, it is a change in the cost structure.

The replacement is not free. You take on a small model, its evaluation set and its versioning, plus the risk that the bounded task definition drifts: interface changes, new candidate values and revised business rules all invalidate it and force retraining or revalidation. So the test is not whether it can be done, but whether the decision repeats often enough and is defined stably enough to be worth owning.

Our judgment: unit economics should be measured as cost per completed task, not as token price. Token price only lets you see the spread between model tiers. Cost per completed task lets you see structural space of a different kind, the space where a decision should not have entered the loop at all.

5. Deployment checklist and this month move

1. List the five most repeated bounded decisions

Count them in production logs, not in design documents. The most repeated decisions are usually the least visible ones.

2. Measure rounds and token cost per decision

Rounds times average tokens per round gives you that decision share of loop cost.

3. Run one replacement proof of concept

Pick the smallest candidate set with the easiest verification, and get comparison numbers within two weeks.

4. Build an independent evaluation set for that decision

Without one you cannot tell whether the replacement regressed, which makes it a precondition rather than a nice-to-have.

5. Put never-enter-the-loop into architecture review

For every new agent capability, ask why this judgment needs general reasoning. If there is no answer, it does not enter the loop.

The smallest useful move this month: pull a week of agent production logs, plot the distribution of loop rounds, find the decision with the most rounds and test it against the three conditions above. Then answer one question: how many rounds in your agent loop are spent answering a question whose candidate set has ten options?

OOMeta AI

OOMeta makes agent architecture decisions on cost per completed task: which judgments go into the general loop, which run on a task-specific model, and which are deterministic rules. The loop is a scarce resource, and we allocate it by decision type instead of defaulting everything into it.

Book a diagnostic session

References: Cua open-source repository github.com/trycua/cua (HTTP 200) | Model card huggingface.co/cua-ai/cua-s1-forms (HTTP 200; source of the 706,048 parameters, 2.8MB size, MIT license, roughly 50ms forward pass, the 23-round and 39.6-second comparison, and the 99.7 versus 83.6 percent accuracy figures, all vendor-reported) | AI Weekly coverage aiweekly.co alert (HTTP 200).

Frequently asked questions

What is CUA-S1-FORMS?+

It is a 706,048-parameter, 2.8MB byte-level transformer released under MIT license. Given a single GUI form field and a candidate value set, it decides fill, check, click or skip inside one forward pass, with no LLM API call and no chain of thought.

What does the 23 rounds and 39.6 seconds comparison show?+

On the same form, a general LLM agent needs 23 rounds and 39.6 seconds, while the task-specific decision model needs one forward pass of about 50 milliseconds. The gap is not model size but decision type: finite, enumerable judgments never needed to enter a general reasoning loop.

Is the 99.7 percent accuracy figure trustworthy?+

That number comes from the model card, so it is vendor-reported, and it covers a single task, form filling, not general capability. What is worth taking is the mechanism: bounded decisions can be handled by very small models, and any claim about them has to be verified on your own evaluation set.

Which decisions should be pulled out of the loop?+

Three conditions must hold at once: the candidate set is finite, the criteria are enumerable, and errors are checkable or reversible. If all three hold, the decision is a candidate. Open semantics, world knowledge and long-tail exceptions should stay inside the loop.

What does pulling a decision out of the loop cost?+

You take on a small model plus its evaluation data and versioning. That maintenance cost only beats the inference cost saved when the decision repeats often enough and its definition is stable enough to survive interface and business rule changes.

Which metric should govern agent cost?+

Cost per completed task, not token price. Pulling bounded decisions out of the loop cuts rounds, context length and retries at the same time, and none of those three appear in a per-token price sheet.