AI Agent Security Basics: Permissions, Logging, and Human Oversight
An agent that can act in your CRM, inbox, or calendar is a new access-control decision, not a chatbot setting. Here’s how to make that decision on purpose.
| The real question | Not “is the agent smart” — “what can it touch, and would you know if it went wrong” |
| Least privilege | Give an agent only the specific actions it needs, e.g. “create a calendar event,” not “full calendar API access” |
| Audit logging | A record of every action the agent took, when, and why — so mistakes are traceable, not mysteries |
| Human-in-the-loop | Reversible, low-stakes actions can run on their own; anything unsendable gets a review step first |
| Vendor test | Scoped permissions, action logs, and a human review/undo path — if a tool can’t answer yes to all three, treat it as high-risk |
When a business connects an AI agent to its CRM, inbox, or calendar, the interesting decision isn’t which model to use. It’s what that agent is now allowed to do on your behalf, with your credentials, while you’re not watching.
That’s an access-control question, the same kind you’d ask before handing a new hire a company laptop and a login. Most businesses don’t ask it, because the agent showed up disguised as a chatbot — something you type questions into, not something that sends emails, books meetings, or edits customer records. Once it can take real actions, the chat window is a UI detail. What matters is the account behind it.
The good news is that securing an agent doesn’t require a security team or a dramatic incident to justify the effort. It requires the same three habits you’d apply to any system with access to your business tools: give it only what it needs, keep a record of what it did, and put a person in the loop before anything consequential goes out. None of that is exotic. Most of it is a config decision you make once.
An agent with tool access is a new employee, not a new app
Think about how you’d onboard a new hire. You wouldn’t hand them the master password to your CRM, your shared inbox, and your billing system on day one and tell them to figure out what they need. You’d give them a login scoped to their job, watch how they use it, and expand access as they earn trust.
An AI agent deserves the same treatment, for a more mundane reason than “AI is risky”: agents inherit whatever the account they’re running on can reach, not just what you built them to do. Connect an agent to your email using an admin login and it can read every folder, not just the support inbox you meant for it to triage. Connect it to your CRM with a token scoped to “full access” and it can delete records, not just update a status field. The agent isn’t doing anything malicious here — it’s just operating with more reach than the task required, and that gap is where mistakes turn into real damage. The industry term for this is excessive agency, and it’s serious enough that OWASP’s Top 10 for LLM Applications lists it as a named risk, breaking it into three causes: excessive functionality (tools the agent can reach beyond its task), excessive permissions (those tools carrying broader privileges than necessary), and excessive autonomy (high-impact actions proceeding without anyone reviewing them). All three are fixable before you ever connect anything.
Least privilege: give it a job, not a master key
The fix for excessive agency is the oldest idea in security: give an agent the narrowest set of permissions that lets it do its actual job, and nothing else. In practice, that means scoping by action, not by system.
- Calendar: “Can create and reschedule events on one calendar” — not “has the calendar API key with read/write/delete on every calendar in the workspace.”
- Email: “Can draft replies in the support inbox” — not “can send from any account it can access.”
- CRM: “Can update contact status and log notes” — not “can export the full contact list or delete records.”
- Billing or payments: if an agent touches this at all, it should have no path to move money on its own, full stop.
Notice none of these examples involve a hypothetical breach. Over-broad access is a risk on its own, the same way leaving your store’s back door unlocked is a risk whether or not anyone has walked through it yet. A permission an agent doesn’t use is still a permission that exists — something a bug, a bad prompt, a compromised integration, or a simple misunderstanding can act on. Scoping access down doesn’t just limit what a worst-case scenario can do; it limits what an ordinary Tuesday mistake can do, which is the failure mode you’ll actually encounter.
Anthropic’s own approach to this is a useful reference point. Its agent identity model for Claude in Slack gives the agent its own credentials rather than borrowing a person’s login, with permissions tied to the specific channel or workspace it’s operating in — Claude might reach engineering tools in one channel and only CRM tools in another. The design goal, as Anthropic engineer Noah Zweben put it, is to replace the question “what can this user do?” with “what can this agent do in this compartment?” That’s the mental model worth copying even if you’re using a much smaller tool: scope permissions to the job, not to whichever account was easiest to connect.
Audit logging: the record you’ll wish you had
Scoped permissions limit the blast radius. Logging is what lets you find out something happened at all. Without a record, an agent’s mistake looks like nothing until a customer calls confused about an email they never should have gotten, or you notice a calendar full of meetings nobody remembers booking.
A usable agent log doesn’t need to be sophisticated. It needs to answer four questions for every action: what did the agent do, when did it do it, what triggered it, and what was the result. “Sent email to jane@client.com at 2:14pm, triggered by new-lead workflow, delivered successfully” is a complete, boring, useful log line. If your tool can’t produce something like that, you don’t actually know what your agent has been doing — you’re trusting it, not verifying it.
Logging also turns “the AI did something weird” from a mystery into a two-minute investigation. You can trace the exact input that led to the exact output, tell whether it was a one-off or a pattern, and fix the actual cause instead of guessing. That matters more than it sounds like it should: the same identity model mentioned above logs every agent action under the agent’s own identity rather than blending it into a person’s activity history, specifically so a company can revoke or audit that access without untangling it from everything a human did that day.
Human-in-the-loop: pick your checkpoints on purpose
Not every action needs a human to sign off, and treating all of them that way just teaches people to rubber-stamp everything, which defeats the point. The useful question is: if this action turns out to be wrong, can you undo it quietly, or does someone have to make an apologetic phone call?
Draft a reply and hold it for review: reversible, low stakes, safe to automate fully. Send that same reply straight to a customer without anyone reading it first: irreversible the moment it lands. Reschedule an internal meeting: minor, self-correcting. Cancel a client meeting or issue a refund: consequential, and worth a pause. The pattern is consistent — draft, propose, and flag are fine to automate end to end; send, delete, and pay are the verbs that deserve a checkpoint until the agent has a long track record of getting them right.
This isn’t about distrusting the technology. It’s about matching the level of oversight to the cost of being wrong, which is exactly how you’d manage a new employee’s authority to spend money or represent the company externally.
Vendor questions worth asking before you connect anything
Most small businesses don’t build their own agents; they adopt a tool that already has one built in. The questions that matter are the same ones a good vendor should be able to answer without hedging:
- Does it support scoped permissions? Can you limit the agent to specific actions, or is it all-or-nothing access to a connected account?
- Does it log actions, and can you see the log? Not “we have internal monitoring” — can you, the customer, pull a readable record of what the agent did?
- Can a human review or undo before something irreversible happens? Ask specifically about the action that would hurt most if it went wrong — sending, paying, deleting — and whether that one has a checkpoint by default.
- Can you revoke access in minutes, without a developer? If turning the agent off requires a support ticket, you don’t have a kill switch.
A vendor that answers all four cleanly has taken security seriously enough to build for it. A vendor that answers with “our AI is very safe” instead of specifics is telling you those controls don’t exist yet.
Where this leaves you
None of this requires treating every agent deployment like a bank vault. It requires one decision, made on purpose instead of by default: what can this agent touch, would you know if it did something unexpected, and can you turn it off. Write that down per agent — one page, scope, logging, checkpoints, revocation — and you’ve done most of the real work before you ever worry about anything more advanced.
If you’re evaluating an agent or automation tool and want a second opinion on whether its permission model actually holds up, our team can walk through it with you, or see how we approach access and oversight on every build on our services page.