Production Agentic AI: Permissions, Observability, and Kill Switches
Published
25 Sept 2026
I am a software engineer and AI practitioner, not a lawyer. Nothing in this post is legal or regulatory advice. It is written from the perspective of someone who has been building and governing AI systems in a regulated-industry production context. Speak to a specialist in technology and AI law if your regulatory exposure is significant.
Staging a production-ready agentic AI system is a solved problem — at least in the sense that there are well-documented patterns for it. The human-in-the-loop governance post covers the architecture of approval gates, least-privilege scoping, and audit logging that you should build before you ship. The AI governance pack post covers the documentation a CTO needs before a board or regulator asks to see it.
What I want to address here is the harder problem: what happens after the agent is live in production, handling real tasks against real systems, at a volume no staging environment prepared you for.
That shift changes the governance question in a meaningful way. Pre-deployment governance is largely about whether the agent will behave correctly. Production governance is about how you know if it stops behaving correctly, how quickly you can act when it does, and whether the controls you built actually hold up under real operational conditions.
Those are engineering and operational problems as much as policy problems. And they are problems that the existing literature on agentic AI governance — which is mostly written from a pre-deployment perspective — does not address as specifically as they deserve.
What changes when an agent goes to production
There are three things that change materially when an agentic system moves from staging to production, and each of them has governance implications.
Volume. A staging agent processes a handful of test tasks. A production agent may process hundreds or thousands of tasks per day. Blast radius scales with volume: an agent making one unexpected call per thousand tasks that nobody catches produces one unexpected action per day at 1,000 tasks/day — and a hundred unexpected actions per day at 100,000 tasks/day.
Novelty. Real users and real data create inputs your test cases did not anticipate. The agent encounters edge cases that no one designed approval flows for, calls tools in combinations your staging tests did not exercise, and operates on data that violates assumptions built into the task design. This is not a failure of staging — it is the irreducible reality of production.
Operational independence. Many production agentic systems run without a human watching in real time — on event triggers, scheduled tasks, or webhook-driven flows. The governance model that assumes a human reviewer is available to catch problems quickly is not the production model for these deployments. You need automated controls that do not depend on a human being present.
Together these mean that production agentic governance has to be primarily automated and architectural — not primarily procedural. You cannot review every action. You have to design systems that constrain, observe, and can halt agent behaviour without requiring constant human attention.
Permission architecture for production: beyond OAuth scopes
The HITL governance post covers least-privilege access at the MCP and OAuth scope level: give the agent the minimum permissions required for its task, scope tokens narrowly, and do not give write access to systems the agent does not need to modify.
That is necessary but not sufficient for production. OAuth scopes operate at the identity and authorisation protocol layer — they define what the agent is permitted to do in a broad sense. Production permission architecture adds another layer: application-level tool allowlists that constrain what the agent may actually invoke within its authorised scope.
Tool allowlists
A tool allowlist is a defined set of specific tools the agent is permitted to call for a given task type or workflow. It is enforced at the agent host layer, not at the MCP server or OAuth layer.
Consider an agent with an MCP server connected to a CRM. The OAuth token might have records:write scope. The allowlist for a "draft follow-up email" workflow might permit: crm.get_contact, crm.get_recent_interactions, email.create_draft. That is it. The agent cannot call crm.delete_record, crm.bulk_update, or email.send — not because the OAuth token doesn't cover them, but because the allowlist for this workflow does not include them.
The allowlist is enforced by the agent runtime before the MCP tool call is dispatched. If the agent attempts to call a tool outside its allowlist, the call is rejected and the rejection is logged as an anomaly.
This pattern matters for several reasons:
- It constrains blast radius within the OAuth boundary. The OAuth scope is usually broader than any specific workflow requires —
records:writewas granted because the agent platform needs it for some tasks, not because every task needs it. - It makes expected behaviour testable. You can write regression tests against the allowlist rather than against the full OAuth scope.
- It provides a clear signal when something is wrong. An allowlist violation is an anomaly that can trip a circuit breaker or alert without any human making a judgement call about whether the action looked suspicious.
Allowlist maintenance is governance
The allowlist should be a documented artefact — not hardcoded in application config where it can be quietly expanded. Each change to an allowlist should go through a review process, be associated with a named approver, and be recorded in the AI risk register described in the governance pack post.
The failure mode to prevent is "allowlist creep" — gradual expansion of what the agent can do in a workflow, justified case-by-case, without anyone noticing that the cumulative blast radius has grown significantly since the original design. A quarterly allowlist review, where someone with accountability for the system looks at whether the current allowlist still reflects the minimum required for each workflow, is a reasonable operational control.
Immutable permission records
For regulated industries — financial services, health, gaming — you need a record not just of what the agent did, but of what it was permitted to do at the time. This means versioning allowlists and associating each action log entry with the allowlist version active when the action was taken. If something goes wrong and a regulator or court asks "what could that agent have done?", you need to be able to answer that question for the specific point in time when the incident occurred.
Observability: the production audit trail boards care about
Observability for agentic AI is one of those areas where existing tooling covers the infrastructure layer reasonably well but does not capture agent-level intent or tool-call semantics by default. Your APM tool will tell you the agent's API latency and error rate. It will not tell you what tools the agent called, in what sequence, on what data, to produce what outcome — which is the information that actually matters for governance.
The observability architecture for a production agentic system needs three distinct layers.
Structured action logs
Every tool call the agent makes should produce a structured log entry containing:
- Trace ID — a unique identifier for the agent task that groups all tool calls in a single workflow execution
- Step sequence — the position of this tool call in the agent's action sequence for this task
- Tool name and server — what was called, on which MCP server
- Parameters — the exact arguments passed to the tool, sanitised for any secrets but not stripped of domain data relevant to the audit
- Result summary — the outcome of the call (success/failure, key return values), not the full response if it is large
- Timestamp and latency — when the call was made and how long it took
- Agent identity and version — which agent, running which model version, in which configuration
The log should be written to an append-only store that the agent cannot write to directly. An agent that can modify its own action log is an agent you cannot audit. In practice this means writing to a separate logging service, an immutable S3 bucket with object locking, or a logging SaaS — not to the same database the agent has write access to.
This connects to the AI governance pack's requirement for auditable evidence that governance controls were actually operating. "We had logging enabled" is not the same as "we have an immutable log of every action the agent took."
End-to-end task traces
Individual action logs answer "what did the agent do at this specific moment?" Task traces answer "what did the agent do across this entire workflow execution, and does it make sense?"
A task trace aggregates all action log entries for a single agent execution into a single queryable record with a shared trace ID. This is the structure that lets a human reviewer understand what the agent was doing — or lets an automated anomaly detector compare the observed action sequence against the expected pattern for this workflow type.
Distributed tracing tools (OpenTelemetry is the obvious choice, with LLM-specific semantic conventions that have been in development since 2024 and are still marked experimental) can be instrumented at the agent host layer to produce task traces automatically. The investment is worthwhile: a task trace is the unit of review for post-incident forensics, the unit of input for production evaluation, and the audit artefact that demonstrates the agent operated within its defined scope.
Behavioural baselines and anomaly detection
A log you never look at is not observability; it is data storage. The observability layer that actually protects against production failure is the one that compares current agent behaviour against a documented baseline and surfaces deviations automatically.
For each workflow type the agent handles, define a baseline:
- Expected tool working set — which tools does this workflow typically call?
- Expected action count range — how many tool calls does a typical execution of this workflow involve?
- Expected cost range — what does a typical execution cost in token and API terms?
- Expected latency envelope — how long does a typical execution take?
Deviations from the baseline — an unexpected tool call, an unusually long action sequence, a cost spike — should generate an alert and, above defined thresholds, should trigger the circuit breaker. The baseline is not a hard constraint (agent behaviour legitimately varies with input complexity) but it is the signal layer that separates normal variation from something going wrong.
This is the production equivalent of the development harness's spec-driven pipeline, which uses explicit scope documentation to prevent the agent from touching systems it has not been authorised for during development. In production, the behavioural baseline serves the same function: it defines what the agent is supposed to be doing, so deviation can be detected automatically.
Kill switches and circuit breakers
A kill switch is the governance control that most pre-deployment documentation mentions and most production deployments implement poorly. The common failure mode is a manual process — "if something goes wrong, someone disables the agent" — that depends on a human noticing, having the right access, and acting quickly enough to prevent further harm.
A production kill switch architecture should not depend on any of those three things.
Manual kill switches that actually work
A manual kill switch is a mechanism that immediately stops the agent from taking further actions, operable by a named set of people without requiring access to the agent's codebase or deployment infrastructure. The requirements:
Independence from the agent. The kill switch must be operable even if the agent is in the middle of an execution. It cannot be a config change that only takes effect on the next task pickup. It needs to be checked by the agent runtime before every tool call dispatch.
Named operators with tested access. The kill switch should have a defined list of people who can activate it and a tested runbook for doing so. "Anyone with AWS console access can flip the feature flag" is not a kill switch that works at 2 am on a weekend.
Fail-safe default. If the kill switch mechanism itself fails (the feature flag service is unavailable, the config store is unreachable), the agent should fail safe — not default to operating as if the kill switch is off. A production agent that cannot confirm its own operational status should not take actions.
Scope granularity. Where possible, kill switches should be granular enough to stop a specific agent workflow without stopping all agent activity. A customer-facing agent and an internal data processing agent should have independent kill switches so that an incident affecting one does not require shutting down the other.
Circuit breakers: automation at the boundary
A circuit breaker is a kill switch that trips automatically when a condition threshold is breached, without requiring a human to notice and act. Borrowed from distributed systems resilience engineering, the pattern works as follows:
- The circuit is closed (agent operates normally) while metrics stay within defined thresholds
- The circuit opens (agent is suspended) when a threshold is breached — error rate, cost rate, action volume, allowlist violation count, or a specific anomaly pattern
- While open, the agent's pending actions are queued or discarded (depending on the action type and reversibility); the circuit does not reset until a human explicitly resets it
- Half-open states (where a limited number of trial actions are permitted before full resumption) can be useful for lower-severity thresholds where automatic recovery might be safe
The circuit breaker is the control that makes an unmonitored production agent governable. An agent processing scheduled batch tasks overnight does not have a human reviewer watching in real time — the circuit breaker is the mechanism that stops it from causing unbounded harm if something goes wrong between monitoring sessions.
Circuit breaker thresholds should be documented and reviewed with the same rigour as the allowlist. Too sensitive and the agent is constantly suspended by normal operational variation; too permissive and the circuit only trips after significant harm has already occurred.
Rollback: what happens after the kill switch trips
Stopping the agent is the easy part. Rolling back what it has already done — or communicating that rollback is not possible — is the harder governance question.
For every action type in the agent's allowlist, you should have a documented rollback procedure:
- Reversible actions — database writes with a revert path, staged email drafts, queued records — should have an automated or semi-automated rollback capability. The rollback procedure should be tested in staging, not designed during an incident.
- Partially reversible actions — a sent email cannot be unsent, but a follow-up communication can be sent; an API call that created a record can often be reversed by a deletion call — should have a documented response that acknowledges the irreversibility and specifies the compensating action.
- Irreversible actions — any action that cannot be undone and whose effects cannot be compensated — should be documented as such in the AI risk register, and the circuit breaker thresholds for actions that include irreversible steps should be correspondingly tighter.
The HITL governance post addresses this for approval gates: an approval gate that surfaces reversibility risk to the reviewer is doing governance work. The production extension of that principle is a documented rollback capability for every action type, tested and ready before it is needed.
Production evaluation: continuous confidence, not point-in-time sign-off
Pre-deployment evaluation is about whether the agent behaves correctly on known test cases. Production evaluation is about whether the agent is continuing to behave correctly as inputs evolve, models update, and operational context changes.
The patterns that work in production are different from pre-deployment testing.
Shadow mode evaluation
Shadow mode runs the agent against live production inputs — real task triggers, real data — but does not execute the tool calls that would have side effects. Instead, it records what the agent would have done and compares it against the expected action pattern for that input type.
Shadow mode surfaces two types of issue:
- Behavioural drift — the agent is choosing different tool sequences or producing different outputs for inputs that previously produced stable results, indicating that something in the system (model version, context, available tools) has changed
- Edge case discovery — real production inputs include edge cases that test suites do not cover; shadow mode lets you observe how the agent handles them without risking a live action
Running shadow mode continuously (or on a sampled fraction of production traffic) provides a behavioural signal that is closer to the ground truth of production performance than any staging evaluation.
Action audits
A periodic human review of a random sample of completed agent task traces, scored against a rubric for expected behaviour. Action audits are the production equivalent of code review: not a guarantee of catching every problem, but a process that forces structured human attention onto what the agent is actually doing.
The audit rubric should be specific enough to be consistent across reviewers: "did the agent call only tools in the expected working set for this workflow?", "did the action sequence make sense given the task input?", "were the outputs within expected parameters?". A vague rubric produces inconsistent scores that are not useful as a governance signal.
Results from action audits should feed the AI risk register and inform adjustments to circuit breaker thresholds, allowlists, and the behavioural baseline.
Regression suites on every deployment
Every deployment that changes the agent's model version, system prompt, tool configuration, or allowlist should trigger a regression test suite before the deployment reaches production. The suite should cover the agent's most common task types and its most sensitive tool calls, with assertions on the action sequences produced — not just the final output.
This is table stakes for a production engineering team; the complication with agentic systems is that the test surface includes tool call sequences, not just text outputs. Frameworks that support agentic evaluation with tool call assertions are increasingly available; the tooling investment is worth making early rather than retrofitting after an incident.
Mapping to Australian and regulated industry frameworks
This section is illustrative, not legal advice. The governance controls above connect to Australian regulatory and standards frameworks in the following ways.
Privacy Act 1988 (Cth): Agent action logs that contain personal information are subject to the Australian Privacy Principles. This includes obligations around collection minimisation (log what you need for the audit purpose, not everything the agent processed), secure storage, access controls, and retention limits. Append-only audit logs are not exempt from data governance obligations simply because they are read-only from the agent's perspective.
Guidance for AI Adoption (National AI Centre, 2025): On 21 October 2025, the National AI Centre published the Guidance for AI Adoption, which replaced the earlier Voluntary AI Safety Standard (VAISS, 2024) as the current Australian government guidance on responsible AI. The Guidance condenses the predecessor's ten guardrails into six essential practices: Decide who is accountable; Understand impacts and plan accordingly; Measure and manage risks; Share essential information; Test and monitor; Maintain human control. The kill switch and circuit breaker architecture directly addresses the "Maintain human control" practice, which explicitly includes pause and system access controls. Shadow mode evaluation and action audits directly address "Test and monitor". Organisations with existing documentation aligned to the Voluntary AI Safety Standard will find close mapping across the two frameworks.
ISO 42001: As the ISO 42001 post explains, the operational controls framework is the part of the standard that applies most directly to production agentic systems. The controls documented here — allowlists with documented review cadence, structured action logs, circuit breakers with defined thresholds, rollback procedures, and ongoing evaluation — are the kinds of operational controls that should appear in an ISO 42001-aligned management system for a business running agentic AI.
Sector regulators: ASIC's technology risk guidance, APRA's prudential standards for technology and operational risk, and state gaming body requirements all create obligations around operational resilience, incident response, and audit capability that agentic AI systems must satisfy. The specific requirements vary by sector and licence type; the controls above provide a foundation that legal and compliance teams can map to specific regulatory requirements.
A practical implementation order for production readiness
If you are moving an agentic system from staging to production and need to implement these controls, a reasonable sequencing:
First: get the action logs right. Immutable, structured, append-only, with trace IDs. Everything else depends on having a reliable record of what the agent did. Deploy the logging infrastructure before the agent goes to production, verify it in staging, and confirm it is capturing what you need.
Second: implement and test the kill switch. Before the first production deployment. Test it under load. Make sure the named operators know it exists and can activate it. Document the runbook.
Third: define the allowlist and wire it to anomaly detection. Allowlist violations become your first automated signal that something unexpected is happening. Set up alerting on violations from day one.
Fourth: set circuit breaker thresholds. Start conservative — thresholds that will trip too often are annoying but recoverable; thresholds that never trip are not governance. Tune them based on the first few weeks of production traffic.
Fifth: establish the action audit cadence and shadow mode pipeline. These require operational infrastructure and reviewer time; they are harder to stand up quickly. Get the first three right and treat ongoing evaluation as a second-wave investment.
FAQ
What is a kill switch for an AI agent?
A kill switch is a mechanism that stops an agentic AI system from taking further actions — immediately and reliably — when it behaves unexpectedly or causes harm. In practice this ranges from a simple feature flag that disables the agent's ability to call tools, to a multi-layered circuit breaker that automatically suspends the agent when anomaly thresholds are breached and requires explicit human authorisation to resume. The key requirement is that the kill switch must be operable independently of the agent itself: the agent should not be able to disable or circumvent its own kill switch, and the mechanism should work even if the agent is in the middle of executing a task.
How do you implement observability for agentic AI in production?
Production observability for agentic AI requires three things that traditional application monitoring does not natively provide: structured action logs that record every tool call with its parameters and result (not just response times and error rates), end-to-end trace correlation that links an agent's sequence of actions across multiple tool calls into a single queryable trace, and a behavioural baseline that lets you detect when an agent is acting outside its expected working set. Standard APM tools cover the infrastructure and latency layers; you need to add agent-specific instrumentation at the host application level that captures the agent's reasoning steps and tool invocations as structured events.
What is a circuit breaker in the context of agentic AI?
Borrowed from distributed systems engineering, a circuit breaker for an agentic AI system automatically suspends the agent's ability to act when a defined threshold is breached — error rate, cost rate, action volume, or a specific anomalous behaviour pattern. Unlike a manual kill switch (which requires a human to notice and act), a circuit breaker trips automatically and can be configured to fail safe: the agent's pending actions are queued or discarded, and the system does not resume until a human explicitly resets the circuit. The circuit breaker pattern is particularly important for agents running on automated schedules or processing high-volume event streams where a human may not be monitoring in real time.
How do production permission allowlists differ from OAuth scopes?
OAuth scopes control what the agent is authorised to do at the identity and protocol layer — they are granted by the authorisation server and enforced by the resource server (e.g. the MCP server or API), and are broadly defined (e.g. "read:orders", "write:drafts"). Production permission allowlists are an additional application-layer control that constrains which specific tools or operations an agent may invoke within its authorised scope, for a specific task or workflow. An agent might have a valid OAuth token with "records:write" scope but an application-layer allowlist that restricts it to writing only to a specific table, only with a specific set of field keys. Allowlists narrow blast radius within the OAuth boundary; they are not a replacement for correct scope design.
What evaluation approaches work for agentic AI in production?
Production evaluation for agentic AI differs from pre-deployment testing because you cannot enumerate every possible sequence of actions in advance. The most effective approaches combine: shadow mode evaluation (running the agent against a copy of production traffic without executing real side effects, to detect drift before it causes harm), action audits (periodic human review of a random sample of completed agent task traces, scored against expected behaviour), automated anomaly detection on the action log (flagging tool calls outside the expected working set, unusual parameter patterns, or cost spikes), and regression test suites that simulate common agent task scenarios against a staging environment on each deployment. The goal is continuous confidence rather than point-in-time sign-off.
How does the Australian Privacy Act apply to agentic AI logging?
The Privacy Act 1988 (Cth) and the Australian Privacy Principles create obligations that apply whenever an agent's action logs contain personal information — which is often, since agents frequently act on data about customers, employees, or other individuals. Obligations include: collecting only the information necessary for the stated purpose (which applies to what you log as much as what you process), storing it securely with appropriate access controls, retaining it only as long as necessary for the audit or governance purpose, and, from 10 December 2026, disclosing in your privacy policy the types of automated decisions that could significantly affect an individual's rights or interests (obligations under the Privacy and Other Legislation Amendment Act 2024, not yet in force). Append-only audit logs that contain personal information should be scoped, retained on a documented schedule, and treated as personal information under the Privacy Act — not as purely internal operational data.
When should a CTO authorise resuming an agent after a kill switch or circuit breaker trips?
Resumption should require three things: a documented root-cause analysis of what caused the kill switch or circuit breaker to trip, a specific remediation that addresses the root cause (not just a reset), and sign-off from the named accountable owner of the agent system. For regulated industries, the resumption decision and its rationale should be logged in the AI risk register and, where the incident involved regulated data or customer impact, reviewed by legal or compliance before the agent resumes. The failure mode that kills people's confidence in agentic AI is not the kill switch tripping — it is resuming without understanding why it tripped.
Related reading: Governing Agentic AI: Human-in-the-Loop Patterns When Tools Can Act (MCP Edition) · What Australian CTOs Should Put in the AI Governance Pack · What Is ISO 42001? The AI Governance Standard Australian Businesses Need to Act On in 2026 · A Development Harness for Building Software with AI Agents · MCP Explained: How AI Models Talk to Your Tools (and What Shipped in 2026) · AI Liability: Who Is Responsible When AI Gets It Wrong
Similar articles

What Australian CTOs Should Put in the AI Governance Pack
The board is asking. The regulator is watching. The CTO is the one who has to translate "AI governance" from a policy concept into a document set that actually governs something. Here is what a credible AI governance pack looks like for an Australian organisation in 2026, and what each section needs to do to survive scrutiny.
21 Sept 2026

Governing Agentic AI: Human-in-the-Loop Patterns When Tools Can Act (MCP Edition)
Agentic AI doesn't just recommend. It acts. That changes governance from a policy question into an engineering question: which patterns actually limit blast radius, satisfy a human reviewer, and survive scrutiny from a regulator or court? A practical playbook for MCP-connected agents, with a checklist for regulated industries.
16 Sept 2026

Vercel Can Do WebSockets Now. Here's Where a Chat Room Still Breaks It.
Vercel shipped native WebSocket support in 2026, so a Function really can hold a socket open. But the connection is still a function invocation with a duration ceiling and no fan-out. Here's where that's fine for a chat app, where it isn't, and how Supabase Realtime covers the gap.
15 Aug 2026

AI-First Programming Languages: What They Are, and Whether You Should Use One Yet
In the last year a genuinely new category of programming language appeared: ones where the AI, not you, is the intended author. Here's what the categories are, which projects actually have traction, and which of them I'd be willing to put in production today.
9 Aug 2026
