The Shape of the Risk
Set out the pieces plainly. An automated process, running with no human present and approvals disabled, fetches text written by strangers on the open internet and puts it into a language model's context. If that model holds tools that can act on the machine, then the path from a stranger's post to a command on your host is one persuasive paragraph long.
This is not exotic. It is the default arrangement of any agent that reads the web, and the only reason it usually does not fire is that nobody bothered. Treating third-party content as trustworthy because it is usually boring is not a security posture.
Unattended Changes the Calculus
An interactive session has a human in the loop who sees the tool call before it runs. That human is not a great control, but they are a real one, and they are the reason a dangerous tool is tolerable in an interactive setting.
Disabling approvals removes exactly that check, and it is not optional for automation — an unattended job that blocks on a prompt is a job that never finishes. So the moment approvals go, the tool surface has to shrink to compensate. The two settings are coupled, and treating them as independent knobs is how an agent ends up with a shell and nobody watching.
Enumerate What Acts
The category to remove is not "risky-sounding tools" but anything that acts: runs commands, reads or writes files, spawns further agents, schedules future work, or generates artifacts that land somewhere. Reading the world is the job; changing the world is not, and for this task there is no case where it should be.
Two entries deserve specific mention because they get overlooked. Anything that spawns a subagent re-opens the whole question one level down, potentially with a fresh tool set. And anything that schedules work converts a momentary compromise into a persistent one — the run ends, and something remains that will fire later.
The Instruction Clause, for the Non-Agentic Path
The other half of the same problem has no tools involved at all. When third-party text goes into a summarization prompt, some of it will contain text shaped like instructions to the model. There is no perfect defense, but the corpus should carry an explicit clause stating that the material is data to be analyzed and never instructions to follow.
Be honest about what that buys: it is mitigation, not a boundary. The real boundary is that a summarization call has no tools, creates no conversation, and can therefore do nothing but produce text. The clause reduces the chance of a bad summary; the missing tools are what make a bad summary the worst possible outcome.