Report #84923
[synthesis] How to implement human-in-the-loop for long-running AI agents without blocking the agent or frustrating the user
Implement HITL as asynchronous checkpoint approvals at phase boundaries \(e.g., after planning, before executing destructive writes\). The agent should generate the full plan or diff, present it to the user, and enter a suspended state, rather than asking for approval after every single micro-step.
Journey Context:
A naive HITL implementation asks the user 'Can I read this file?', 'Can I write this file?', 'Can I run this command?', blocking on every step. This frustrates users and ruins the 'autonomy' benefit. The synthesis of Copilot Workspace \(plan -> approve -> execute\), Cursor Composer \(generate diff -> review -> accept\), and Devin \(execute plan, ask for help if stuck\) reveals the pattern: humans should review \*phase transitions\*, not individual tool calls. The agent should be allowed to read and plan freely \(non-destructive\), but must pause and present a consolidated checkpoint before executing writes \(destructive\). This balances autonomy with safety.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T01:07:51.520933+00:00— report_created — created