Privilege delegation occurs when one agent grants another agent the ability to perform actions on its behalf. This is necessary in many workflows but creates significant risk if not carefully controlled. Unrestricted delegation allows a low-privilege agent to escalate its access by requesting delegation from a high-privilege agent.
Consider a research agent that needs to store results. It asks a database agent to write data. The database agent has write privileges that the research agent does not. If the database agent blindly executes any request from the research agent, the research agent effectively has write access despite its policy restrictions.
Safe delegation requires scoping. When Agent A delegates to Agent B, the delegation should specify exactly which actions are allowed, on which resources, for what duration, and under what conditions.
delegation:
from: "db-agent"
to: "research-agent"
actions: ["db.insert"]
resources: ["results_table"]
expires_after: "5m"
max_invocations: 10
This delegation allows the research agent to insert rows into a single table, for five minutes, up to ten times. Any request outside this scope is denied.
Delegation should not be transitive by default. If Agent A delegates to Agent B, Agent B should not automatically be able to delegate those privileges to Agent C. Transitive delegation creates chains that are difficult to audit and easy to exploit. Require explicit opt-in for each link in the chain.
Every delegation event should produce an audit record. Authensor's receipt chain captures delegation grants, delegation exercises, and delegation revocations. This allows security teams to trace the full delegation path for any action and identify patterns of misuse.
Privilege delegation is a necessary feature of multi-agent systems. The key is to make it explicit, scoped, time-limited, and fully auditable.
Explore more guides on AI agent safety, prompt injection, and building secure systems.
View All Guides