Skip to main content
Multi-agent pipelines hand authority downward. Almost every implementation copies the parent’s permissions to the child instead of subdividing them, so a pipeline of five agents each holding a £10,000 limit is a pipeline with a £50,000 limit that nobody agreed to. Two properties stop that, and both are enforced rather than documented.

Attenuation is refused, not warned about

A delegated grant may be narrower than its parent on every dimension and wider on none: scope, window, budget, conditions, enforcement mode.
The API refuses to issue one that exceeds its parent. Not a warning, not a lint rule, not a line in a design document. The call fails and the pipeline does not start, so an engineer finds out at development time rather than an auditor finding out at quarter end.
A constraint that can be worked around under deadline pressure is not a constraint, it is a preference. This is why it lives in the issuer rather than in review.
A parent must opt in by setting delegation_policy: "attenuating". The default is none, which means an agent cannot delegate at all. Authority to hand authority onward is itself an authority.

Spend debits every ancestor

Attenuation alone is not enough. Give every child £5,000 under a £25,000 parent and ten children still spend £50,000. So when a leaf spends, the debit lands on the leaf and on every grant above it to the root. Two things follow:
  • The root’s ceiling is the tree’s ceiling. However the work is divided, the total is bounded by what the accountable human signed for.
  • An exhausted ancestor refuses a child that still has room. This looks wrong the first time an engineer sees it and is exactly right. The child’s own allowance was never the operative limit.

Revocation reaches down

Revoking a parent revokes its children. The part usually skipped is the interval: between the revoke and the last child stopping there is a window, and actions may have been permitted in it. “We revoked at 14:02” is not an answer to “what did it do at 14:03”. The record answers it.

Recording a delegation in the trajectory

Delegation is also a step worth recording even where no new grant is minted, so the trajectory shows the handoff:

Next

Delegate authority

The call, and what to check afterwards.