The planner/executor split that actually survives contact with production
Separating the component that decides what to do from the component that does it — with a validation step in between — lets you swap, audit, or roll back either half independently. A single model doing both planning and execution makes failures opaque and non-reproducible.
This split is also what makes the MCP-style trust boundary pattern enforceable: the executor only ever calls pre-approved tools, regardless of what the planner proposes.
Treat agent state like you'd treat a distributed transaction
Every multi-step agent task needs the same discipline as a distributed transaction: idempotent steps, a durable log of what's been attempted, and an explicit compensating action for partial failure. Agents that lose their place mid-task and simply retry from the start cause real damage at production volume.
This is infrastructure work, not prompt engineering, and it's usually the single biggest gap between a working demo and a production-grade agent.
An agent demo shows you the happy path. Production shows you every path, and most of them are the unhappy ones.MNB AI Practice
Key actions
- Split planning and execution into separately auditable components
- Make every agent step idempotent before trusting it to retry
- Keep a durable log of attempted actions, not just final outputs
- Define a compensating action for every irreversible step