AgentKey · Access Control

AI Agent Permissions

AI agent permissions are the rules that define which resources and actions an AI agent is allowed to use, optionally constrained by parameter-level conditions such as amount limits or allowed domains.

By AgentKey · Last updated 2026-09-01

The structure of a permission

A permission matches a resource and an action and carries a decision: allow, ask, or deny. Conditions are parameter checks evaluated against the arguments of the call. When a condition fails, its on_fail setting decides whether to deny or ask.

json
{
  "resource": "gmail",
  "action": "send_email",
  "decision": "allow",
  "conditions": [
    { "field": "to_domain", "operator": "matches_domain", "value": "yourcompany.com", "on_fail": "deny" }
  ]
}

Condition operators

  • Numeric: lte, lt, gte, gt for amount and size limits.
  • Equality: eq, neq for exact matches.
  • Membership: in, not_in for allowed or blocked lists.
  • Strings: starts_with, not_contains for prefix and substring rules.
  • Domain: matches_domain for email and URL allow-listing.

Default deny

With no permission configured for a resource and action, the default is deny. This keeps the agent within an explicitly granted surface rather than an explicitly blocked one, which is the safer starting point for autonomous systems.

Where AgentKey fits

AgentKey permissions are plain JSON stored per agent and evaluated on every call. Conditions run against the request arguments at authorization time, so the same tool can be allowed for one call and denied for another.

Frequently asked questions

How do developers restrict AI agent permissions?

By writing a permission per resource and action with a decision of allow, ask, or deny, and attaching parameter conditions such as amount lte 100. Conditions are evaluated against the call arguments at runtime.

What happens if no permission is configured?

The default is deny. The agent can only do what is explicitly allowed, which is the safer baseline for autonomous systems.

Related topics