AEGIS KAIKAKU arXiv ↗ PDF ↗ Model ↗ AURA · memory gate ↗
THE SAME EPISODE, TWICE · ILLUSTRATION OF THE RUNTIME HANDOFF

A Backup Reflex for Physical AI

The policy that calls for backup.

Call the stronger policy before failure compounds. A long-horizon robot failure is a slow spiral: one bad step degrades the state, the next compounds it, and the episode is lost long before it ends. The warning is already written in the policy's own activations. AEGIS reads it with a cheap probe on the frozen weak policy and, on only the steps it flags, hands control to a stronger separate policy — calling for backup at the moment it still matters, and paying for it only when it helps.

Measured in simulation (LIBERO-Spatial), one weak/strong policy pair; real-hardware transfer is the named next test, not an assumption inside the claim.

10.1%
Lost episodes recovered
~2×
vs matched-budget control escalation
38%
Strong-policy duty cycle

The problem

Failure announces itself. Nothing answers.

The field has two answers to an impending manipulation failure, and both stop short of what a human supervisor would do. Detect-only methods (SAFE, FIPER, FAIL-Detect, Sentinel) read a cheap signal and raise an alarm, then halt or call a human; they predict, but never act. Recover-within-policy methods (HELM, Pre-VLA, LiLo-VLA, FailSafe) act, but only by asking the same failing policy to resample, replan, or retry. Neither calls for help.

AEGIS occupies the empty axis: a per-step early-warning probe on the deployed policy's frozen internals, a calibrated gate, and a mid-trajectory handoff to a stronger separate policy — with the recovery measured, and defended with controls built to break it.

Why now. As physical AI scales, deployment stops being “pick one policy” and becomes scheduling a hierarchy of policies under compute limits: a cheap policy drives most of the time, and a frontier policy is too expensive to run on every step, so it must be called selectively. The open question is when the cheap policy still deserves control and when a stronger one should take over — the gap a runtime layer has to fill. AEGIS is a concrete answer: step by step, it decides when the deployed policy has earned the right to keep driving, and when to call for backup.

THE FAILURE SPIRAL . RECOVERY EXISTS ONLY OUTSIDE THE POINT OF NO RETURN

The paper's phase portrait, redrawn. Under the weak policy alone, a perturbed trajectory spirals inward and compounds toward the unrecoverable basin (grey). The probe fires the gate inside the early window — here at 26% of the path, while the trajectory is still outside the point-of-no-return ring — and the stronger policy deflects it back out (green). The portrait is schematic; the 10.1% recovered fraction it illustrates is the measured confirmatory value.

Early (≤30%)
frozen probe
Calls a stronger
separate policy
Measures task
recovery
Causal controls
(selectivity)
Detect-only — predict, then halt or defer
SAFEhidden-state failure probe
FIPER · FAIL-Detectconformal / OOD alarms
Sentineltemporal consistency + VLM
INSIGHTdetect & defer
Recover within the same policy — resample, replan, retry
HELMrollback + replan
Pre-VLAresample behind warm-up
LiLo-VLAretry + backtrack
FailSafe · FPC-VLAcorrective actions, same stack
Always-strongcompute ceiling
AEGISthis paper
capability present partial absent hover or tap a mark for what each method does

The paper's positioning table, in full. The field splits into two camps — detect-only methods predict but never act; recover-in-policy methods act, but only by resampling, replanning, or re-prompting the policy that is already failing. AEGIS is the only row filled across all four columns: that is the empty axis it occupies. “Stronger separate policy” means a distinct, more capable executor takes over — not a resample of the failing one. Each mark reflects only what that cited paper reports; hover or tap any mark for the detail.

The result · confirmatory n=700

Twice the recovery of a blind spend

Conditional recovered-task rate on the 646 LIBERO-Spatial episodes the weak policy alone loses. The controls escalate the same number of steps with the same temporal spread — they only lack the probe's timing.

+5.4pp
Over blind · p=8.5×10⁻⁶
+5.0pp
Over random · p=1.0×10⁻⁴
65:0
Recovered, vs doing nothing
Timing is the lever. The blind and random arms spend the same strong-policy steps AEGIS does and recover about half as much. Selectivity also limits the damage: on the confirmatory grid AEGIS disrupts only 10 of the 54 episodes the weak policy was already winning, a recover-to-disrupt ratio of 6.5, against 1.8 for blind escalation and 3.3 for the random trigger.

Source: confirmatory_results.json. Full 10×70 task×seed common-random-number grid, ≥700 episodes per arm, nA-fail=646. One-sided exact paired tests (McNemar for B>C and B>D; binomial for B>A), Holm–Bonferroni adjusted; all paired-trajectory bootstrap CIs (10,000 resamples) exclude zero. Three reference arms recover more, by routes that are not the matched-budget control: HELM-style rollback-and-replan within the weak policy (15.5%, budget-matched to B); the GR00T N1.7 cross-family arm — AEGIS's identical gate escalating to a stronger separate backup (15.5%); and the always-strong ceiling, the stronger policy on every step (31.9%, ≈4.6× the weak-policy baseline). So the claim is selectivity at a fixed budget against the blind and random arms, not raw dominance.

Selectivity, not spend, is the lever. Each arm is placed by per-episode compute (horizontal, schematic, anchored to the 4.14B/0.45B parameter ratio) against its measured recovered-task rate (vertical). AEGIS and both matched-budget controls sit at the same spend (≈2× weak-only), and AEGIS roughly doubles their recovery on timing alone; always-strong reaches the ceiling only at ≈4.6× the compute. RTR values are the measured confirmatory n=700; the compute axis is schematic relative units. (HELM and the GR00T arm, both 15.5%, are charted in the bars above.)

The architecture

One loop, two policies, ten kilobytes of judgment

Everything sits warm in a single process. The weak policy drives and is read continuously by the probe; the gate holds three locks; the 4.14B backup sleeps until the moment it matters. Watch a full episode go around the loop.

RUNTIME LOOP · BOTH POLICIES WARM · THE PROBE READS EVERY STEP

Live schematic of the deployment loop. The tap on action-expert layer 15 never stops feeding the probe — even while the strong policy drives — which is what makes the hysteretic hand-back possible. Gate parameters are the deployed values (α=0.10, tmin=0.20 T, Kmax=⌈0.05 T⌉, hold ≥3 chunks); the episode profile is illustrative, but its duty cycle is the measured 38%. Both policies in one process, the handoff a function call.

The probe

The warning is already inside the policy

The only trained component in AEGIS is a small probe head. Everything it reads is frozen: it hooks the weak policy's action-expert at layer 15, mean-pools the 720-d activations over each 10-token action chunk, and emits a per-step failure risk.

SmolVLA 450M
the deployed weak policy · drives by default · never fine-tuned
Layer-15 hook
action-expert self_attn.o_proj · read live during rollout
720-d feature
mean-pooled over the 10-token action chunk
Probe head
the only trained part · fit on early steps (≤0.30 T) against eventual episode outcome
Per-step risk s_t
failure score in (0,1) → the gate
Early-window AUROC
0.764
95% CI (cluster bootstrap)
0.700.84
Episodes scored
2,792
Best complement (chunk Δ)
0.63

The curve traces the paper's AUROC-vs-read-window figure; the highlighted 30% point and its CI are the measured values (n=2,792 episodes, read from the weak-policy path before any handoff, so signal and label are not intervention-contaminated). Discrimination peaks exactly where the gate reads. The decline to the right is diagnostic only — longer windows mix in steps after AEGIS would have switched. Leakage controls: trained on early steps only, split at the trajectory level (70/15/15), never step level. An earlier build hooked the vision encoder and read a frozen cached feature — chance-level AUROC 0.50; diagnosed as a hook-placement bug, the probe was moved to the live action-expert path at layer 15 (verified by std-over-steps > 0.05) and logged as a pre-registration deviation, not a post-hoc head search. The 0.764 / n=2,792 figures are the paper's confirmatory eval (fig_auroc_timeline); the released probe_auroc.json is the n=112 Phase-D pilot (0.738 LOO-OOF) that gated it.

The gate

Three locks between a score and a switch

A score alone is not a controller. The trigger threshold is split-conformal calibrated to a target false-fire rate α; an early-harm guard suppresses escalation before 0.20 T; a per-episode budget cap ⌈0.05 T⌉ bounds the fires. Drag α and watch the handoff move.

 
Trigger threshold · demo scale
0.73
Gate fires at step
83
Strong policy holds
90–120
Strong share · this one fire
19%
Why the guard exists. An accurate predictor can still reduce success if it triggers interventions that disrupt episodes that were going to succeed — the intervention paradox. In one related-work study a 0.94-AUROC predictor still cut task success by 26pp for exactly this reason, which is why a good score is not yet a safe controller. The early-harm guard, the conformal threshold, and the budget cap are what keep an alarm from becoming a hazard of its own.

The risk trace and threshold axis here are an illustrative demo scale, not the released probe's units (its conformal τ sits at 0.9998; see the Try-it tab). The gate parameters are the paper's deployed values: α=0.10, tmin=max(0.20 T, 2), budget cap Kmax=⌈0.05 T⌉ fires per episode, hold ≥3 chunks of H=10, hysteretic de-escalation at τ−0.15. The cap bounds the number of fires (about 5% of steps), but because one fire holds the strong policy for at least 3 chunks (tens of steps), those few fires add up to the 38% step-weighted duty cycle measured on the confirmatory run. Escalation lands only on chunk boundaries, so a handoff never cuts a half-executed action.

The handoff

A function call, not a round trip

Both policies sit warm in one process: the 450M weak policy drives and feeds the probe; the 4.14B π₀.₅ waits in ~9.5 GB of VRAM. When the gate fires, the switch is a function call at the next chunk boundary.

44%
Of always-strong compute
9.5 GB
Keeps the 4.14B backup warm
H=10
Handoff on chunk boundaries

Per-episode cost ≈ Cw + Cprobe + ρ Cs with duty cycle ρ=0.38; the weak forward pass runs throughout to feed the probe and the hysteretic return. The compute axis is a parameter-count-anchored schematic (4.14B/0.45B), not measured wall-clock — the paper matches arms on realized strong-policy duty, not on a watt meter. Single-process by design: the networked PolicyServer path (CVE-2026-25874, pickle RCE) is never instantiated.

The controls

Built to break the claim

B beating A proves nothing: B spends more compute, and the probe might just be a difficulty thermometer. Two pre-registered controls hold everything fixed except the one thing claimed to matter — where the compute lands.

A · weak-only
the floor
nothing escalates
B · targeted (AEGIS)
the method
probe picks the steps
C · budget-matched blind
same spend
matched on realized 38% duty + temporal spread, no signal
D · random placebo
same rate
uniformly random fires
B > C cannot be bought with compute — compute is equal; only timing differs. B > D shows the trigger carries information, not just intensity. Both held within difficulty strata, so a difficulty proxy cannot masquerade as a controller. All four arms run the identical (task, seed, initial state) tuples by common random numbers.

Pre-registered before any data existed, with kill criteria: K1 probe at chance → no signal; K2 gains vanish under stratification and controls → difficulty thermometer, published as such; K3 escalation >50% of steps → “targeted” has collapsed into always-strong; K4 prior art occupies the axis → reassess. The run cleared all four. Honest accounting: in the HARD tercile the B−C gap is the weakest — its bootstrap CI clears zero but the McNemar test is only p=0.064, where even the strong policy has little recoverable margin, so the within-stratum claim rests on EASY and MEDIUM. Sign-invariance under simulator non-determinism: across 2,000 replicate redraws of the 212 multi-host cells, no primary gap ever reverses. Source: PRE_REGISTRATION.md, confirmatory_results.json.

The loophole-closer. Inside a fixed difficulty tercile every arm faces comparably hard trajectories, so a difficulty proxy can no longer pass for a controller. B beats the random placebo (B−D) in all three terciles and the budget-matched blind control (B−C) in EASY and MEDIUM; the HARD-band B−C gap stays positive on the bootstrap interval but its McNemar test only reaches p=0.064, so we say plainly that the within-stratum B−C claim rests on EASY and MEDIUM. The B−A split is deliberately omitted here: with 19 discordant pairs (episodes where exactly one arm recovered) the HARD stratum falls below the pre-registered 20-pair floor and is never cited as stratum confirmation. The single-host headline is also the optimistic end of a band: across the 2,000 multi-host redraws the median gaps run B−C +2.5pp / B−D +2.7pp (against the +5.4 / +5.0 headline), the sign never reversing (the paper's replicate-resampling figure). 95% bootstrap CIs from confirmatory_results.json.

Recovery vs disruption · the intervention paradox, accounted

ArmA-failures
recovered
A-successes
disrupted
recover : disruptnet successes
A · weak-onlyno escalation0 / 6460 / 5454  (7.7%)
B · AEGIStargeted65 / 64610 / 546.5109 (15.6%)
C · blindbudget-matched30 / 64617 / 541.867  (9.6%)
D · randomrate-matched33 / 64610 / 543.377  (11.0%)

An accurate trigger can still reduce success when it disrupts trajectories that would have succeeded. In a related study, a 0.94-AUROC predictor cut task success by 26pp. The recover-to-disrupt ratio captures this. AEGIS recovers the most failures and disrupts the fewest of the weak policy's successes; blind escalation is the worst on both counts. Source: confirmatory_results.json (harm accounting).

Try it · the real rollouts

The released probe, replayed on the real episodes

Nothing here is simulated. Every trace below is the released 10 KB probe applied to the logged layer-15 activations of the 112 LIBERO-Spatial evaluation rollouts — the same NPZ files shipped with the paper. Pick an episode; watch what the gate would have done, read by read.

REAL EPISODE · REAL ACTIVATIONS · REAL THRESHOLD
Episode · (task, seed)
Weak-policy outcome (logged)
Gate fires
Early-window verdict
62/84
Failures flagged inside the early window
0/28
Early-window false alarms on successes
22.7%
Median fire point, fraction of T
This is the benefit, on the bench. In the window where the gate reads, the probe flags 62 of 84 episodes that go on to fail and — inside that same early window — none of the 28 that succeed. (22 successes do alarm, but only later, earliest at 46% of T, which is exactly why the precondition reads early and treats late fires as misses.)

Provenance: scores are computed by applying probe_artifact.npz (mu, sd, w, b; conformal τ=0.9998 at α=0.10) to the logged probe_feat arrays of the s1spatialFIX weak-policy rollouts — the released evaluation set (n=112; 84 fail / 28 succeed). Reads happen at H=10 chunk boundaries, which is the probe's native granularity. The gate overlay applies the deployed rule (fire on σ≥τ after tmin=0.20 T; hold 3 chunks): these are weak-only logged rollouts, so the green band marks where arm B would hand off; the recovery those handoffs actually buy is the +5.4pp confirmatory result on the The idea tab. One honest caveat: this artifact was calibrated on these same episodes, so the separation shown is in-sample; the paper's headline AUROC (0.738 pilot LOO, 0.764 confirmatory) is out-of-fold.

Use it · artifacts

Take the probe home

Everything is public: the trained probe with its frozen conformal threshold, the gate configuration, the pre-registration, the per-cell rollout logs, and the analysis code that recomputes the confirmatory tables and the released n=112 pilot probe. (The headline n=2,792 AUROC is reported in the paper; everything else recomputes from these logs.)

Model · probe + gate
Dataset · rollout logs
Companion memory work
1 · load the released probe (numpy is enough)
import numpy as np
from huggingface_hub import hf_hub_download

art = np.load(hf_hub_download("Kaikaku/aegis", "probe_artifact.npz"))
mu, sd, w, b = art["mu"], art["sd"], art["w"], float(art["b"])
tau = float(art["conformal_threshold"])  # split-conformal, alpha = 0.10

def risk(h):  # h: (720,) mean-pooled layer-15 action-expert activations
    z = (h - mu) / sd
    return 1.0 / (1.0 + np.exp(-(z @ w + b)))
2 · hook the frozen weak policy (SmolVLA via LeRobot)
feats = []
layer = policy.model.vlm_with_expert.lm_expert.layers[15].self_attn.o_proj
hook = layer.register_forward_hook(
    lambda m, i, o: feats.append(o.detach().float().mean(dim=(0, 1)).cpu().numpy())
)
# sanity check from the paper: live activations vary step to step (std > 0.05).
# a frozen cached feature here is exactly the bug that gives AUROC 0.50.
3 · the backup reflex (deployment loop, schematic)
import math

T, H   = 520, 10                    # horizon, native action-chunk length
t_min  = max(int(0.20 * T), 2)     # early-harm guard
k_max  = math.ceil(0.05 * T)        # per-episode budget cap on gate fires
fires, escalated = 0, False

for t in range(T):
    a_weak = weak_policy.select_action(obs)   # ALWAYS run the weak pass -> keeps feats[] fed,
    s_t    = risk(feats[-1])                  # which is what lets the gate hand back later
    if not escalated and s_t >= tau and t >= t_min and fires < k_max:
        fires += 1
        escalated = True          # switch at the next chunk boundary; hold ≥ 3 chunks;
                                    # de-escalate on hysteresis (full semantics in gate_config.json)
    a_t = strong_policy.select_action(obs) if escalated else a_weak
    obs = env.step(a_t)
cite
@misc{chen2026aegis,
  title         = {AEGIS: A Backup Reflex for Physical AI: Calling a Stronger
                   Policy Before Long-Horizon Failures Compound},
  author        = {Chen, Josef},
  year          = {2026},
  eprint        = {2606.06660},
  archivePrefix = {arXiv},
  primaryClass  = {cs.RO},
  url           = {https://arxiv.org/abs/2606.06660}
}

The released probe_artifact.npz is the frozen Phase-D head: feature standardization (mu, sd), logistic weights (w, b), and the split-conformal threshold calibrated at α=0.10 — ten kilobytes that decide when a 4.14B policy wakes up. The gate constants above are the paper's deployed values, frozen in gate_config.json in the model repo. CC-BY-4.0.