Agents · Research Note

Before you give an AI agent access, check this

I do not start by asking whether an AI agent is impressive. I start by asking what it can touch. The same agent feels harmless in suggestion mode and risky once it can send, merge, deploy, or spend.

Decision brief: Use this note when a product asks for agent access, not after the demo has impressed you. The decision is not “is the agent smart?” It is “what can it touch without another human approving it?”
  • Grant read-only access first.
  • Treat deploy, send, spend, and permission changes as human-approved actions.
  • Reject broad OAuth scopes when a narrower workspace or sandbox would do.
My rule: do not discuss “autonomy” until you can list what the agent can read, what it can change, who approves the action, and how access can be revoked.

I think of permissions as a ladder

AI agents are often sold as if autonomy were one feature. I find it safer to treat autonomy as a ladder. Every rung gives the agent more usefulness and more ways to cause damage.

LevelPermissionExampleMain risk
1SuggestDraft a reply, propose a diff, summarize a document.Wrong output wastes review time.
2ReadRead a repo, meeting transcript, CRM record, or analytics dashboard.Sensitive data exposure.
3Write draftCreate a branch, draft a Notion page, prepare an email.Generated work may be mistaken for approved work.
4Modify live systemsEdit production content, merge code, update tickets, change settings.Incorrect actions create operational damage.
5Contact or spendSend email, invite users, buy ads, create cloud resources, issue refunds.The agent can create financial, legal, or reputational harm.

Most teams should start at levels 1-2. Level 3 can be safe with review. Levels 4-5 need explicit policies, logs, and approval gates.

Five questions I ask before access

  1. What can the agent read? List data sources, not integrations. "GitHub" is too broad; "one public repo" is specific.
  2. What can the agent write? Draft-only is different from merge, send, publish, deploy, or charge.
  3. Who approves actions? Is approval required every time, only above a threshold, or never?
  4. Where is the audit trail? You should be able to see prompt, input, decision, action, time, and actor.
  5. How do you revoke access? Revocation should be obvious, fast, and testable.

Not every integration has the same risk

I would not review a calendar reader and a deployment token with the same seriousness. The integration name is not enough; the allowed action is what matters.

IntegrationDefault stanceReason
Docs or notesRead-only firstUseful context, but may contain private strategy or customer information.
GitHub or GitLabBranch-only firstAgents can be useful for drafts; merging should remain human-approved.
EmailDraft-only firstSending messages creates external consequences.
Slack or chatPrivate-channel firstIncorrect messages can confuse teams or expose sensitive data.
Billing or paymentsManual approval alwaysRefunds, purchases, and invoices affect money and trust.
Cloud infrastructureRead-only or sandboxCreating resources can cost money; changing settings can break production.

Prompts matter less than approval design

A safer agent is not merely a better prompt. It is a better system around the prompt: scoped tokens, dry-run mode, diffs, approvals, rollback, and logs. The interface should make it hard to confuse "suggested" with "done".

Useful pattern: require the agent to produce a plan before action. Review the plan separately from the generated output. Then approve only the specific action, not a broad permission.

A small-team policy I would actually use

For a small team, a simple policy is better than no policy:

  • Agents may read public documentation and designated non-sensitive project files.
  • Agents may create drafts, branches, tickets, and internal notes.
  • Agents may not send external messages, merge code, deploy, create paid resources, issue refunds, or change permissions without human approval.
  • All agent actions must leave a visible log.
  • Any integration touching customers, money, production, or private code requires owner approval before connection.

How I would trial a new agent

  1. Start with a sandbox task. Use a fake repo, sample docs, or a small internal project.
  2. Give one integration only. Do not connect everything on day one.
  3. Use read-only access where possible. The first trial should test reasoning, not permissions.
  4. Measure review time. A fast agent that creates slow review is not a productivity win.
  5. Test revocation. Disconnect the tool and confirm it loses access.

My final permission question

Ask: "What is the worst thing this agent can do without another human approving it?" If that answer makes you nervous, the permission set is too broad for the current trust level.

Concrete scenario: a support agent that can issue refunds

The risky moment is not when the agent summarizes tickets. The risky moment is when the same agent receives permission to write to the help desk, update the CRM, and trigger refunds. In that setup, one bad interpretation can become an external customer message and a financial action before anyone has reviewed it.

My default setup would be narrower: let the agent read the ticket, draft the response, and propose a refund reason. Keep the actual send and refund buttons behind a human. If the team wants automation later, add a dollar threshold and a visible audit log first.

Permission requestMy decisionWhy
Read recent support ticketsAllow for a scoped queueUseful context, limited blast radius.
Draft customer repliesAllowDrafts are reviewable before harm.
Send replies automaticallyDeny at firstExternal messages create trust risk.
Issue refunds below a thresholdOnly after logs and review samplingMoney actions need a rollback and audit trail.
Change account permissionsDenyPermission changes compound every other risk.

When this checklist is not enough

This checklist is not enough for regulated data, health records, legal work, payroll, or production infrastructure. In those cases, treat the agent like a new internal system: involve the system owner, document access, review logs, test revocation, and require a real incident path before launch.

More Research Notes