Authorization for AI agents
Know which agents act for your customers.
Behest verifies every AI agent action against your policy before it reaches your systems.
Decides on structured actions. Never reads prompts.
{
"agent": "billpay-assistant",
"on_behalf_of": "customer_8f21",
"action": "transfer.create",
"amount": 4200,
"decision": "deny",
"reason": "exceeds daily transfer limit (2000)"
}
How it works
Your policy decides. Behest enforces it on every action.
Define your policy
List the actions agents may take and the limit on each. Anything not listed is denied. You can change the policy at any time.
# Actions not listed here are denied.
version: 1
actions:
bill.pay:
allow: true
transfer.create:
allow: true
max_per_day: 2000
profile.update:
allow: false
Customer connects an agent
The bank starts the flow and shows the consent screen. The customer sees exactly what the agent may do and approves it. The agent never gets the customer's password.
Every action gets a decision
Before the agent acts, it asks Behest. Behest checks the agent, the customer's approval and your policy, then returns allow or deny with a reason. Every decision is logged.
# agent and customer fields omitted
POST /v1/decisions
{ "action": "bill.pay", "amount": 142.80 }
200 OK
{ "decision": "allow" }
POST /v1/decisions
{ "action": "profile.update" }
200 OK
{ "decision": "deny", "reason": "profile.update is not allowed by policy" }
Built for both sides
For businesses
- You own the policy. Behest enforces it and never changes it.
- Every agent action is checked before it runs, and logged with its reason.
- Works for people acting on someone's behalf too, like a caregiver or an accountant.
For agent providers
- Integrate once. Work with every business on Behest.
- No custom integration for each bank.
- Know whether an action is allowed, and why, before your agent runs it.
How Behest compares
API keys and OAuth scopes say who may call an API. They don't decide on each action.
| API keys | OAuth scopes | Behest |
|---|
Questions
Do you read the agent’s prompts or conversations?
No. Behest only sees structured actions, like transfer.create with an amount. It never sees prompts, chats or model output.
Who decides what an agent is allowed to do?
The business, through its policy. Behest enforces that policy and does not change it.
What happens when an action is denied?
The agent gets a deny with a reason, so it can tell the customer or stop. The business gets a log entry for the decision.
Does this work for humans acting on someone’s behalf?
Yes. A caregiver, assistant or accountant goes through the same connect flow and the same policy checks.