Can a coding agent deliver sooner without switching to a faster model? We tested that in Sunny Code by comparing Fast and Standard execution policies, with the model and reasoning setting held fixed. Across nine small tasks, Fast reached lo...
Can a coding agent deliver sooner without switching to a faster model? We tested that in Sunny Code by comparing Fast and Standard execution policies, with the model and reasoning setting held fixed.
Across nine small tasks, Fast reached local delivery sooner in all 36 paired observations. Across the six cohort-by-model aggregates, mean completion time fell 50.4%–80.1%, and mean new-token usage fell 10.2%–38.7%.
The important boundary: this measures time until the agent ends the task. Independent acceptance ran afterward and is not included in that duration. Faster delivery did not mean every delivery passed.
Normal-verification cohort only; each bar averages six runs, including failed deliveries. Time ends when the agent finishes the task and excludes subsequent independent acceptance.
Setup: 9 tasks, 2 models, 72 runs
We used GPT-6.1 Sol and DS4.1 Flash, both with low thinking. Each task ran twice with each model in each mode: 9 × 2 × 2 × 2 = 72 runs.
Pairs held the task, code snapshot, dependencies, model, and reasoning setting fixed. Runs were serial, with alternating mode order. We compared the product modes as complete configurations; provider caching and service load were not fully controlled.
The tasks covered seven repositories:
Cohort
Repositories and tasks
Normal verification
Sunny Code: local preview URL boundaries; text prompt learning and media input. Click: normalized Choice shell completion.
Cheap verification
boltons: Unicode line splitting/indentation and relative JSONL seeking. python-slugify: bypass the transliteration backend for ASCII input.
No existing unit tests
fogleman/primitive: bound ellipse vertical radius by height. fogleman/ln: zero-direction ray–box intersection. fogleman/sdf: tetrahedron scaling.
The cheap-verification repositories had median native-suite baselines of about 0.7–2.7 seconds. This helped test whether the result persisted when repository tests were already inexpensive.
Completion time
Each cell below is the mean of six runs, including failed deliveries.
Cohort
Model
Standard
Fast
Normal verification
GPT-6.1 Sol
106.4 s
31.3 s
Normal verification
DS4.1 Flash
94.5 s
18.8 s
Cheap verification
GPT-6.1 Sol
54.3 s
24.9 s
Cheap verification
DS4.1 Flash
29.6 s
14.7 s
No existing unit tests
GPT-6.1 Sol
47.6 s
23.3 s
No existing unit tests
DS4.1 Flash
34.9 s
9.6 s
Fast aims to keep the agent focused on the task, limit extra work, and deliver promptly after making and inspecting the changes. The modes did not perform identical verification, so these numbers should not be interpreted as the same work simply executing faster.
New tokens also decreased
Here, new tokens = provider-reported input + output, excluding cacheRead and cacheWrite. This is neither total processed tokens nor an actual bill.
Cohort
Model
Standard
Fast
Normal verification
GPT-6.1 Sol
23,518
14,411
Normal verification
DS4.1 Flash
23,626
16,034
Cheap verification
GPT-6.1 Sol
25,213
16,650
Cheap verification
DS4.1 Flash
19,964
15,573
No existing unit tests
GPT-6.1 Sol
15,281
13,726
No existing unit tests
DS4.1 Flash
15,004
9,224
Token reduction and time reduction were different in size. For example, Sol in the no-tests cohort used 10.2% fewer new tokens while finishing 51.1% sooner. Our preceding experiment included cached input in its token totals, so its percentages are not directly comparable.
What passed—and what failed
After timing ended, we ran independent behavioral checks on separate copies of the delivered code, alongside available repository regression checks. Failed runs stayed in the results; we did not repair source and then count it as passing.
Cohort
Strict acceptance: Standard / Fast
What happened
Normal verification
8/12 / 8/12
All eight Click deliveries missed supplementary empty-prefix requirements.
Cheap verification
8/12 / 8/12
Behavior passed 24/24. Eight slugify deliveries failed a legacy assertion that conflicted with the new requirement.
No existing unit tests
12/12 / 12/12
External behavior and total acceptance passed 24/24.
In the slugify task, ASCII input was supposed to bypass the transliteration backend, but the old test still expected backend initialization. Updated upstream tests passed in supplementary diagnosis; that does not replace the original failures.
Equal pass counts do not establish quality equivalence. Tests retained in Standard deliveries may also have future maintenance value that this timing metric does not capture.
What I take from this
An agent's delivery policy is worth measuring alongside model choice. For these tasks, Fast shortened local-delivery time even when native verification was cheap or absent. This experiment does not isolate the contribution of any particular implementation change.
This is a deliberately selected sample of nine tasks with two repetitions per configuration—not 36 independent tasks. If your definition of delivery requires independent acceptance to pass, include that time and any rework in the comparison.
I'm building Sunny Code to explore more efficient AI coding, better interactions, and the future of programming. These experiments are one way of making that exploration measurable.
Full experiment: charts, task requirements, acceptance coverage, and all 72 run records.
Where do you draw the delivery boundary for a coding agent: when it finishes editing, when local checks pass, or after independent acceptance?
