LABFLOW / SYSTEMS ONLINESESSION ID · LF-23421-U8-FWD·3 INSTRUMENTS CONNECTED·BENCH · BAY 04·v4.2.1
SECTION · LF-AGT
AGENT · FLOW
TOOLS · 26
POLICY · DUAL-SIGN
03 / AGENTS

Meet FLOW.

FLOW is the lab agent. It plans the sweep, validates the policy, drives the instruments, watches the trace, flags the anomalies, and writes the lab notebook — with a human signature on every dangerous step.

THE LOOP

Six steps. One pass.

STEP · 01

Parse intent

Plain-English brief → typed protocol. Constraints, sweeps, dwell, abort conditions, target metrics — all extracted before a single byte hits the wire.

STEP · 02

Plan the bench

FLOW builds an instrument graph, picks transports, and proposes SCPI. You see the plan and the SCPI before it arms anything.

STEP · 03

Validate policy

Every step is checked against the bench safety file — compliance ceilings, ramp limits, dwell minimums, probe-temperature gates.

STEP · 04

Arm & run

Drivers source, stimulate and capture in lock-step. Transient errors are retried; persistent ones surface as observations, not silent fails.

STEP · 05

Observe & flag

FLOW watches the captured trace as it builds. Threshold inflections, oscillation, outliers — flagged in prose with the corresponding waveform segment.

STEP · 06

Hand back

Raw samples, full transcript, plots, written summary, and a signed manifest. Replayable identically, three years from now.

TOOLBELT

The tools the agent can pick up.

Every action FLOW takes goes through a typed tool with a hard schema. No free-form code execution, no SCPI string injection — the tool layer is the gate.

smu.source_v()
Source a DC voltage with explicit compliance. Returns measured I.
smu.sweep_v()
Linear or log sweep, per-point dwell, per-step abort predicate.
scope.capture()
Acquire on edge / pulse / runt / window trigger. Returns waveform array + timebase.
scope.measure()
Vpp, RMS, frequency, duty, rise/fall, overshoot — over the acquired window.
fg.set_waveform()
Sine, square, ramp, pulse, arb. Amplitude, offset, phase, modulation envelope.
psu.read()
Per-rail V, I, ripple, regulation status. Honors per-rail clamps before output enable.
dmm.read()
TRMS V/I, R 2W/4W, frequency, capacitance. Integration time configurable.
daq.log()
Streamed acquisition into a session-scoped buffer. Backpressure-aware.
safety.check()
Re-evaluate the policy file against current setpoints. Blocks the run on a violation.
report.emit()
Compose the lab notebook — plots, prose, transcript, manifest. Signs the run.
SAFETY

Human-in-the-loop, on by default.

Hard caps

Per-channel ceilings on V, I, ramp-rate and dwell. Enforced at the driver, not in a prompt. The agent literally cannot ask for more.

Dual-sign approvals

Above your policy threshold (default 6 V or 100 mA), the agent pauses for an operator signature before arming.

Auto-shutdown

Probe-temperature, compliance-hit, lost-link or runaway-current triggers a clean ramp-down — without waiting for a human.

Audit trail

Every SCPI line, every approval, every retry, every replan — timestamped and stamped into the session manifest.

Sandbox mode

Dry-run the entire protocol against a virtual bench. The agent emits the SCPI it would have sent and the data it would have expected.

Operator override

A single keystroke from the operator suspends the agent, freezes setpoints, and returns control. The bench is yours, always.

MODELS

Pick the agent for the run.

MODEL

flow-l

The default. Best plans, longest context, best at multi-instrument choreography.

MODEL

flow-m

Faster, cheaper. Great for routine sweeps and well-trodden protocols.

MODEL

flow-s

On-device option for air-gapped labs. Tool-calling only, no autonomous planning.

See FLOW drive your bench.

A 20-minute walkthrough on real instruments — yours or ours. We'll run a transfer curve, an LDO PSRR sweep, or whatever your day demands.

Read the protocol DSL.

FLOW reads natural language but emits a typed protocol. See the schema, the safety hooks, and how to author one yourself.