BoxAgnts Runtime (4) — Capability Security, Not Root Access BoxAgnts has implemented a capability-based security model for AI agents that replaces root-level access with granular, explicit permissions. The system's WASM execution model requires agents to declare specific capabilities—such as limited filesystem access, tool restrictions, and turn caps—rather than granting implicit authority over the entire system. This approach treats LLMs as untrusted execution authorities that require containment boundaries, addressing the fundamental security architecture problem of giving probabilistic models unrestricted operational privileges. Modern AI agents are rapidly gaining operational authority—executing shell commands, modifying repositories, accessing local files, operating cloud infrastructure, managing developer environments. The problem is that most AI infrastructure still relies on a security model designed for trusted human operators. That assumption no longer holds. LLMs are not trustworthy execution authorities. They are probabilistic systems exposed to prompt injection, adversarial context, untrusted documents, manipulated tool outputs, and reasoning instability. Yet many AI agents still run with privileges equivalent to root. This isn't a tooling problem—it's a security architecture problem. BoxAgnts' query loop clearly demonstrates how LLMs become runtime controllers—the model decides which tool to call, what arguments to pass, what resources to access. In boxagnts/query/src/query.rs : // Each turn, the model's generated content is parsed. // If it contains tool use blocks, the system executes the corresponding tools. for tool use block in tool uses { let tool name = &tool use block.name; let tool = find tool &tools, tool name ; let result = tool.execute tool input, tool ctx .await; // Result is fed back to the model as a ToolResult message } The key issue is that runtimes typically grant the model overly broad implicit authority—unrestricted filesystem, unrestricted network, unrestricted shell. An LLM doesn't understand operational risk, privilege escalation, production safety, or organizational boundaries—it only predicts plausible continuations. Malicious instructions can be embedded in webpages, Markdown files, source code, emails, PDFs, and API responses—the model cannot reliably distinguish "trusted instruction" from "malicious instruction" through prompts alone. So the core question isn't "Can the model behave safely sometimes?"—it's that unrestricted permissions amplify every reasoning failure. The goal isn't to make the model trustworthy; it's to make unsafe behavior containable. This requires capability boundaries. BoxAgnts' Agent tool design boxagnts/tools/src/agent/mod.rs embodies this principle. An agent can be configured with tools restrictions—only a specific tool set; can set max turns hard caps; can choose isolation: "worktree" to run in an isolated Git worktree. These are all instances of capability constraints: derive Debug, Deserialize struct AgentInput { description: String, prompt: String, tools: Option