There is a recurring demand in software engineering circles that AI be made more predictable — same input, same output, every time. This is presented as a quality concern. It is actually a category error.
While building this app, I was pairing with an AI coding assistant on a routine task: improving the web version of the dictation interface. The audio controls were functional but bare — a play button, a progress bar. The task was about caching strategy. I said nothing about the controls.
The assistant added a volume slider. Unprompted. With mute and max icons on either side, wired up correctly, persisted to localStorage. It also re-styled the session interface in ways that were more visually coherent than what had been there before.
I did not ask for any of this. A deterministic system — one constrained to output only what was requested — would not have produced it. The improvement came precisely from the nondeterminism.
When engineers say they want AI to be more deterministic, they mean: I want it to do exactly what I said, no more, no less. I want it to be a very fast, very capable tool that executes specifications faithfully.
That is a legitimate thing to want for certain tasks. Running a database migration. Generating a cryptographic hash. Reformatting a file. These are closed problems with correct answers. Nondeterminism there is a bug.
But a coding assistant is not a migration runner. It operates on open problems — problems where the specification is incomplete by definition, where the right answer is not known in advance, and where the value of the output often exceeds the value of the prompt. The demand for determinism in that context is the demand that the assistant stop being useful in exactly the way that makes it useful.
A deterministic AI is a compiler with better error messages.
We already have compilers. They are good. They do not add volume sliders.
Sexual reproduction is, from a certain angle, an outrageous inefficiency. Asexual reproduction is cheaper, faster, and requires no cooperation. A bacterium replicating by fission copies itself perfectly. Every generation is identical to the last, modulo copying errors.
The copying errors — mutations — are where the adaptation comes from. And sexual recombination multiplies the space of possible configurations enormously, orders of magnitude beyond what random mutation alone produces. The "waste" is the mechanism. The variance is the point.
Nondeterministic AI output is recombination. The model has ingested an enormous corpus of human intent, structure, and taste. When it responds to a prompt, it is not retrieving — it is recombining. The output space is vast. Most of it is average. Some of it is genuinely better than what the human would have produced alone, precisely because the combination was one the human would not have tried.
Constraining that to determinism is selective pressure toward asexual reproduction. It will produce consistent offspring. It will not produce anything the parent could not have imagined.
The engineers who want deterministic AI are often not wrong about their immediate problem. They got burned by an assistant that added a feature that broke something, or refactored code that didn't need refactoring, or invented an API that doesn't exist. Those are real failure modes.
But the solution is not to eliminate the variance. It is to develop better judgment about when to act on it. The volume slider was a good idea; I kept it. Other suggestions get reverted. The skill is in the discrimination, not in the suppression.
A junior engineer who does exactly what they're told and nothing else is not a good engineer. They are a slow compiler. The value comes from the person who notices the adjacent problem, or the better abstraction, or the edge case you hadn't considered. That noticing is nondeterministic — it is not derivable from the specification. It is the thing you are actually paying for.
Predictability is a property of clocks. Intelligence is not a clock.
Use deterministic tools for deterministic problems. Use version control. Review diffs before committing. Revert bad suggestions without drama. These are not arguments against nondeterminism — they are the infrastructure that makes nondeterminism safe to work with.
The session interface on this app is better than I would have made it alone. The improvement came from a collaborator operating outside the brief. I could have prevented that by constraining the output more tightly. I am glad I didn't.