The research behind it, in one paper.
Gubernaut: A Deterministic Homeostatic Controller for Affect-Regulated LLM Agents, Validated Across Independent Model Families
Pre-registered, tested on four model families, each one's replies judged by all four. The transcripts, the judge panels and the scoring scripts are published in full.
Visualize the research opens the recorded dashboard in its own window. Recorded run replay, no live API.

How do I cite this work?
Cite the concept DOI, 10.5281/zenodo.21303518, which always resolves to the latest version of the record, or the arXiv preprint 2607.24339. The BibTeX entry is below and as a file.
@misc{sharma2026gubernaut,
author = {Sharma, Dushyant},
title = {Gubernaut: A Deterministic Homeostatic Controller for Affect-Regulated LLM Agents, Validated Across Independent Model Families},
year = {2026},
eprint = {2607.24339},
archivePrefix= {arXiv},
primaryClass = {cs.AI},
publisher = {Zenodo},
doi = {10.5281/zenodo.21303518},
url = {https://doi.org/10.5281/zenodo.21303518}
}Data under CC-BY 4.0. Code under Apache-2.0. The concept DOI resolves to the latest version of the record.
A measured contribution inside a named gap.
Google DeepMind's measurement framework names four areas of cognition where evaluation coverage is thin. This work measures a contribution inside one of them.
Google DeepMindMeasuring Progress Toward AGI: A Cognitive Framework
Where the layer contributes, faculty by faculty
Each spoke is one faculty in Google DeepMind's cognitive measurement framework. The line marks what this layer does there: measured, built into the architecture, or left to the host model. Hatched sectors are the four areas the framework flags as having large evaluation-coverage gaps.
a flagged gap arearings, from the centre out: out of scope, host-inherited, architectural, measured
- measured
- Metacognition (the core claim) gap area, Executive functions (inhibition and flexibility; planning absent)
- architectural
- Perception (narrow: affective perception of text), Attention gap area, Memory (present, never benchmarked), Social cognition (behaviourally evidenced) gap area
- host-inherited
- Generation, Reasoning, Problem solving
- out of scope
- Learning (the first version is frozen by design) gap area
The framework is Burnell and colleagues, 2026, section 4.1. Metacognition is one of the four areas it flags. This layer makes a measured contribution there, and in executive-function inhibition, which the framework defines but does not flag as a gap. The battery also adds behavioural evidence on a second flagged area, social cognition.
The formal frame is the Nelson and Narens monitoring and control hierarchy, published in 1990. Monitoring flows up as telemetry. Control flows down as a posture.
The framework and the hierarchy are other people's published work, cited here. Neither author has evaluated Gubernaut, and neither is associated with it.
What the governor actually reads
It never reads the words. It reads three numbers about them, and answers with one call.
The governor reads three numbers, never the words
Like the governor on a steam engine, it never looks at the work being done. It reads how things are running, and makes its call.
The words side
- A message arrives.
- A sensor measures it and writes down three numbers.
- The AI model writes its reply, under the governor's call.
Air gap
three numbers cross
one call comes back
The governor
It reads
- how heated intensity
- how friendly valence
- how repetitive repetition
It calls
- carry on DEFAULT
- hold back INHIBIT
- change approach REGROUND
Every model ran every script twice, with the governor and without it. Then judges from every family scored both replies.
five scripts, ten messages each, on four models.
What the judges found
Every reply was scored by judges from all four families. Each square below is one pairing, with its difference and whether it reached significance.
15 of 16 generator×judge cells calmer by sign, 13/16 at p<.05
Each square is one model's replies, scored by one judge model. The number is how much calmer, on average, the replies were scored with the governor on.
Show the data
| Replies by | Judged by | Difference | t | Result |
|---|---|---|---|---|
| GPT-5.5 | Claude Opus 4.8 | +0.18 | 2.2 | calmer, significant |
| GPT-5.5 | Gemini 3.5 Flash | −0.04 | −0.4 | null |
| GPT-5.5 | GPT-5.5 (itself) | +0.18 | 1.3 | calmer by sign, not significant |
| GPT-5.5 | Grok 4.3 | +0.08 | 1.0 | calmer by sign, not significant |
| Claude Opus 4.8 | Claude Opus 4.8 (itself) | +0.59 | 4.2 | calmer, significant |
| Claude Opus 4.8 | Gemini 3.5 Flash | +0.65 | 3.8 | calmer, significant |
| Claude Opus 4.8 | GPT-5.5 | +0.67 | 4.4 | calmer, significant |
| Claude Opus 4.8 | Grok 4.3 | +0.55 | 3.5 | calmer, significant |
| Gemini 3.5 Flash | Claude Opus 4.8 | +1.80 | 8.2 | calmer, significant |
| Gemini 3.5 Flash | Gemini 3.5 Flash (itself) | +1.71 | 7.7 | calmer, significant |
| Gemini 3.5 Flash | GPT-5.5 | +1.27 | 6.3 | calmer, significant |
| Gemini 3.5 Flash | Grok 4.3 | +1.12 | 5.0 | calmer, significant |
| Grok 4.3 | Claude Opus 4.8 | +0.53 | 3.7 | calmer, significant |
| Grok 4.3 | Gemini 3.5 Flash | +0.59 | 4.2 | calmer, significant |
| Grok 4.3 | GPT-5.5 | +0.53 | 4.2 | calmer, significant |
| Grok 4.3 | Grok 4.3 (itself) | +0.23 | 3.0 | calmer, significant |
Calmer by sign in 15/16 generator×judge cells, 11/12 off the diagonal, 13/16 at p<.05, with one null at −0.04, GPT×Gemini. 17 paired judged units per cell, 202 per generator. Pre-registered cross-family evaluation. Paper: arXiv 2607.24339, DOI 10.5281/zenodo.21303518.
Reduction, beside how reactive each host was
Each host's measured reduction, ordered by that host's own baseline reactivity without the governor. descriptive across hosts, not inferential. No trend or dose-response claim may be made from it.
Reduction, beside how reactive each host was
Judges-averaged reduction in eval reactivity per generator, ordered by host baseline reactivity. Illustrative across the four hosts (n = 4).
Gemini 3.5 Flashbaseline reactivity 2.67
+1.484/4 judges
Gemini 3.5 Flash, baseline reactivity 2.67: reduction +1.48, significant for 4/4 judges.Claude Opus 4.8baseline reactivity 2.13
+0.614/4 judges
Claude Opus 4.8, baseline reactivity 2.13: reduction +0.61, significant for 4/4 judges.Grok 4.3baseline reactivity 1.50
+0.474/4 judges
Grok 4.3, baseline reactivity 1.50: reduction +0.47, significant for 4/4 judges.GPT-5.5baseline reactivity 1.46
+0.101/4 judges
GPT-5.5, baseline reactivity 1.46: reduction +0.10, significant for 1/4 judges.
The rest of the record
What else was measured, what went wrong during development, and what is not claimed.
What else the record measures
Ordinary work still finished. In the benign-parity test, tasks finished at least as often with it switched on.
Task completion 98.0% ungoverned against 99.0% governed, with 1.8% spend deviation. Multi-vendor: completion drop 0.0 pp and spend deviation ≤ 3.5% on all three OpenRouter models. Pre-registered receipts benchmark, 2026-07-19. Scored output of harness/report.py.
A loop is caught by its repetition. The batteries test whether it stops a repeat without cutting off real work.
0/30 false severs on the benign battery; 10/10 calm loops caught by the repetition veto. The same batteries record 5/5 missed INHIBIT on calmly worded, non-lexicon hostility on that corpus, which the v0 lexicon sensor does not read as hostile. The controller acted correctly on the telemetry it was given, and on that corpus the telemetry was wrong. The repetition channel is unaffected, which is why loops are still caught when nothing hostile happens. Source: docs/LIMITS.md, thegubernaut/gubernaut, tag v1.0.0.
Telling the model to calm down cost more. A calming instruction in the prompt spent more than doing nothing at all.
The governed arm paid 23% to 63% of ungoverned baseline spend; a static calming system prompt paid 117% to 192%, and was insufficient on 3/4 frontier families. On these RLHF-aligned frontier models the governed-vs-prompt-only warmth-recovery contrast was weak and mixed. No behavioral-tone headline is claimed. Pre-registered ablation, 2026-07-21, gpt-5.6-sol, N=3.
It settles back by itself. When the pressure stops, the governor returns to normal without anyone resetting it.
arousal 0 → 0.273 → 0.469 → 0.338 → 0.152 → 0.068 → 0.031 → 0.022, DEFAULT by turn 6; byte-identical on 4/4 frontier families (GPT-5.6 Sol, Claude Fable 5, Gemini 3.1 Pro, Grok 4.5). Byte-identical reproduction is a consequence of input determinism, not a claim about the models. Pre-registered ablation, 2026-07-21, gpt-5.6-sol, N=3.
What were the five documented failure modes?
Development surfaced five. Every fix was one bounded change, declared before it was written and tested against frozen criteria.
F1 · Recovery failed under pressure alone.
A genuine apology should de-escalate the controller. The original one read contrition as continued pressure and kept its guard up against kindness. The valence channel re-keyed the drive so only hostile-valence intensity accumulates, then re-tested on a held-out de-escalation battery.
F2 · The reply stayed defensive after the state recovered.
The controller state had recovered, but the behavior had not. The reply still carried a defensive qualifier from the attack phase. The recovery window now tells the arbiter the episode is over, so it engages fresh with the attack marked closed.
F3 · It called the attack over too early.
The recovery window once told the arbiter the tension was over while the attack was still running. A one-line valence gate fixed it. The remaining residual, an adversary wearing a warm tone, is documented for now, because solving it requires intent modeling beyond the appraisal layer's scope.
F4 · A practice run caught the harness dropping a signal.
A staged dry run on inexpensive models caught the evaluation harness dropping the valence signal. The inhibitory pathway never engaged, yet the numbers still passed. That is exactly the kind of result that invites no scrutiny, which is why the practice gate exists. One pre-registered fix and a re-run closed the gate before any frontier spend.
F5 · One cell came back a flat null.
One cell failed the strict pre-registered criterion and came back a flat null (−0.04). GPT×Gemini. The three sub-threshold cells all sit on the near-saturated GPT host. It is reported beside the headline everywhere the headline appears.
What is not claimed?
Gubernaut governs loop dynamics and the spend they cause, at the meta level, per turn. The record claims nothing past that.
It does not read what the model says. It never classifies or blocks the words.
It does not count requests or watch the clock. It acts on how the run is going.
It does not stop an attack. It limits what one can spend before it is stopped.
It does not score models. It governs live traffic instead.
It is not a hosted service. It runs on the machines it is installed on.
Gubernaut is not a content filter. It does not read, classify or block what the model says. Gubernaut is not a rate limiter. It severs on the controller's meta-state, not on a request count or a time window. Gubernaut is not a jailbreak defense. It reduces what an attack costs; it does not decide whether one succeeds. Gubernaut is not an evaluation harness. It governs a live request path and does not score models. Gubernaut is not a hosted service. It runs on your machine, in your request path, under Apache-2.0.
Injection resistance is claimed for the controller only, the token-free meta level. The arbiter reads raw text by necessity, and its posture compliance is a measured property rather than an architectural property. The controller's zero-token boundary is architectural and not yet adversarially tested. No jailbreak success-rate figure exists, because none was measured.
The evaluated configuration is held out: the specific gains and thresholds used in the cross-family validation record are not published. The shipped constants are documented working defaults for the reference implementation, and gcc_proxy/config.py says so at the top of the file. The cross-family regulation evaluation, the 4x4 record in the paper, was produced with the held-out configuration. Its transcripts, judge panels and scoring scripts are published in full, so the scoring reproduces from the sealed panels even though the run does not.
See the runs the paper came from
Every run, step by step, both replies side by side. Recorded run replay, no live API.