Red Banana Lab · Field notes No. 2

Through the Night: a 14-Hour Autonomy Stress Test of a Local 120B Model

Red Banana Lab, New Delhi · 21 August 2026 · one unattended overnight run, every task machine-scored, no human in the loop until dawn

Field notes No. 1 measured how fast large models run on one Strix Halo laptop. This note asks the harder question: what happens when you leave one alone all night with real work? At 18:26 we started an unattended harness against gpt-oss-120b (MXFP4, llama.cpp Vulkan backend, resident on the same ASUS ProArt PX13 from No. 1) and went to dinner. It stopped at 08:28 the next morning, 1,245 cycles later, having answered 5,095 requests with zero transport errors, read 17.5 million tokens, generated 0.77 million, and then written a first draft of this very report. What held, what drifted, and what broke are all in the numbers below.

The harness: tasks that mark themselves

Overnight testing has a supervision problem: nobody is awake to judge answers. So every task in the battery is self-verifying, meaning the harness knows the correct answer before it asks and scores the reply mechanically:

TaskWhat the model must doHow it is scored
ArithmeticSum 8 to 15 random 5-to-6-digit integersExact match against the true sum
CodeWrite a Python function to a small specThe harness executes the code against held-out test cases
ExtractionPull four fields from a synthetic invoice into JSONField-by-field comparison with the planted values
NeedleFind a planted code in 500 to 32,000 words of fillerExact string match

Prompts are seeded, so the run is reproducible; answers are random per cycle, so nothing can be memorised. Every request logs wall time, token counts, throughput, and the hottest thermal zone on the machine.

Headline numbers

MetricValue
Duration / cycles / requests14.1 h · 1,245 · 5,095
Transport errors0
Arithmetic, code, extraction accuracy1,254/1,254 each (3,762/3,762)
Needle recall, all depths1,244/1,253 (99.3%)
Tokens read / generated17.48 M / 0.77 M
Generation rate: mean · sd · p5 · p50 · p95 tok/s28.6 · 14.2 · 1.2 · 34.6 · 46.8
Thermals: mean · peak70.6 °C · 75.0 °C
Empty responses (all recovered by retry)67 (1.3%)

Finding 1: deterministic accuracy did not degrade. At all.

The fear with overnight autonomy is drift: heat soak, memory pressure, some slow rot that turns hour 11 sloppier than hour 1. It did not happen. Arithmetic, code generation and structured extraction were perfect in cycle 1 and perfect in cycle 1,245, a combined 3,762 machine-scored tasks without a single failure, including code that had to survive actual execution against held-out cases. Whatever else limits local autonomy, sustained load on this hardware is not it.

Finding 2: the only accuracy losses were length, not fatigue

Haystack size (words)5001k2k4k8k16k24k32k
Needle misses0/1820/1390/1690/1502/1452/1643/1632/141

All nine misses in 1,253 recall tasks sit at 8,000 words and above (roughly 7k to 27k tokens of prompt), spread evenly across the night. Below that: flawless. This is a clean, honest picture of where long-context retrieval starts costing you on a quantised local model, and it is a length effect, not a time-of-night effect.

Finding 3: the empty-answer trap from No. 1 is a base rate, and it is survivable

1.3%, evenly spread, self-healing Field notes No. 1 caught gpt-oss-120b returning an empty content string when its private reasoning channel ate the completion budget. Overnight we measured the phenomenon properly: 67 empty responses in 5,095 calls, distributed across every hour from evening to dawn with no correlation to thermals or uptime. It is not a degradation mode; it is a base rate. Our mitigation, detect empty content and retry with a doubled token budget, recovered all 67. If you run harmony-format models unattended, that one guard clause is the difference between a perfect night and 67 silent no-ops.

Finding 4: mean throughput is a fiction; read the percentiles

The mean of 28.6 tok/s describes almost no actual request. The median request generated at 34.6 tok/s; the 5th percentile crawled at 1.2 tok/s. The slow tail is entirely the long-context needle tasks, where the model spends its wall-clock reading a 27k-token prompt before writing fifty tokens. The lesson repeats from No. 1 but with overnight statistics behind it: for read-heavy workloads, prompt ingestion is your real budget, and a single mean throughput number will mislead your capacity planning. The machine itself never strained: 70.6 °C average, 75 °C peak, fans audible but a closed door away from a sleeping household.

Finding 5: at dawn, the model wrote the report and invented its own hardware

The fabrication was caught by the model itself The final task asked the model to draft this paper from its measured statistics, which we injected into the prompt. Every injected number survived into the draft intact. The hardware description did not: the draft confidently reported the rig as a "Ryzen 7 7700X CPU, 32 GB of DDR4 RAM, and an NVIDIA RTX 3060 GPU", none of which exists in this building, and later described itself as a 7B checkpoint. Then came the twist: the harness's last step asked the same model to critique its own draft, and the critique opened with exactly this defect: "Align hardware description with results… choose one platform and keep the specification consistent."

Three lessons, plainly. Pinned facts hold: data you inject into the prompt survives verbatim. Unpinned facts drift: anything the model must recall about itself gets confabulated from training priors. And self-critique is cheap, effective review: a second pass by the same model caught the fabrication a human might skim past at 6 a.m. Our production conclusion is the division of labour this note itself demonstrates: the local model does the night's labour and the first draft; a human, armed with the telemetry, writes what you are reading.

What this means for a small studio

The night processed 18.25 million tokens. At typical frontier-API list prices that volume of traffic runs to roughly US$60 or more; the laptop did it for about 1.4 kWh of electricity, some twelve rupees. The catalogue of work a local 120B can now own outright, unattended: bulk extraction into structured records, code generation with mechanical verification, arithmetic-grade bookkeeping checks, and retrieval over documents up to about 7k tokens with, on this evidence, effectively zero error. Reserve human or frontier-model attention for long-context retrieval, for anything where a 1.3% silent-failure base rate is unacceptable without a retry guard, and for final authorship of anything whose facts were not pinned in the prompt.

Limitations

One night, one model, one machine, one quantisation. The battery is deterministic and synthetic by design; it measures reliability under load, not judgment, taste, or open-ended reasoning. Throughput figures are single-request, sequential, at the context sizes stated; batch serving and longer contexts will differ. Energy cost is estimated from the platform's sustained package power, not a wall meter. We will fix the wall meter before No. 3.