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–11s: Migration A is checkpointed, approved, revalidated against schema v7, and applied as v8.
- 12–16s: Migration B waits for review while production advances from v8 to v9.
- 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
- An agent runs tests and prepares release artifact A. Production remains unchanged behind a closed execution gate.
- A reviewer inspects A and approves that artifact. The approval is recorded separately; nothing has deployed yet.
- 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.
- B returns to the reviewer. A fresh approval for B replaces the stale one, and the executor waits to recheck the pair.
- 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
- 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.
- 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'.
- 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.
- 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.
- 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.
- 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
- Astra 00:09.5–00:14.5 directly demonstrates the guide’s artifact-substitution problem: B reaches an executor holding approval A and the barrier stays closed. Baseline 00:14.1–00:18.7 instead blocks a correctly identified migration because production changed from its expected v8 to v9; these mechanisms are complementary, not interchangeable.
- Astra 00:17–00:25.6 completes recovery through fresh review, B = B, and visible deployment. Baseline 00:21.1–00:24.4 ends safely at REVIEW REQUIRED; that is an accurate unresolved handoff, but offers less guidance on completing the workflow.
- Baseline 00:01–00:08.5 establishes a normal success and shows target/schema context in a durable checkpoint. Its checkpoint rows at 00:05.3 and 00:18.7 take more effort to read at 350px than Astra’s large artifact/approval pairing at 00:13.8; the cause of Baseline’s external state change remains implicit.
- Fable 00:07.7–00:09.4 makes LangGraph node replay concrete with a returning cursor and two notification rows. Its reordered example at 00:21.9–00:24.5 shows one notification after approval; this is one ordinary resume, not an exactly-once guarantee across later failures or retries. Neither other cut teaches this implementation hazard.
- Fable’s original packet/label collision near 00:08.8 and unexplained reset near 00:15 were corrected. The final cut keeps the node label clear, names LangGraph in the subtitle, and fades between examples at 00:14.6–00:15.9 before showing the operation reorder through 00:16.8; the reset no longer reads as a production rollback.
- Astra spends roughly 00:00–00:04 on preparation before reaching its central approval comparison; Baseline’s blocked ending holds roughly 00:21.5–00:24.5. These are modest pacing costs, while Fable fits two denser sequences into 30.2 seconds and benefits most from pausing or replaying. All three provide readable settled outcomes and matching first/last frames.