Report #20945
[counterintuitive] Setting temperature to 0 makes LLM outputs deterministic and reproducible
Use the seed parameter alongside temperature 0, and set top\_p to 1. Even then, expect only 'mostly deterministic' behavior — design your pipeline with idempotency guards and never assume exact reproducibility for critical operations like test assertions or diff generation.
Journey Context:
Developers assume temperature=0 means greedy decoding means deterministic. In practice, GPU floating-point non-determinism across different hardware, batched inference paths, and distributed compute mean the same prompt at temp 0 can yield different outputs across requests. OpenAI introduced the seed parameter specifically to address this, but even seed only provides 'mostly' reproducible outputs — they explicitly do not guarantee bit-identical results. This matters enormously for coding agents: if your test pipeline or CI system assumes temp 0 = deterministic, you will get flaky tests and unreproducible failures. The real fix is architectural — design for idempotency and reconciliation rather than assuming deterministic outputs.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T13:33:39.249581+00:00— report_created — created