Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Shipping Software When Half Your Stack Is Proba...

Shipping Software When Half Your Stack Is Probabilistic

For as long as we've written software, we leaned on one quiet assumption, that if the version number didn't change, the behavior didn't change.

SemVer, our test suites, our lockfiles, the whole apparatus of trust we built our careers on rests on that promise.

Now...put a model in the stack and the promise breaks. The same pinned version returns different answers. A one-line prompt change that any code review would wave through quietly tanks your quality scores. Every instrument you trust says the change is safe to ship, right up until a user tells you it isn't.

This talk is about what actually happens when part of your stack stops being deterministic, told through real systems I've shipped and the specific ways they broke. I'll share my examples with generativeUI Agentic UI, and recent Spatial computing apps built with AI coding agents and an enhanced pipeline.

We'll get into why the green build stopped being proof, and what takes its place: the discipline the rest of the industry has quietly converged on, where you stop certifying what your system is and start certifying what it does. A behavioral spec, evals that gate your changes, and observation that catches drift before your users do. The good news is you already own the muscles for this. It's your test suite, your SLOs, and your code review, rebuilt for behavior instead of code.

What audience will walk away with:
- Why our version pins, unit tests, and lockfiles go quiet on probabilistic regressions, and where the blind spots hide
- The four-part behavioral contract that replaces the version number: a spec, an eval gate at change-time, behavioral observation at runtime, and a human checkpoint on the moves you can't undo
- Honest failure stories from production agents, including what I got wrong and the guardrail that caught it

Avatar for Noble Ackerson

Noble Ackerson

September 17, 2026

More Decks by Noble Ackerson

Other Decks in Programming

Transcript

  1. Shipping Software When Half Your Stack Is Probabilistic Noble Ackerson

    Distinguished Engineer @ Leidos · Google Developer Expert, AI/ML DC State of the Stack · September 2026
  2. For 70 years, release engineering rested on one promise. Control

    the artefact and its inputs, and the behavior reproduces. SemVer (^2.4.0) Semantic API and Software stability contracts. Lockfiles (sha256: 8f4a...) Unit Tests (assert result == expected) Deterministic dependency resolution. Binary deterministic assertions. Semantic Versioning 2.0.0, Tom Preston-Werner
  3. RETROSPECTIVE // IGNITE 2023 Gave my first Ignite at DevOPS

    Days 2023 and said this would be harder than anyone wanted to admit. 01 // THE DANGER 02 // THE SOLUTION I was right about the danger. Wrong about the solution. Foreseeing the collapse of traditional stability guarantees and non-deterministic behavior in production LLMs. Assuming rigid, deterministic structural constraints alone could solve probabilistic system drift. DevOpsDays Ignite 2023 · Retrospective Analysis
  4. I shipped a gate. Pure. Deterministic. Unit-tested. Copa Chalkboard. Two

    agents, a validation gate between them. Open source, Apache-2.0. → terminal PROJECT REPOSITORY github.com/stigsfoot/ai-copa-chalkboard
  5. Five runs. Five notes narrating a movie. Five perfect scores

    from the gate. 05 RUNS // VERIFICATION GATE “The attacker in white (number 11) drives forward through the midfield under close pressure from the defender in blue (number 17.ˮ VALIDATION RESULT Gate score: 100 / 100 ✓ 5 of 5 runs passed deterministic threshold Photo: Wikimedia Commons, CC (credit per the file page). Notes verbatim from docs/codelab-verification-findings.md, 7 June 2026.
  6. The green check didnʼt lie. It kept the promise I

    wrote. I wrote the wrong promise.
  7. Setting the model temperature to zero does not buy you

    a deterministic system Thinking Machines Lab, “Defeating Nondeterminism in LLM Inference,ˮ 10 September 2025 https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/
  8. Your pinned model produces different outputs depending entirely on how

    many other users are in flight Thinking Machines Lab, “Defeating Nondeterminism in LLM Inference,ˮ 10 September 2025 https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/
  9. Air Canada argued it could not be responsible for what

    its chatbot said. The tribunal disagreed. “Air Canada did not take reasonable care to ensure its chatbot was accurate.ˮ Moffatt v. Air Canada, 2024 BCCRT 149, decided 14 February 2024
  10. The contract did not disappear. It moved from the code

    to the behaviour. The old covenant The new contract Artefact identity → Behavioural baseline Regression tests → Evals Availability SLO → Behavioural SLO Deployment authority → Runtime action authority DECLARE GATE WATCH Sculley et al., “Hidden Technical Debt in Machine Learning Systems,ˮ 2015 https://proceedings.neurips.cc/paper_files/paper/2015/file/86df7dcfd896fcaf2674f757a2463eba-Paper.pdf BOUND
  11. Declare it. The spec is an interface for humans, not

    an implementation for the machine. Write down what it should do. Version it. Point at it when it surprises you. OpenAI Model Spec: “The Spec is an interface, not an implementation.ˮ
  12. Gate it. Evals do for behaviour what unit tests did

    for code: they make expectations executable. You just watched one run. Build them from real failures. Block the merge. Dijkstra, 1969 testing shows the presence of bugs, never their absence.
  13. Watch it. Put an SLO on behaviour, not just uptime.

    Sample production. Alert on drift. Spend an error budget on quality. OpenTelemetry GenAI semantic conventions · Google SRE, error budgets
  14. Bound it. Constrain authority by consequence and reversibility. auto-execute ·

    notify · checkpoint · deny A human in the loop is one setting. The dial is the point.
  15. So, When you get back to work... DECLARE intended behaviour,

    in writing, versioned. GATE important changes against real failures. WATCH production behaviour, with an SLO. BOUND the actions you cannot take back. The seven-step checklist and the whole demo are in the repo, on the last slide.
  16. You cannot install trust. You can only build the evidence

    that earns appropriate reliance. Lee & See, 2004 · Google PAIR, People + AI Guidebook
  17. You did not lose control of a tool. You were

    handed a harder, more honest craft.
  18. Thank you. github.com/stigsfoot/probabilistic-covenant Clone it. Watch the gate lie to

    you. youtube.com/nobleackerson 1. Write a behavioural spec. 2. Build 20 to 50 evals from real failures; gate merges on them. 3. Treat prompt and model changes like deploys. 4. Trace on OpenTelemetry GenAI conventions. 5. Set behavioural SLOs and a quality error budget. 6. Bound the low-reversibility actions. 7. Calibrate any LLM-as-judge against human labels. Built on: Copa Chalkboard Apache-2.0, pytest, DeepEval, Gemma & Ollama, uv, Semantic Versioning, Google SRE, Thoughtworks, OpenTelemetry, Sculley et al. 2015, Dijkstra, Lee & See, Culkin.