A deployed agent reads things you didn't write: web pages, API responses, emails, files. And it acts on them. Two rules keep that from going wrong.
Rule one: tool results are data, not instructions. Anyone who controls something your tool fetches can hide text in it aimed at the model. That's indirect prompt injection. Imagine the weather API, or a page it scrapes, returns this: