title: "Define Agent Permissions and Human Approval Rules | XDALC" description: "How to define clear permission boundaries, transaction approval gates, and enforceable human oversight for agents." heading: "Define Agent Permissions and Human Approval Rules" content: "
Document type: Implementation guidance. Framework reference: XDALC-V001.
\nThe procedures and examples below are proposed XDALC implementation guidance. They do not introduce a certification scheme or claim that a particular deployment has passed an evaluation.
\nResponsible autonomy requires a clear answer to a practical question: what may this agent do, with which resources, on whose behalf and under what conditions? XDALC's commitment to human primacy becomes meaningful when people retain effective control over consequential actions without having to supervise every harmless step.
\nThis article proposes a permission model for a travel assistant. Its categories are illustrative deployment choices, not universal thresholds or a published XDALC API. A different application should choose boundaries according to its actual capabilities and consequences.
\nA tool being available means the system can attempt an operation. It does not establish that a particular user may request it, that the agent may perform it now or that all possible parameters are acceptable. Authorization should bind the actor, operation, resource and relevant conditions.
\nOWASP's guidance on excessive agency identifies excessive functionality, permissions and autonomy as sources of risk. It recommends restricting available functions and downstream privileges. In an XDALC integration, this supports placing enforceable boundaries around an agent's delegated role.
\n| Operation | Example boundary | Approval behavior |
|---|---|---|
| Search public journeys | Approved search service and agreed destinations | Proceed within the task |
| Prepare an itinerary | Private task workspace | Proceed without another confirmation |
| Read passenger details | Authorized passenger record and necessary fields | Require an existing valid access grant |
| Book a journey | Specified offer, passengers, currency and maximum total | Require transaction-specific approval in this example |
| Send an itinerary | Verified recipient and approved content | Follow the communication authorization for this task |
| Change account security | Outside the assistant's role | Unavailable to the agent |
The matrix avoids two extremes: an unrestricted agent and a system that repeatedly asks permission to perform already authorized research. A valid authorization remains usable within its scope until it expires, is consumed or is withdrawn.
\nA useful booking approval presents the passengers, route, dates, fare conditions, currency, total cost and payment method reference. It makes the material consequences understandable. “Allow the assistant to continue” is too vague when the next action is a nonrefundable purchase.
\nBind approval to the exact proposed transaction. If the fare increases, the passenger list changes or a different payment method is selected, reevaluate the authorization. State explicitly whether a small price variation is permitted; do not silently infer tolerance from the user's willingness to travel.
\nThe following is pseudocode for an application control, not a complete booking implementation:
\nreceive proposed_booking\nvalidate fields and identify the authenticated user\nconfirm user access to each required resource\nload approval from the trusted approval service\ncheck approval is current, unrevoked and bound to this proposal\nrecheck current price and material booking conditions\nreserve a unique transaction key and consume approval atomically\nsubmit booking using provider-supported duplicate protection\nrecord the confirmed result or an explicitly unknown outcome\nThe model must not be able to grant itself approval by generating a JSON field such as approved: true. Application services should obtain authorization from an authenticated person or an established policy mechanism. Where providers cannot guarantee duplicate protection, define reconciliation and retry rules before enabling real purchases.
Recheck permission immediately before execution. A person can withdraw an unused approval. An agent restarting after a timeout must not assume a purchase failed: it should reconcile the transaction status before retrying. If a tool delegates work to another service or agent, the delegated authority must remain within the original scope.
\nProvide an intervention control that stops new actions and handles queued work. Explain that stopping an agent may not reverse an already confirmed booking. Recovery procedures should distinguish cancellation, refund, correction and operations that cannot be undone.
\nTest a changed price, a revoked approval, a duplicate request, an unauthorized passenger record and a restart after an ambiguous response. Verify that the server rejects disallowed operations even when the assistant asks for them. Also verify that ordinary itinerary preparation remains efficient.
\nIn XDALC, autonomy is the ability to perform useful work inside a legitimate mandate. Permission controls make that mandate enforceable, while clear approval interfaces preserve informed human choice.
" license: "https://creativecommons.org/licenses/by/4.0/"