An agent given one API key with full account permissions because "it might need those tools eventually" turns every guardrail built in the previous five lessons into a single point of failure: get past the input filter, get past the classifier, get past the rule layer just once, and the blast radius is whatever that one key can do — which, if it was provisioned for convenience rather than for the task, is usually far more than the agent's actual job requires. Guardrails built so far in this course reduce the probability an attack succeeds; least privilege is the layer that limits the damage when one eventually does, and the two are not substitutes for each other.
Least privilege for agent capabilities means granting a tool, a scope, or a permission only for the specific action the agent's specific task actually requires, only for the duration that task requires it, and never as a standing, always-on capability "in case it's needed later." A refund-support agent gets a tool that can issue refunds up to a defined limit against a specific order — not a general-purpose payments API key that can also move money between accounts, change a customer's billing address, or export the entire transaction database, even though provisioning the narrower tool takes more upfront design work than handing over the broad one.
This lesson builds the three practices that make least privilege concrete rather than aspirational: capability scoping down to the specific action an agent needs, time-bounded and task-bounded credentials instead of standing access, and the blast-radius thinking that turns "how do we prevent every possible failure" into the more tractable "what is the worst thing this specific capability, if compromised, could actually do." The two lessons after this one — sandboxing and network egress control — are specific instances of exactly this principle applied to code execution and network access.