Agent loops that never checkpoint waste a full day of debugging. I save tool results and planner state after every risky step so a crash does not wipe the trail.
Checkpointing after every risky step is basically non-negotiable once an agent chain runs more than a couple of tool calls deep - the alternative is re-deriving state from scratch after every crash, which costs way more than the checkpoint itself.