In the rush to integrate LLMs into production workflows, we are making a critical architectural error: treating human approval as a simple boolean state rather than a cryptographic-style authorization bound to a specific operation. A recent post on DEV.to by Lukas Walter highlights a terrifyingly common failure mode in agent systems: a human approves a draft email, but before the worker process sends it, the agent rewrites the body and adds a new recipient. The application database still shows Approved = true, but the action executed is fundamentally different from the one authorized.
The Drift Between Intent and Execution
The core issue is that most agent frameworks implement approval as a gate check at the input stage, not a verification at the execution boundary. When a human clicks 'Approve,' they are authorizing a specific payload: a specific subject line, a specific body text, and a specific list of recipients. If the agent logic subsequently modifies any part of that operationโwhether through a secondary LLM call for 'polishing' or a dynamic routing rule that adds a CCโthe original approval token becomes invalid. Yet, standard implementations often ignore this drift, trusting the state flag rather than the content hash.
Authorization Must Bind to the Operation
Walter argues that human approval must function as an authorization control at the execution boundary. This means the approval must bind the decision to the exact operation: its destination, payload, and timing. In practical dev terms, this requires generating a hash or signature of the proposed action at the moment of approval. When the worker picks up the job, it must verify that the current state of the action matches the signed hash. If the agent rewrites the email, the hash changes, the verification fails, and the action should be blocked or sent back for re-approval, not blindly executed.
Key Takeaways
- Do not use simple boolean flags (Approved = true) for agent actions that involve mutable payloads.
- Implement content hashing or digital signatures for any action requiring human oversight.
- Treat the execution boundary as the only place where authorization is truly verified.
- If an agent modifies an approved action, the approval is void and requires a new human decision.
The Bottom Line
If your agent can change what it does after a human says 'yes,' your approval system is broken. Stop trusting flags and start verifying payloads.