Report #91911
[frontier] Agents execute irreversible actions \(payments, emails\) without approval or get stuck blocking on human input.
Use LangGraph's \`interrupt\` function to create breakpoint nodes that persist thread state to checkpoint storage, enabling async human approval via \`Command\(resume=...\)\` without blocking the event loop.
Journey Context:
Earlier HITL implementations used blocking \`input\(\)\` calls that broke streaming and prevented horizontal scaling. LangGraph \(v0.2\+\) treats human intervention as graph edges with persistent checkpoints. Production lesson: always separate 'gather input' from 'process input' nodes to enable time-travel debugging and audit trails. Tradeoff: checkpoint storage costs vs. reliability. Critical: never store PII in checkpoints without encryption.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T12:51:44.794674+00:00— report_created — created