You only need to remove one leg, so pick the one that costs the agent least. For a support bot that answers from private documents, cut the exit: a default-deny egress allow-list, meaning only named destinations are reachable, costs almost nothing. For a coding agent that must read untrusted third-party code, cut private data: run it in a sandbox with no production credentials. For an internal tool whose only inputs come from trusted staff, keep untrusted content out and keep it that way.
Some agents have no cheap cut. An email assistant must read mail from strangers, reach the user's data, and send mail. There you combine several controls: code that refuses to let untrusted-derived content drive a send, an allow-list of recipients and hosts, and a person who approves irreversible actions.
Cutting a leg costs some capability, and the cost can be measured. On the AgentDojo benchmark, the CaMeL design, which blocks untrusted data from reaching sensitive actions, reported solving 77 percent of tasks with provable security against 84 percent for an undefended agent. Before shipping any agent, ask three questions: does it read untrusted content, can it reach private data, can it send data out? If all three answers are yes, change the design first, and ask again every time the agent gains a new connector or feature.