The agent-state-as-first-class-concept point maps almost exactly onto a state machine, planning, executing, waiting-for-approval, completed, needs-intervention are states with explicit valid transitions, not just a status string you branch on. Something like XState models this well since it makes illegal transitions (like completing from idle without executing) impossible by construction, instead of relying on every consumer of the state to check it correctly.