Build1 publisher3 min readPublished
Cua trains a 2.8 MB scorer to replace the per-field reasoning step in form agents
Cua published a 706,048-parameter model, its training data and its driver integration under MIT, so the claim that a small specialist can take over the per-field decision step is testable by anyone with forms.
The Engineer · Build desk

What happened
- Cua founder Francesco Bonacci released CUA-S1-FORMS on September 18th, a model that plans how an agent should fill out a form, taking the place of repeated large language model calls.
- The model generates no text: it scores the permitted options for a form element in one forward pass and returns a probability for each, covering fill, check, click and skip.
- It uses byte-level embeddings and a two-layer Transformer encoder of width 128 with four attention heads, trained for six epochs on 10,000 synthetic episodes of forms with two to 16 fields.
- Cua reports 99.95% top-1 accuracy on its form-disjoint synthetic test and 100% on a 196-decision evaluation built from three forms and three PDFs, and says that real evaluation is too small to generalize.
- The release came four days after TypeSafe AI introduced Jev, a managed model that also returns typed decisions with probabilities, and Cua calls its own model "jev-like".
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- constraint Only the per-element decision leaves the language model; document understanding stays upstream, so the saving an adopter gets is the cost of the repeated per-field call and no more.
- decision Before the reported accuracy means anything in-house, a team has to check its field names against the 55 concepts the generator sampled and its labels against an English vocabulary.
- contradiction Cua's own note about no-op training undercuts its comparison with Jev, so the 16.1-point margin partly measures what each model was trained to expect on partly filled forms.
- capability At 2.8 MB under MIT, the scorer can run in the same process as the driver, doing its inference there instead of at a hosted endpoint.
706,048 parameters at four bytes each comes to 2,824,192 bytes, about 2.8 MB [1]. The published checkpoint is 2.8 MB [3], so the file holds float32 weights and very little else.
The model returns probabilities, not actions [8]. Cua Driver selects from them and orders the work: fields first, then checkboxes, and a submit button only when authorized [9]; that authorization check is a line of driver code.
The saving is confined to the step the model takes over. CUA-S1-FORMS can select only values an upstream extractor has already supplied as labeled entities, and it cannot infer or compose a value that is missing [18]. Whatever reads the referral letter still runs. What leaves the loop is the inspect-reason-act cycle a general agent repeats for every element [10]. Cua's release measures accuracy; per-decision latency and cost go unreported, for the model as for the extractor [5].
For the real-form result to mean anything on someone else's forms, a few things have to hold. The 196 decisions came from three forms and three PDFs, roughly 65 decisions per form [15][3], and a single wrong call would have put the score at 99.5% [3]. The training generator drew from 55 field concepts [13], the label vocabulary is English-centered [17], and the model card says the model has not been validated beyond the demonstration set [17]. Testing covers those 55 concepts, and extractors that spell their entity labels the way the generator does.
The generator deliberately plants confusing pairs, such as a primary phone number next to an emergency contact number [13].
Cua describes the model as "jev-like" [19] and reports 99.7% against 83.6% for TypeSafe AI's hosted jev-latest API on Cua's own task [21], a gap of 16.1 points [4]. Cua also states that it trained its model to recognize already-completed fields as no-ops and that the Jev service it tested was not trained for that behavior [21]. On a blank form the distinction does not arise. TypeSafe pitches Jev as a general decision model for classification, routing and other software workflows, while Cua trained one specialist and released the weights, the data generator, the evaluation code and the driver integration [20].
The people doing this have measured agents before. Bonacci and Cua researcher Dillon DuPont were among the authors of Microsoft's Windows Agent Arena, a benchmark for evaluating agents inside a real Windows environment [5]. Bonacci founded Cua in 2025 after leaving Microsoft, starting with Lume for running macOS virtual machines on Apple Silicon, and the company joined Y Combinator's Spring 2025 batch [6].
The published dataset is 234,067 rows [14]. The named splits, roughly 150,000 training, 18,000 validation and 20,000 test examples, come to about 188,000, some 46,000 rows short of the total [14][2].
Because the weights, generator and evaluation code are MIT [4], the 196-decision harness can be re-pointed at in-house forms in an afternoon.
What to watch
- Whether Cua publishes per-decision latency and cost against the LLM path it replaces, including the extractor's share of both.
- Whether anyone runs the MIT evaluation harness on forms outside the 55 field concepts or in a non-English label vocabulary.
- Whether TypeSafe trains jev-latest on the pre-filled-field no-op convention and reruns Cua's task.