Every audit log tells you what changed. Almost none tell you whether it got worse.
Here's a failure mode your logs won't catch.
You ship an AI agent. You do the responsible thing and put a human approval step in front of the dangerous operations - anything scoring above 70 on your risk model needs a person to say yes.
Week one, approvals come in steadily. Someone reviews each one. The system works.
Week six, the queue is annoying. The agent has been right every time. So someone raises the threshold from 70 to 85. Reasonable - the low-risk stuff was noise.
Week twelve, someone enables auto-approve for a category that never has problems.
Week twenty, a deploy at 2am turns a policy off because it was blocking a release.
No single one of those decisions was wrong. Every one of them was logged. And at the end of it you have an agent operating with almost no human oversight, and an audit trail that will tell you - truthfully, completely, uselessly - that four policy changes occurred.
That's governance drift. Human oversight degrades after repeated success, and policy relaxations propagate unchecked. It isn't a breach. Nobody attacks you. Your controls just quietly stop being controls.
Logging "a policy changed" is not enough.
We had this exact hole in IdentArk until August.
Our kill switch was audited. Every approval decision was hash-chained and durable. But the control that decides whether the kill switch is ever reached - the approval policy itself - was recorded like any other config change.
So a user could enable auto-approve, push the risk threshold to 100, or deactivate a policy outright, and leave behind a record that said "policy updated." Technically complete. Practically worthless. You'd reconstruct intent by diffing JSON after the fact, assuming you knew to look.
Drift is only detectable if the record says which direction the change went.
What we shipped: every policy mutation now snapshots the fields that actually determine how much oversight applies - auto-approve, the risk threshold, the auto-approve timer, required approvers, whether the policy is active at all - before and after the change. Then it compares them.
Raise the threshold: weakens=true.
Turn on auto-approve: weakens=true.
Shorten the window a human has to intervene before it fires: weakens=true.
Deactivate a policy that was imposing review: weakens=true.
Rename the policy, change its description, add a notification channel - recorded, but not flagged. Those don't change how much oversight you have.
"Has our oversight eroded this quarter?" is now a query, not an archaeology project.
The part we argued about: the comparison is deliberately conservative. When a comparison is ambiguous - missing values, types that don't compare cleanly - it returns false rather than flagging.
That feels wrong the first time you write it. Surely a security control should err toward alerting.
No. An alert that fires on every edit gets muted, and then the real one is missed. A flag that means something is worth more than a flag that fires constantly. We would rather miss an ambiguous case than train you to ignore the field.
Why post this instead of a feature announcement? Because the feature is small and the idea isn't.
Most of the agent security conversation is about attacks - prompt injection, exfiltration, jailbreaks. Those are real. But the thing most likely to remove human oversight from your agents isn't an attacker. It's twelve reasonable Tuesdays in a row.
If you're building agent infrastructure, it's worth asking what your audit log would say if your own safety net eroded. Not whether it would have a record. Whether that record would tell you.
IdentArk is the credential layer for AI agents - your agent never holds the key. MIT-licensed SDKs, self-hostable, UK jurisdiction.
We're pre-SOC 2, and we'd rather tell you that than not.
Still hiring for Microsoft AI health team, looking for Applied AI Engineers, building eval frameworks and orchestration. London based role.
Also hiring fullstack SWE’s, to work in applied AI between foundation models and product! Tag a friend! #hiring#job#follow
Join the team that built @Copilot Health! @MicrosoftAI are building LLMs to solve real healthcare issues such as diagnostics, forging groundbreaking partnerships. We’re #hiring for Applied AI Engineers, Software Engineers in London - DM me