Authorization
Assign the minimum permission each tool needs.
Permissions are written beside agent construction and automatically synchronized to the dashboard. Dashboard changes remain useful for operations, but code stays the reviewable source of intended access.
Three effects
ALLOW
Execute immediately after all identity, policy and integrity checks pass.
DENY
Block before the tool implementation runs.
REQUIRE_APPROVAL
Pause and create a single-use human approval for the exact arguments.
Omitted
Remain default-denied.
Simple permissions
permissions = {
"customer.read": "ALLOW",
"email.send": "REQUIRE_APPROVAL",
"customer.delete": "DENY",
}Permissions with constraints
permissions = {
"invoice.refund": {
"effect": "REQUIRE_APPROVAL",
"constraints": {
"max_amount": 500,
"allowed_currencies": ["USD"],
},
},
}Important: only use constraint fields supported by your deployed policy evaluator. An unknown or invalid constraint must fail closed; verify it in staging before production.
What appears in the dashboard
After application startup you will see the agent, discovered actions, descriptions, policies, decisions and approval requests without manually recreating tools in the dashboard.
Naming
Python name invoice_refund becomes action invoice.refund. Permission keys must match this normalized action exactly.