Agent Behaviour Drift Sentinel
Detects when an agent's behaviour quietly changes against a signed baseline of normal.
- Status
- Submitted, awaiting review
- Licence
- MIT · zero runtime dependencies
- Evidence
- 28 tests · 118 assertions
The problem
Has this agent's behaviour materially changed?
A compromised, prompt-injected or silently regressed agent rarely announces itself. It keeps answering and keeps calling tools while its tool mix shifts, its escalation rate climbs or its refusal rate collapses. Nothing in the logs is individually alarming, so nobody looks.
What it does
It ingests caller-supplied execution traces, establishes a signed durable baseline of normal behaviour, and reports divergence with a severity, per-dimension attribution and a replayable exemplar episode an investigator can read. Declared maintenance windows and known change markers are reported as suppressed, never silently dropped.
How it works
Baselines are immutable and versioned: setting one always mints a new version, and a baseline that fails signature verification is refused rather than downgraded to unsigned. Below the configured minimum sample a severity is still emitted but capped at informational with an insufficient-sample confidence. Calibration proposes thresholds; they only take effect through an explicit apply step that mints a new signed version.
Tool surface
MCP over stdio. Compatible with Claude Code, Claude Desktop and Cursor, or usable directly as a TypeScript library. No API key, account or Tenable product is required.
ingest_traces
Ingest caller-supplied execution traces, reducing non-allowlisted free text to digests.
set_baseline
Mint a new signed, immutable baseline version of normal behaviour.
check_drift
Compare recent behaviour against a signed baseline and emit a severity.
explain_drift
Attribute a finding to behavioural dimensions and replay its exemplar episode.
calibrate
Propose a threshold profile from labelled findings without changing anything.
apply_calibration
Apply a proposed profile by minting a new signed baseline version.
configure_suppression
Declare maintenance windows and known change markers.
What it deliberately does not do
- It detects change against a baseline; it does not judge intent or stop the agent.
- Suppressed findings are reported as suppressed rather than discarded.
- Raw payloads never enter profiles, findings or explanations.
Provenance
Where this came from
SHPBL discovered and composed this product from capability intent across its library and CMPSBL, a sister project by the same developer. The implementation was written fresh from its published behaviour specification, cleared an exact-file review of its release surface, and received its own MIT grant over that reviewed file set. The MIT grant covers only the named files in that one repository; it does not relicense SHPBL, CMPSBL, private harvest machinery, harvested bodies or provenance maps.
SHA-256 · ca6c45a26b00fa080559687e6485cd12450862a7e76b0fb3d7fff4206ffcbc63
Submission does not imply review, approval, certification or endorsement by Tenable. No Exchange listing exists until a maintainer merges it.