Agen.co policy engine · Generally available

Should this agent take this action, right now?

The usual question is “can this agent use this tool?” Agen.co’s policy engine looks at each call: which agent, which tool, what it’s asking to do, and when. Then it allows, steps up, holds for a person or denies.

The verdict comes back in under 30ms. A held call then waits for its approver.

<30ms
per-action verdict
150+
governed connectors
1,000+
governed tools
Identity and access infrastructure trusted by
SiemensPalo Alto NetworksNVIDIACrowdStrikeLSportsSamsungSoftdocsMorphisecTangoTalonFlowcodeFireblocksBalanceActiveFenceTomorrow.ioHint HealthHuntersImubitMaterializeCycodeTalon CyberPermisoVial
The problem

“Allowed” covers more than you think.

  • GmailYes to reading mail is yes to sending it and deleting it for good.
  • StripeYes to a small order is yes to a large one.

That’s the trouble with allow or deny on a whole tool. The risk isn’t in the tool. It’s in what the agent does with it, and when.

So the decision has to happen on each call, in the path, fast enough that nobody notices. That’s what the policy engine does.

How it works

One call at a time.

01 · The same tool, two different verdicts

Same agent. Same tool. A different verdict.

A procurement agent buys ten design seats on Stripe. Allowed, no waiting. Then it tries the annual contract with the same tool, and the call stops and waits.

A finance approver gets it on their phone and approves it. Both calls end up in Monitoring next to each other, with their arguments and their verdicts.

A $30,000 Stripe payment held for a finance approver on their phone
02 · Every action gets its own answer

Same connector, three verdicts.

Gmail has tools for reading, sending and deleting. Add an exception so the support agent can use the read tools, and leave delete under the baseline.

Test it: listing is allowed, sending is a step-up and deleting is denied. Then watch the same three calls arrive in the live log.

Live log with three Gmail calls from the support agent: delete denied, send stepped up, list allowed
03 · The same call, at a different moment

Allowed at 2PM. Stepped up at 2AM.

A Salesforce export at 2:14 in the afternoon is allowed. The same export at 2:14 in the morning falls outside work hours, so it's a step-up.

The user gets asked on their phone, didn't start it, and denies it. The log keeps the verdict, the policy behind it, the IP and who was acting.

  • Work hours
  • Geo-fencing
  • User and group
  • Agent
  • Tool
Monitoring log with the same Salesforce export allowed at 2:14 PM and stepped up at 2:14 AM
04 · Every verdict comes with its reason

Trace a deny back to its rule.

Open a blocked call and you get the rule that decided it. Rules are checked in order: exceptions, then baselines, then the default. Higher tier wins.

  • Exceptions
  • Baselines
  • Default

Replay the call with Test a call to see which tier matched, then change who's asking and watch the answer change.

Test a call trace showing the baseline rule that matched a denied BigQuery delete
05 · Write a rule in a sentence

Say it. Review it. Ship it.

Tell the Rule assistant what you want: "Don't let Claude Code merge pull requests on GitHub, except the release-eng group." It proposes an exact rule for you to review.

Create it, and the next merge attempt through the gateway is blocked, with the new rule named in the log.

Rule assistant turning a sentence into a proposed deny rule for GitHub merges
Try it yourself

Walk through the policy engine on a demo tenant.

Open a held payment, give Gmail’s tools their own answers, trace a deny to its rule and write one in a sentence. Click through it yourself.

The policy engine in action

Five walkthroughs, one question.

Short narrated walkthroughs on our demo tenant. Each one follows a real flow in the product.

The verdicts

More than yes or no.

Discovery shows you which agents are connected. The MCP gateway is where their calls run, and the policy engine decides each one. Both are generally available.

  • allowThe call goes through and gets logged.
  • step-upThe user confirms before it runs.
  • human-in-the-loopThe call waits for an approver, like the finance team.
  • maskSensitive fields are masked before they reach the agent.
  • denyThe call is blocked, and the log names the rule that blocked it.
Book a demo

Can it use the tool? Sure. Should it take this action?

See the policy engine decide on calls like yours, in under 30ms.

We’ll reply within one business day.

Protected by reCAPTCHA. The Google Privacy Policy and Terms of Service apply.

  1. 01
    Bring your agents
    Tell us which agents and tools your teams are connecting.
  2. 02
    See calls decided
    Watch the policy engine allow, step up, hold or deny calls like yours.
  3. 03
    Trace any verdict
    Open a decision and see the rule behind it.
FAQ

Questions, answered.

What does the policy engine decide on?
Each call through the Agen.co MCP gateway: which agent, which user and group, which tool and what the call is doing, plus context like the time and where the request came from. The walkthroughs show rules for a single tool (Gmail delete), for a group (data-platform), for work hours and for one agent (Claude Code merging pull requests).
How fast is it?
Every action gets a verdict in under 30ms.
What happens when a call needs a person?
For a step-up, the user confirms before the call runs. A call routed to an approval flow, like finance approvers, waits for them, and the decision is recorded.
How do I know why a call was denied?
The log names the policy that decided it. Open it, then replay the call with Test a call to see which tier matched: exceptions, baselines or the default. Higher tier wins.
Do I have to write policies in code?
No. You can build rules in Policies, or describe one in a sentence to the Rule assistant and review what it proposes before you create it. Nothing is saved until you confirm.
Is this available now?
Yes. The MCP gateway and its policy engine are generally available.