Otter

A Claude Code agent that runs accelerator tuning shifts under operator approval.

Otter puts a Claude Code agent in the accelerator control room: an operator asks in plain language, the agent mines the Badger run archive and the live machine, drafts a validated tuning routine and runs it through Badger, behind a hook-enforced approval chain. I am its sole author. On an LCLS shift in June 2026 one campaign, launched on the operator's approval and then left to run, took the FEL pulse energy from 0.47 to 1.82 mJ in 88 evaluations.

Why

Badger made advanced optimizers a one-click routine, but someone still has to write the routine: knobs, ranges, generator, hyperparameters, constraints. That knowledge is spread across past runs, operators' heads and documentation. Otter asks whether an agent can assemble it from evidence fast enough to matter on shift, without ever being the thing that writes to the machine.

How

Otter is built on LBNL's open-source Osprey harness (Claude Code as the runtime, MCP servers as tools, safety enforced by the runtime rather than the prompt). On top of it I wrote two MCP servers, 35 tools, and four skills:

Six heat maps over a mirror's horizontal and vertical motor positions: the median and standard deviation of the BAX objective and of the x and y misalignment, each with a dark minimum near the centre of the scanned range.
Figure 1. What the runner saw: the objective and misalignment maps a BAX laser-steering phase learned over the mirror's H/V plane during a FACET-II campaign on 1 July 2026 (32 evaluations). Shown as pipeline validation, not a tuning result; see the provenance note below.

Results

I ran all of the LCLS and FACET-II testing, with the operator on duty holding the trigger.

LCLS auto-tune campaign, 26 June 2026: HXR pulse intensity per evaluation Objective rises from 0.47 mJ at the first evaluation to a running best of 1.82 mJ over two stages; the raw trace is grey, the running best is drawn in the accent colour. 0.0 0.5 1.0 1.5 2.0 1 20 40 59 80 96 evaluation HXR pulse intensity, p80 (mJ) Stage 1 · UCB · 4 LTUH matching quads Stage 2 · EI · 8 LI26 quads 0.47 mJ 1.82 mJ running best each evaluation
Figure 2. The 26 June 2026 /auto-tune campaign on LCLS, from the Badger archive: HXR pulse intensity (80th percentile) at every evaluation. Stage 1, UCB on four LTUH matching quads; stage 2, EI on eight LI26 quads, in the same Badger window. The agent skipped a planned third stage when stage 2 added only 0.5%.

What I did. Sole author of Otter: the two MCP servers, four skills, knowledge pack, deployment to two control-room hosts without internet access, and all of the experiments. The per-phase FACET-II physics routines (BAX, BOED, the BO stages) come from SLAC's autonomous-control package; mine is the MCP wrapper, worker, verifier and workflow engine around them. Osprey itself: #2 code contributor (249 commits, November 2025 to March 2026: terminal UI, typed event streaming, provider adapters).

Numbers are from Badger archive runs and agent transcripts on both control-room hosts, June to July 2026.