Demo: behavioral anomaly detection with a signed monitoring envelope

EVE detects behavioral anomalies using deterministic statistical detectors (rolling/robust z-score, EWMA, CUSUM) and produces signed monitoring envelopes summarizing agent behavior over a window. This demo feeds a stable baseline, then a spike, and shows the detector flagging the deviation. Monitoring is observational — the demo shows how to wire the flag to a deterministic enforcement action.

Synthetic fixtures. No production credentials.

Readiness

  • Behavioral anomaly detection + signed monitoring envelopes: PILOT_READY.
  • Python only (embedded(service) mode).

Setup

# demo_behavioral_anomaly.py — synthetic fixtures only
from core.eve_sdk import EVE

IDENT = {"tenant_id": "acme", "principal_id": "agent-1", "session_id": "sess-1"}
blocked_actions = []

eve = EVE(policy="lending_v1", mode="embedded")
monitor = eve.monitor(metric="calls_per_minute", detector="robust_zscore", z_threshold=3.0)

Code

# 1) Baseline: 20 windows near ~10 calls/min -> no anomaly.
for _ in range(20):
    monitor.observe(10)
assert not monitor.state().anomaly, "baseline must not flag"

# 2) Spike: a window at 300 calls/min -> statistical anomaly flagged.
event = monitor.observe(300)
assert event.anomaly, "spike must be flagged"
print("anomaly:", event.detector, round(event.z_score, 1), event.escalation)

# 3) Advisory -> enforcement: wire the flag to a deterministic BLOCK for further calls.
if event.escalation == "high":
    r = eve.govern_tool_call(tool="external_post", arguments={},
                             context={**IDENT, "monitor_escalation": "high"})
    if not r.allowed:
        blocked_actions.append(r.decision_id)

# 4) Signed monitoring envelope for the window.
envelope = monitor.build_envelope()
print("envelope signed:", envelope.certificate is not None)

Expected decision / detection

Step Result
20 baseline windows (~10/min) no anomaly
1 spike window (300/min) anomaly flagged (z-score ≫ threshold)
escalation wired to governance over-threshold action BLOCK

Expected evidence

Anomaly event and a signed monitoring envelope:

{"anomaly_event": {"detector": "robust_zscore", "z_score": 12.4, "escalation": "high"},
 "envelope": {"window": "...", "certificate": {"signature": "ed25519-...", "canon": "jcs-1"}}}

Verification command

from core.eve_sdk import verify_evidence
v = verify_evidence("monitoring_envelope", envelope.certificate, expected_tenant="acme")
assert v["valid"], v.get("reason")
print("verify:", v["valid"])   # -> True

Zero-side-effect assertion

monitor.observe(...) only reads counters into detector state — it invokes no tool. The enforcement step routes through a deterministic governance verdict; blocked_actions records that the escalated action was BLOCKed rather than executed. No tool ran during monitoring.

Cleanup

blocked_actions.clear()

No external state created.

Limitations

  • Statistical detectors flag deviations and are advisory unless wired to a deterministic enforcement action (as shown in step 3). Detection is not free of false positives.
  • Monitoring is observational; enforcement decisions are made by CoreGuard / sequence / budget controls.
  • PILOT_READY, not production.
Part of the EVE AI Core control plane Deterministic AI Governance Control Plane → Policy decisions that return the same result for the same input every time, before execution.