Fieldnotes / engineering
← Human-in-the-loop

Watch & compare

Human-in-the-loop

Different ways to see the same idea. Play one cut at a time, then return to the guide to try it yourself.

Why we recommend Approve the artifact

Astra is the clearest chapter entry because it keeps artifact and approval side by side, blocks B with approval for A, then opens the executor only after B is reviewed. Baseline adds a different check: production prerequisites can change while an approved migration waits. Fable is a complementary LangGraph implementation lesson about repeated side effects on resume, best watched after the approval-boundary example.

Original · 26 sec

Original explanation

Human-in-the-loop systems pause execution where a person must supply judgment or authorization.

Read the video sequence
  1. 1–11s: Migration A is checkpointed, approved, revalidated against schema v7, and applied as v8.
  2. 12–16s: Migration B waits for review while production advances from v8 to v9.
  3. 17–24s: The approved proposal still expects v8. Revalidation blocks stale execution and requests review again.
About this cut

Production: Original prototype; model not recorded.

Recommended · Astra · 30 sec

Approve the artifact

Bind human approval to the exact proposed artifact, and require fresh review when an agent changes it before execution.

Read the video sequence
  1. 0–5.5s An agent runs tests and prepares release artifact A. Production remains unchanged behind a closed execution gate.
  2. 5.5–10.2s A reviewer inspects A and approves that artifact. The approval is recorded separately; nothing has deployed yet.
  3. 10.2–17s The agent prepares revision B. The executor compares B with approval for A, detects a mismatch and keeps production unchanged. The old approval is stale.
  4. 17–23s B returns to the reviewer. A fresh approval for B replaces the stale one, and the executor waits to recheck the pair.
  5. 23–30s The executor matches B to its new approval, opens the gate and releases B. This illustrates an enforced approval boundary; the scene fades to its opening state.
About this cut

Production: gpt-6-astra.

Illustrative executor; no framework or prompt automatically guarantees artifact-bound authorization.

A/B abbreviate immutable artifact identities; target binding, authenticated decisions, race protection and retry handling are outside this cut.

Human review and testing durations are compressed, not benchmarks.

Audio was analysed, not physically listened to.

Self-reviewed; independent comparative review and default promotion remain separate.

Alternative · Fable · 30 sec

Put side effects after the approval

In LangGraph, resuming an interrupted node restarts that node from its beginning. Moving a notification after approval avoids the duplicate caused by this one approval resume; later failures and retries still require idempotency.

Read the video sequence
  1. 0.0–4.5s: The subtitle names LangGraph node replay. The deploy node lists notify #ops, approve?, apply v8. A cursor enters at notify #ops and a v8 notice lands green in #ops. The cursor moves to approve?; approve v8? is checkpointed and sent to the human reviewer, then the node waits.
  2. 6.3–9.4s: The Reviewer answers yes. The Checkpoint row changes to 'approve v8? → yes' and a resume chip returns to the deploy node. The cursor slides back up to notify #ops with a rewind sound: the whole step restarts from its top. notify runs again and a second 'v8 notice' lands red in #ops with an × mark; a red badge reads 'sent ×2'.
  3. 10.3–13.1s: The cursor reaches approve?, which turns green at once because the stored answer is returned, then apply v8 runs and Production changes from schema v7 to schema v8.
  4. 14.6–16.8s: The stage fades out to separate the examples. A fresh demonstration begins with empty checkpoint and notification rows and schema v7. The first two operations then swap visibly so approve? comes before notify #ops; this is not a production rollback.
  5. 17.3–27.1s: The same pause and approval happen. On resume the step restarts at approve?, which returns the stored yes immediately; notify #ops then runs once (green row, badge 'sent ×1') and apply v8 sets schema v8.
  6. 27.1–30.2s: The resolved state holds, then the stage fades to the title-only frame that also opens the video.
About this cut

Production: anthropic/claude-fable-5-1.

Revision: gpt-6-astra comparative review.

Illustrative scenario: the node-restarts-from-its-beginning behaviour is LangGraph's documented interrupt semantics; other agent runtimes may replay, resume in place, or re-run differently, so the transferable lesson is to know what your runtime re-executes on resume and keep pre-approval side effects idempotent.

The cut shows one of three documented fixes (moving the side effect after the interrupt); making the side effect idempotent or isolating it in its own node are equally valid and not shown.

A persisted approval records a decision; it does not by itself enforce authorization or revalidate the action, which the baseline cut and the guardrails-and-permissions chapter cover.

The duplicate #ops notice stands in for any duplicated side effect (tickets, records, charges, audit rows); only the notification form is shown.

Audio was verified by analysis (peak −2.31 dBFS, spectrogram, onset timing against the cue list); it was not listened to. This describes the original author pass; the subsequent comparative review is recorded separately.

The corrected sequence depicts one approval resume. Moving side effects after an interrupt does not guarantee exactly-once effects across later failures or retries.

The 14.6–15.9s fade separates independent examples; it is not a rollback or deletion of real production history.

These animations use sound effects rather than narration. The written guide explains the mechanism and its limits. Model names describe how a cut was made, not a quality ranking.

What the review found