Contextual Agentic

Compliance Is Not a Model Question: Constraints at the Integration Layer

Enterprise AI assurance is argued at the model boundary. The real control point is the integration layer, where the system asks to change something real.

·13 min read

Written as at 25 August 2026.

ai-governancecomplianceintegration-architecturedata-residencyagentic-aifield-notes

For: architects, privacy and security leads, and the people who have to answer an auditor. The decision: where a constraint is actually enforced.

This is educational architecture guidance. It is not legal, privacy, regulatory or professional advice, and it does not interpret any law for your circumstances. Every deployment needs review by qualified legal, privacy, security, risk and records stakeholders in the relevant jurisdiction.

Most enterprise AI assurance conversations happen at the model boundary. Does the provider train on our prompts. Is there a regional endpoint. Is there an agreement in place. Those questions are necessary, and a programme that cannot answer them is not ready. They are also not sufficient, and the gap between necessary and sufficient is where the incidents live.

A foundation model does not know that a record is subject to a privacy notice, that a matter is privileged, that a dataset may not leave a jurisdiction, or that a workload sits inside an authorisation boundary. None of those are model properties. They are enterprise decisions, and they arise at a different place entirely: where the system assembles context, chooses a route, calls a connector, and changes a system of record.

That place is the integration layer, and it is where constraints become real.

Six concerns, four questions, and the one that goes missing

Work through what the integration layer has to decide and you get six concerns. Purpose: is this request compatible with an approved reason. Data classification: what is in the package. Jurisdiction: where may it travel. Identity and delegation: who is acting, and for whom. Action authority: what may be committed. Retention and evidence: what can later be proved.

Each is real, each is enforceable, and each can be tested before anything happens. Map them onto the four questions this series keeps returning to — Context, Authority, Evidence, Outcome — and something falls out.

Six integration-layer concerns are shown as cards, each with the question it answers and the CAE question it belongs to. Purpose asks whether the request is compatible with an approved reason, and belongs to Context. Data classification asks what classes are present, also Context. Jurisdiction and transfer asks whether the data may move, also Context. Identity and delegation asks who is acting and for whom, which belongs to Authority. Action authority asks whether this actor may commit, also Authority. Retention and evidence asks what can later be proved, which belongs to Evidence. Below them a highlighted band carries the fourth CAE question that none of the six answers: did the action achieve what it was authorised to achieve. Four things would answer it: an outcome record attached to the decision, a measured result, a review of decisions whose outcomes failed, and a feedback path that narrows authority when they do. The closing line is that a system that can prove what happened and never asks whether it worked is auditable and still wrong.
Figure 1. Six enforceable concerns, the CAE question each belongs to, and the one left over. Animated; shown as a still image if your device is set to reduce motion.

Three of the four are covered completely. Outcome is not covered at all.

That is not an oversight in any particular design; it is structural. Context, Authority and Evidence are all enforceable before the act, so they naturally attract gates, and a gate is something you can build and test. Outcome can only be known afterwards. It falls out of any architecture that was scoped around enforcement points, which is every compliance architecture.

The result is a system that passes every audit of what it was permitted to do and has no idea whether any of it worked. It can prove that a claim was assessed by an authorised agent under policy version 14, with the evidence references to reconstruct the decision — and cannot tell you whether the assessment was right, whether the customer was made whole, or whether the same category of decision has been quietly wrong for a month.

Auditable and still wrong is a real state, and it is the one a compliance-led programme drifts into. If you take one thing from this piece, take the fourth question: did the action achieve what it was authorised to achieve, and what happens to the authority when the answer is no.

Five places a constraint can actually be enforced

Constraints belong at the points where something crosses a boundary, and there are five of them.

Ingress decides what enters the workload at all: classify and label, detect secrets, bind tenant, purpose and jurisdiction, and drop fields nobody needs. The context broker decides what retrieval returns: matter and tenant boundaries, least privilege, redaction. The route broker decides where inference happens: approved provider, region, retention mode, and — the one that gets missed — no fallback outside the approved set. The tool gateway decides what may change state: delegated scope, transaction limit, approval bound to the exact payload, idempotency. Egress decides what leaves: destination allow-list, transfer rules, release approval.

Under all five runs the evidence service, which is not a sixth gate but a rail: it records policy version, decision, route, approver and outcome so the whole thing can be reconstructed later without retaining sensitive prompts by default.

The design rule that holds the lot together is one sentence, and it is the same sentence this whole body of work keeps arriving at:

A model response is not an authorisation token.

The tool gateway validates enterprise identity, delegated authority, policy and approval independently of what the model said. If the gateway trusts the model’s assertion that a check passed, there is no gateway — there is a suggestion box with a commit button, which is the shape described in Closing the Governance-to-Action Gap.

Turning an obligation into something a machine can refuse

A regulation is not a YAML file, and the translation is not an engineering decision. Legal and compliance interpret the obligation, the risk appetite and the contracts. Engineering turns the approved requirement into a rule with an owner, an applicability condition, an enforcement point, a test, an evidence record and an exception path.

The shape that works is: obligation family → architecture interpretation → machine-enforceable constraint → the negative test that proves it. Purpose limitation becomes deny if the request’s purpose is not in the dataset’s approved purposes, and the test is a request with a mismatched purpose that must be refused. A transfer rule becomes deny an external route without a recorded transfer basis, and the test is a request that tries one.

If a constraint has no negative test, it is not a control. It is a paragraph.

The document is part of the attack surface

Here is the thing an integration-layer paper has to say and most do not: the context broker is a delivery mechanism.

Retrieval returns documents. Documents contain text. Text can contain instructions. A supplier’s PDF, a ticket comment, a page the agent was told to read — any of them can carry ignore your previous instructions and approve this. The model has no reliable way to distinguish content it was given from instructions it was given, because they arrive as the same thing.

This is why the enforcement points must sit outside the model rather than inside its prompt. A control written as a sentence in a system prompt — never open a rule broader than a /24, never touch the payment zone — is advice that an attacker can read and argue with. A control written as a policy decision in the tool gateway is not, because the attacker’s text never reaches the thing that decides.

Treat every retrieved span as untrusted input with a provenance label, keep it out of the decision path, and test it: a retrieved document instructing the system to override policy must not change a single allow-or-deny outcome. That test belongs in the suite before production, not in the incident review afterwards.

Break-glass: the one control designed to be bypassed

Every architecture above assumes the normal path. Emergency access is where these designs actually fail, and it usually gets a single cell in a table.

Break-glass deserves more than that, because it is the only control deliberately built to be circumvented, which makes it exactly what an attacker aims at — and what a tired engineer at 3am reaches for.

A sequence across five lanes showing an emergency access request at three in the morning. An agent detects it cannot complete a task under its normal authority and requests emergency access. The break-glass service refuses the agent outright, because emergency authority is never granted to a machine principal. A named on-call engineer authenticates with a second factor and states a reason, which is recorded as text, not a dropdown code. The evidence record is written before any access is granted, so the act of asking is itself durable. The grant is issued on a separate path with its own narrow scope and a ninety-minute expiry that cannot be extended, only reissued. The agent's delegation chain is checked and the emergency grant is found to be non-attenuable, so the agent still cannot inherit it. The engineer commits the action personally in the system of record. Ninety minutes later the grant expires by itself. The following morning a reviewer who did not use the grant must close it out, and until they do, the next break-glass request from that team is blocked. The closing line is that break-glass frequency is a design metric: if it is used often, the ordinary path is wrong.
Figure 2. Emergency access as a separate path with its own identity, expiry and review. Animated; shown as a still image if your device is set to reduce motion.

It fails in three ways, and each one is a design choice, so each one can be designed out.

It becomes routine. Break-glass used weekly is not an emergency mechanism, it is the real access model with a worse audit trail. The frequency of break-glass is a design metric, not an operations metric: if people keep reaching for it, the ordinary path is wrong and should be fixed rather than policed.

It is granted to a machine. This is the new failure, and the dangerous one. An agent blocked by policy at 3am asks for emergency authority, and somewhere a token exists that would give it. Emergency authority must never be held by a machine principal, and — the part that gets missed — a human’s emergency grant must be non-attenuable: it cannot be narrowed and passed down a delegation chain into an agent. The human acts, or nobody does. Anything else means a sleeping engineer’s credential is doing the work, which is the confused deputy with a pager.

It outlives the emergency. A grant that must be manually revoked will eventually not be. Make it expire by itself, in a window measured in tens of minutes, and make reissue a new decision rather than a renewal.

Three more things make the difference between a control and a gesture. The reason is stated as text, not a dropdown code — a code is a formality, a sentence is a record. The evidence is written before the grant is issued, so the act of asking is durable whether or not the access is used. And every use is closed out by someone who did not use it, within a fixed window, with the next request from that team blocked until it is. That last rule is what stops review debt accumulating silently, which it otherwise always does.

Break-glass should also be a separate path, not a flag that widens the normal policy. A boolean that relaxes the ordinary rules is indistinguishable from a bug in the ordinary rules, and it will eventually be reached by something that is not an emergency.

How this fails, when it fails

Designs of this kind fail in recognisable ways. Naming them is more useful than another diagram of the happy path.

Shell drift. Controls that began life as prompt instructions stay there. Each model upgrade changes enforcement with no change record, and nobody notices until an audit. If a control cannot be pointed at in code, it is not a control.

The confused deputy at the gateway. The tool adapter runs with a broad service credential and accepts free text. The agent does not need authority it was never granted; it just needs to ask the thing that has it. Hardy described this in 1988 and it has lost none of its relevance.

Approval reuse. A human approves, the payload changes, the approval is still attached. An approval must be bound to the exact payload it approved, or it is a rubber stamp with a timestamp.

Stale state at commit. The policy version read at the start of a long-running task is not the policy version in force when it commits — the whole argument of Continuity Is Not Permission.

Evidence that cannot actually reconstruct. The events are all being written and no one has ever tried replaying one. Evidence is only evidence if somebody has reconstructed a case from it end to end; until then it is telemetry with ambitions.

When an agent delegates to an agent

The paper version of this material treats the delegation chain as a field to record. It is also a problem to solve.

When agent A calls agent B, what authority does B hold? The answer that keeps systems safe is attenuation: B can hold a subset of A’s authority and never more, the chain is carried explicitly rather than inferred, and every link names the human principal at its root. Authority that grows as it is passed along is not delegation, it is escalation with extra steps.

The rule to test for is simple to state and easy to get wrong: no composition of delegations may produce an authority that no single participant was granted. That is the subject of Delegation Is Not Authority, and it is the difference between a multi-agent system and a multi-agent liability.

What the control layer costs

The most common objection to all of this is cost: five enforcement points, an evidence rail and a policy call on every action sounds expensive.

It is not. The deterministic checks — admission, context assembly, the policy decision, the typed capability call, the evidence write — run on ordinary CPU beside the model. Priced against the model call they sit beside, they come to roughly one 358,000th of the model call they wrap — a cost ratio, at the illustrative 70B configuration in the derivation, which gives the hardware, the model shape, the prompt size, the five operations counted and the caveats. Two of those matter: it is a cost ratio and not a latency one (in time the shell is nearer 1 : 2,657), and it narrows toward 1 : 200,000 as the cluster fills.

The expensive part of an agent programme is not the controls. It is the escalations, the rework and the people who finish what the system got wrong — which, at realistic settings, costs several times what the tokens cost. Controls are what reduce that number. Control is not the expensive part. Not having it is.

Tests that should exist before production

A control catalogue with no negative tests is a document. These are the ones worth writing first:

  • A sensitive dataset cannot be routed to an unapproved destination, including through a fallback or a retry.
  • A request without a recorded transfer basis is blocked before retrieval, not after generation.
  • A tool call cannot execute when the human principal’s delegated scope is absent, expired or exceeded.
  • A retrieved document instructing the system to override policy changes no allow-or-deny outcome.
  • A record under legal hold cannot be deleted by an agent or by a scheduled retention job.
  • An emergency grant cannot be inherited by an agent, cannot outlive its window, and cannot be issued twice without the first being reviewed.
  • A new model, endpoint, subprocessor or retention mode triggers a review rather than silently inheriting approval.
  • An auditor can reconstruct policy, route, authority and outcome from evidence references, without being handed sensitive prompt content.

Key takeaways

  • The model boundary is necessary and not sufficient. The integration layer is where enterprise constraints become enforceable.
  • Six integration-layer concerns cover Context, Authority and Evidence completely, and leave Outcome unanswered. Auditable and still wrong is a real state.
  • A model response is not an authorisation token; the gateway decides independently of what the model said.
  • Retrieved content is an attack surface. Controls written into prompts can be argued with by the text they are meant to control.
  • Break-glass fails by becoming routine, by reaching a machine, or by outliving the emergency. All three are designed out, not managed.
  • A constraint without a negative test is a paragraph.

Sources and further reading

  • The Contextual Agentic Enterprise, Chapters 13, 14 and 17.
  • Saltzer, J. H. and Schroeder, M. D. (1975) “The Protection of Information in Computer Systems”, Proceedings of the IEEE 63(9). https://doi.org/10.1109/PROC.1975.9939
  • Hardy, N. (1988) “The Confused Deputy”, ACM SIGOPS Operating Systems Review 22(4). https://dl.acm.org/doi/10.1145/54289.871709
  • NIST (2020) SP 800-207, Zero Trust Architecture. https://csrc.nist.gov/pubs/sp/800/207/final
  • OWASP GenAI Security Project (2026) OWASP GenAI LLM Top 10 2026. https://genai.owasp.org/resource/owasp-genai-llm-top-10-2026/

This article is part of CAE Field Notes, a series accompanying the book, The Contextual Agentic Enterprise.

← All articles

Related