Explainer AI System Assurance 6 min read

Your AI Agent Is Live. Is It Still Under Control?

Martin Bergljung Co-founder and CTO, Brutor AI
Work items pass through a governed checkpoint, with records, warnings and controls shown in Brutor's blue and orange palette.

Your AI agent passed its tests. It now processes work throughout the day, calls tools and delegates to other agents. Can you leave it running without watching every task?

That takes clear limits, ongoing checks and a way to intervene. Here, unattended means the agent can perform approved work independently, with people responsible for designated decisions and exceptions.

Brutor’s AI control plane connects those controls to the evidence: what the agent was approved to do, what its governed calls actually did, and what happened when something changed. This is AI agent assurance in practice.

The code can stay the same while behaviour changes

Configuration, data and dependencies affect ordinary software too. With an AI agent, model outputs can also influence tool selection, recommendations and subsequent actions. A model update, an edited prompt or different tool responses can change its behaviour without a new release of the agent’s code.

Five sources of change without a new agent code release: model updates, prompt edits, different tool choices, changed input data and changed tool output. An agent approved on Friday may behave differently by Monday; these changes may not trigger release tests.
The agent’s code can stay unchanged while its inputs, dependencies and behaviour change.

Testing before release remains essential. Runtime assurance adds evidence about how the deployed system operates as those conditions change.

Two questions, with different answers

Brutor checks the agent against two references:

QuestionReference
Is it within what we approved?The operating contract: the approved resources, limits, controls and releases.
Has its behaviour changed?The baseline: patterns learned from recorded runs, including actions per task, tool use, completion rates and cost.
Two complementary checks: compare activity with the approved contract, and compare behaviour with a baseline learned from the agent's runs. Contract breaches and meaningful behavioural changes can each raise findings with evidence to investigate.
The contract defines what is approved. The baseline describes what has been normal.

An illustrative example: the same release starts taking fifteen calls to complete work that usually took nine. Its tools are still approved and its spending remains within budget. Contract conformance can remain healthy while a sustained change from the baseline warrants investigation. Harder applications, changed tool data or an inefficient loop could explain it; the change alone does not establish the cause.

Conversely, an unapproved release may report itself while producing otherwise familiar traffic. That is a conformance issue even if no behavioural trend has shifted. You need both checks.

A running demo, with synthetic data

The Brutor Demo System is a loan pre-screening agent for a fictional Swedish lender, Borealis Consumer Finance AB. It runs every ten minutes on our platform. All applicant data is synthetic.

For each application, it:

  • retrieves application, identity and credit information through two tool servers;
  • runs an affordability-check skill;
  • asks one model to assess risk and a second agent to screen for fraud;
  • asks a stronger model to draft a recommendation and a customer letter;
  • records the recommendation, subject to the approval rules.

In this demo, recording a decline or a recommendation for a loan above EUR 25,000 requires a human underwriter’s approval. That threshold is a demo policy.

The demo agent's composition and a recorded run: model calls, two MCP servers, the affordability skill and a fraud-screening agent connect through the Brutor Gateway. Numbered actions show the sequence, including the fraud agent's nested model call.
One recorded run across models, tools, a skill and another agent, with the gateway’s controls in the middle.

Each application becomes a run: a task whose governed calls are grouped and recorded in sequence.

The demo's Runs tab lists 50 of 671 runs in a 24-hour period, with times, actor, reported release and outcome. The visible rows report release brutor-demo-screening-agent@0.2.0.
671 recorded runs over 24 hours. The release column shows the version reported by the caller.

How Brutor keeps watch

Four steps: agree the operating contract; route calls through the gateway; compare recorded runs and trends with the contract and baseline; raise findings and apply configured responses. A person reviews changes and approves a revised contract when needed.
Approve the contract, then keep checking. People review exceptions and changes to the approved scope.

1. Agree: approve the operating contract

Brutor records a versioned snapshot of the system’s resources, limits and controls, with a hash identifying that snapshot. Previous contract versions are retained, so later configurations can be compared with what was approved.

Contract version 5 for the demo system shows its owner, intended use, allowed resources, limits, approval rules, approved agent release 0.2.0 and configured response to drift.
The approved operating contract, including release 0.2.0 and the response policy for drift.

2. Route: enforce rules and record calls

The demo routes its model, tool, skill and agent-to-agent calls through the Brutor AI Gateway. It uses the gateway’s endpoints and adds headers identifying the run, step and release. No monitoring library is required.

The gateway enforces the configured access rules, policies and limits on each governed call and records the result. Assurance then compares the recorded activity and configuration with the approved contract. Immediate enforcement and checks over completed runs serve different purposes.

Brutor brings the evidence together in seven signals:

SignalQuestion
LivenessIs the agent running when expected?
BehaviourHave its action counts, tools or models changed?
ReliabilityAre runs completing or failing?
CostIs the cost per completed task changing?
ConformanceDoes recorded activity match the approved contract?
OversightAre required human approvals receiving decisions?
ReviewAre findings being reviewed?

Overall health follows the weakest enforced signal, rather than an average. Strong cost and reliability scores cannot cancel an oversight failure. Where evidence is insufficient, the verdict is unknown.

Some checks evaluate individual runs; others need a reporting window and enough observations to detect a meaningful change.

4. Respond: raise a finding and apply the configured response

A finding records the issue, its severity and supporting evidence. Related occurrences update one finding with a recurrence count, keeping repeated problems together in the Assurance Inbox.

The Assurance Inbox groups open findings for check breaches, liveness, run failures and drift, showing severity, recurrence counts and review status.
One inbox for findings, with severity, recurrence and review status.

Configured notifications can send findings to Slack or a signed webhook. Notification delivery failures are also surfaced for investigation.

In the demo, a response policy can lower autonomy to approval_required when qualifying drift is detected. Side-effecting tool calls then require human approval. Restoring autonomy requires a human decision.

A real finding: an unapproved release

The demo reported release 0.1.0 while its active contract approved 0.2.0. Brutor raised an unapproved-release finding.

An agent reports release 0.1.0 while 0.2.0 is approved. Brutor records the declared version, detects the mismatch, raises a finding and applies the configured autonomy response. A person reviews the release, records a resolution and decides when autonomy can be restored.
The declared-release mismatch leads to a finding and a configured response, followed by human review.
The Drift tab shows an unapproved-release finding for reported version 0.1.0, an earlier caller-mix finding closed with a reason, baseline relearning and a configured autonomy response with a human restore requirement.
The finding, an earlier documented resolution and the automatic response policy in the demo console.

The distinction between declared and verified matters. This demo sends its version in a header. That identifies what the caller reports; it does not independently verify the code running. Brutor’s release tracking keeps declared values separate from verified workload-token claims.

Findings can also point to recorded changes near the time behaviour shifted, giving an operator a lead to investigate. Correlation is not proof of cause. Where no supporting change is known, Brutor leaves the investigation open.

Closing a finding requires a reason. In the screenshot, an earlier caller-mix change was accepted because the platform had changed its caller labels, and the baseline began relearning from that point.

Human oversight can fail too

On one day, the demo’s agent-related signals were within their configured thresholds, but its overall health was Degraded:

The demo's overall verdict is Degraded because oversight is 16 percent, below its 80 percent floor: 250 of 299 approval requests expired without a human decision. The other displayed signals are within their configured thresholds.
250 of 299 approval requests expired without a decision. Oversight drove the degraded verdict.

The agent had held the actions for approval. Most requests went unanswered. The gate was preventing those actions from proceeding, but the human review process was not keeping up. Brutor made that operational gap visible.

Silence needs attention as well. The demo is expected to run at least once every half hour. If it misses that expectation, its liveness signal raises a finding. An absence of traffic is not treated as evidence that everything is healthy.

What the evidence can tell you

The contract records what was approved. The run ledger records observed activity. Check results and the assurance report describe what was assessed and where evidence is insufficient. Findings record exceptions; resolutions record who reviewed them and what they decided.

Together, these support operational reviews and discussions with auditors and insurers. The scope still matters:

  • Normal behaviour does not prove correct answers. Task quality and decision correctness still need evaluations and outcome checks.
  • Coverage follows the governed path. Calls that bypass the gateway are outside that evidence; the report states its coverage limits.
  • Detection has a timescale. Call-level controls act in the request path. Drift and liveness findings depend on their checks, thresholds and observation windows.
  • Evidence supports an assessment. It does not by itself establish legal compliance or insurance cover, or replace testing before release.

The aim is to let an agent perform approved work while giving its owner evidence of how it is operating, notice of detected changes and controls to respond.

See it on your own agent

Download Free Trial Book Demo

Share this article