An agent is running, making tool calls, and something's wrong — bad prompt, gone off the rails. You need to stop just that one. Right now.

What do you do? Rotate the API key? It's shared, so you break every other agent. Kill the process? You lose its state and still don't know what it already did. Neither is "revoke this agent" — they're "blow something up and hope."

I went looking for the real version, found mostly duct tape, and built it. Four things got clear:

1. Identity and credentials shouldn't be the same thing. When your agent is its API key, that key is its identity, credential, and permissions all at once — so revoking means rotating and scoping means hoping the prompt holds. Split them: the agent has an identity, its authority is a separate signed grant, and the real secret is custodied elsewhere and injected at use. Now revoking is "invalidate one grant" and everything else keeps running.

2. Revocation has to hit the next action, not the next token refresh. If it "expires in 15 min," the agent keeps working for 15 minutes after you said stop. The only instant kill I found is putting the check in the action's path — for MCP, a proxy in front of the tool server: