Skip to content

Give every agent job one owner and one rulebook

Every door into the product runs the same job, same rules.

The product describes each thing the agent can do as a user job, like “send this campaign to these recipients,” with one owning team, clear permissions, and a shared meaning of “done.” The same rules apply wherever the request comes from.

Why the pattern matters#

One team ships a send tool, another ships recipient search, and a third adds both to the agent. Each tool works, yet nobody can say what a user has actually authorized. Seeing a feature, being allowed to use the feature on this record, and having approval are three separate checks.

When to use the pattern#

Use the pattern when

  • Several teams contribute tools to one agent.
  • The same action can come from the product’s own app, an outside AI tool through MCP, or a background rule.
  • Features roll out behind flags, or a tool’s behavior changes over time.

Skip the pattern when

  • A team would use one broad grant like “customer management.” Split reading, preparing, changing, and messaging.
  • A team is adding a tool to fix what’s really a missing permission, an unclear proposal, or a misleading receipt.

Three checks, not one#

A feature flag says whether a capability is turned on for this account. A permission says whether this actor may affect this record. An approval records agreement to one proposal. None can stand in for the other two, and all three are checked again when the agent acts, whether the request came from the product’s own screen, MCP, or a schedule.

What was true earlierWhat the product checks at execution
The capability was visibleWhether the capability is still available under the current rollout
The proposal was approvedWhether the change about to run still matches that proposal
The actor had write accessWhether the actor’s current permission still covers the change
The request named an accountWhether the signed-in identity actually owns that account
A background rule started the runWhether the rule’s standing grant covers this action now

In real products#

What each product documents, strongest example first.

Sources checked September 28, 2026.

Checklist#

Yes-or-no checks for a design review.

  • The capability is named as a user job, with one owning team.
  • The contract lists what the capability may read and what the capability may change, per workspace, role, and record.
  • Reading, preparing, changing, and messaging outside the product are separate grants.
  • The contract says which actions need a fresh approval and what invalidates an old one.
  • Limits are written down: records, cost, duration, audience.
  • “Done” means the same thing to every team that contributes a tool.

Try it on your product

Make a permission matrix

Pick three capabilities your agent has or will have. For each, fill in one row: which objects it can touch, read or write, whose connection it uses, what triggers it, and what happens when access is revoked mid-run. Every blank cell is a decision nobody has made yet.

Deep dive#

Deep dive · 5 min readYour product through MCP

MCP moves where a request starts, not who owns the operation. The product still resolves the account, checks permission, and returns a result the host can’t misread.

Next patternBe honest about what undo can undo

Undo is a new action, not a time machine.