Dismiss

New here? Start the Builder path.

Home · Agents · 08 · Permissions & human sign-off

Concept card · Agents

Permissions & human sign-off

What this gets you. Decide what your agent may do alone, and make the rest wait for a named person.

Permissions are the rules your app enforces about which tools your agent may call for a task, and which actions wait for a named person.

Last checked 2026-10-21 8 min

Search for Permissions & human sign-off

What changed

Oct 26: OWASP sources now point to the 2026 list, where some entries have new numbers.

Earlier updates

Oct 21: First card. You decide which tools may run alone, and a named person approves the rest. Sources include Anthropic, Google, the Model Context Protocol, OpenAI, OWASP and NIST.

Skip to Practice if you already gate your agent's tools by effect and name an approver for each.

Before you start: who runs a tool, the AI model or your code?

Show the answer

Your code. The model only asks. That's why your code can also say no. Recall: your code, not the model, runs each tool. See Tool calling.

1 What it is

Permissions are the rules your app enforces about which tools your agent may call for a task, and with what access. Human sign-off, also called human-in-the-loop, is a pause before an action that changes something. The run waits until a named person approves or rejects that exact action.

The steps, in order.

  1. 1 · ListList the tools this one task needs. Leave the rest off.
  2. 2 · EffectMark each tool read (looks something up), draft (prepares something no one else sees yet), or act (sends, files, deletes, pays or changes access).
  3. 3 · AccessGive each tool the least access it needs. A tool that only reads gets read-only access.
  4. 4 · ApproverFor each act tool, name who approves it.
  5. 5 · EnforceEnforce the rules in your app and in the system the tool touches. A sentence in the prompt doesn't count.
  6. 6 · RecordKeep a record of what was asked for, who approved it, and what ran.

Example: made up to show the idea.

The support assistant answers questions from Northline Desk's sample docs. Say you give it four tools for one task, "help with an export problem":

Tool Effect What happens
search_docs read Runs alone, and is logged
lookup_account read Runs with the customer's own access
create_ticket draft, then act Drafts alone; filing waits for the support person on duty
send_email act Not on this task's list

A customer writes: "My export only goes back two years. Please open a ticket."

  1. The assistant searches the docs and finds the export page: the file covers the last 24 months.
  2. It looks up the account.
  3. It drafts a ticket that cites the export page.
  4. The run pauses. The support person sees the exact ticket fields, approves, and your app files it. The pause is one more step in the loop from Agent loop.
  5. One retrieved document is a pasted note that says to email the admin password. The model proposes send_email. Your app refuses, because that tool isn't on the list, and the run carries on without it. Why the note can try this: Prompt injection.

If the tool, then what

If the tool Then Who signs off
reads what this user may already see let it run; log it No one
prepares a draft no one else sees yet let it run; show the draft No one until it's sent or filed
sends, files, deletes, pays or changes access pause and show the exact inputs A named person allowed to do it themselves, not the requester
isn't needed for this task leave it off the list No one
reads someone else's private data run it with the user's own access, not a broad agent account No one, and the system that owns the data checks access

2 Why it matters

Cost

A wrong refund or a sent email costs more to undo than a pause costs to approve.

Quality

The approver sees the exact fields, so a wrong account or a wrong address is caught before it lands.

Risk

OWASP, LLM03:2026 Excessive Agency names three causes of an agent doing too much: too many tools, too much access, and too little sign-off. The table cuts all three: leave tools the task doesn't need off the list, give each tool the least access, and make act tools wait for a person.

3 How to apply · try today

Take one agent or one AI model setup that has tools. Write each tool on a line, mark it read, draft or act, and write the name of the person who approves each act tool. Delete any line the task doesn't need.

Common mistake

Writing "ask before sending" in the prompt and calling it a permission. The model can still propose the call. The rule has to live in the code that runs the tool, or in the system that owns the data. Anthropic, Configure permissions says permission rules are enforced by Claude Code, not by the model.

Self-check

Filing a ticket alerts the support team. Where should the "wait for approval" rule live?

Self-check

Which tool can usually run without a person's OK?

Self-check

The person on duty approves a ticket. What should the approval screen show?

Next: checks on what goes in and out, and limits that stop a run. Guardrails.

Want the why? Understand it · 6 min, optional

Questions

Doesn't asking a person every time slow everything down?
Ask only for act tools, and show exactly what will run. Reads and drafts don't wait.
What if no one answers?
Treat no answer as no. The run stays paused or stops, and the action doesn't run.

Next card: Guardrails →