Decision caching for agent actions

A cached ALLOW is safe only for a precisely bound principal, grant, action, target, context and policy version within a justified freshness window.

01 / The operating case

What changes in a real workflow?

An agent may read a static document repeatedly, but it must not reuse the same cached allow to transfer money after a parent grant is revoked.

Trace the authority boundary
  1. 01Authority origin
  2. 02Task and grant
  3. 03Current decision
  4. 04Observed outcome

02 / Decision contract

What the executor must check

Define the cache key, TTL, invalidation channel and fail-closed behavior; bypass cache for high-impact actions or volatile context.

InputPrincipal · task · action · target
DecisionGrant ancestry · policy · current state
ResultEnforce · record · verify outcome

Architecture review / negative test

Make the boundary testable.

A cache key must include every decision-changing fact or a stable reference to it. Classify inputs by volatility: principal and operation may be stable for a task, while revocation, incident ownership and target state can change between calls. A high-impact executor may reasonably require a fresh check despite a cache hit elsewhere.

03 / Failure and evidence

What goes wrong, and what can be proven?

Failure mode

A broad key such as tool name lets one approved target authorize a different target.

Evidence to retain

Record cache hit, originating decision, policy version and revocation lag in traces.

04 / Canonical scope

Why this reference stands alone

Context-aware authorization defines the decision inputs; this page owns their caching and invalidation mechanics.

Architecture field test

A cached decision is a bounded claim

Which facts may change before reuse?

Decision path for this question
  1. 01Hash decision-relevant inputs
  2. 02Set short validity by consequence
  3. 03Check revocation and context epoch
  4. 04Compare final request before commit

Work the boundary

A diagnostic agent was allowed to read incident I-42 at 10:00. At 10:01, ownership moves to another team. Reusing the cached ALLOW at 10:02 is unsafe unless the cache key or invalidation path represents the changed assignment.

Decision contract and failure case
Required factsPrincipal, grant and policy version, task, operation, target, normalized parameters, context epoch and expiry.
Allow only whenEvery bound input still matches and no invalidating event has arrived within the defined freshness policy.
Deny whenAn approval, resource owner or parent grant changes while a positive cache entry remains usable.

Break the assumption

Change one field at a time: amount, owner, policy version, ancestor revocation and task status. Measure the oldest accepted decision under event delay.

Design tradeoff

Cache hit rate competes with context freshness. High-impact writes should use very short or no positive caching, while low-risk stable reads can tolerate explicitly bounded staleness.

For a cached decision is a bounded claim, consult NIST NCCoE agent identity and authorization concept. This worked decision and negative test are ProofGrid analysis.

Continue with Revocation propagation.

Primary references

Read the underlying material

Architecture discussion

Choose one consequential action and make its boundary explicit.

Request a Conversation