Developer documentation

CAIN Drift

Last reviewed 31 August 2026

QuickstartCLI referencePython SDKTypeScript SDKMCPIntegrationsPoliciesActionProofEvidenceCAIN TraceConformanceTroubleshootingDeveloper portalMarketplaceFree tierBenchmarksArchitectureCAIN IdentityCAIN ControlCAIN BudgetCAIN GovernanceCAIN MemorySelf-Hosted MCPGateCAIN PrivateCAIN TrajectoryCAIN Agent SecurityCAIN Drift7-Moat ArchitectureChangelog

CAIN Drift

Status: PARTIAL - Baselines, observations, comparisons, findings, evidence, and lifecycle management are operational. CLI and MCP integration pending.

Overview

CAIN Drift detects meaningful changes in autonomous AI systems before drift becomes an incident. It is part of CAIN Trust Fabric and integrates with existing CAIN infrastructure.

Architecture

BASELINE → OBSERVE → COMPARE → DETECT → CLASSIFY → CORRELATE → EVIDENCE → IMPACT → GOVERN → REMEDIATE → VERIFY

Key Principle: Drift detects. Governance decides. Enforcement enforces. Evidence records.

Drift Classes

ClassDescriptionDetects
data_driftStatistical changes in data distributionsPSI, JS divergence, KS test, mean/variance shift
model_driftChanges in AI model configurationProvider, version, temperature, system prompt, tools
tool_driftChanges in tool/MCP configurationsSchema, permissions, endpoint, version, capabilities
policy_driftChanges in authorization policiesRules, risk thresholds, approval requirements
agent_behavior_driftChanges in agent behavior patternsAction frequency, tool selection, denial rate
security_driftChanges in security postureAttack surface, credentials, suspicious activity
compliance_driftChanges in compliance postureCompliance score, open findings
configuration_driftChanges in system configurationConfig changes
trajectory_driftChanges in execution trajectoriesTrajectory patterns
evidence_driftChanges in evidence patternsEvidence volume, types, integrity

API Endpoints

Health & Status

GET /fabric/drift/health     - Service health check
GET /fabric/drift/status     - Service status
GET /fabric/drift/stats      - Drift statistics

Baselines

POST /fabric/drift/baselines           - Create baseline
GET  /fabric/drift/baselines           - List baselines
GET  /fabric/drift/baselines/{id}    - Get baseline
POST /fabric/drift/baselines/{id}/activate   - Activate baseline
POST /fabric/drift/baselines/{id}/archive    - Archive baseline

Detection

POST /fabric/drift/observe   - Observe current state and detect drift
POST /fabric/drift/compare    - Compare current state against baseline

Findings

GET  /fabric/drift/findings                    - List findings
GET  /fabric/drift/findings/{id}               - Get finding
GET  /fabric/drift/findings/{id}/history       - Get status history
GET  /fabric/drift/findings/{id}/impact        - Get impact assessment
POST /fabric/drift/findings/{id}/acknowledge   - Acknowledge finding
POST /fabric/drift/findings/{id}/investigate   - Mark investigating
POST /fabric/drift/findings/{id}/mitigate      - Mark mitigated
POST /fabric/drift/findings/{id}/resolve       - Mark resolved
POST /fabric/drift/findings/{id}/accept        - Accept risk
POST /fabric/drift/findings/{id}/false_positive - Mark as false positive

Authentication

All endpoints require tenant query parameter. Additional authentication may be required for production use.

Finding Lifecycle

detected → acknowledged → investigating → mitigated → resolved
                                                      ↘ accepted
                                                      ↘ false_positive

Evidence Chain

Every drift detection produces evidence in the CAIN Evidence Fabric:

{
  "drift_id": "...",
  "tenant": "...",
  "baseline": {...},
  "observation": {...},
  "comparison": {...},
  "finding": {...},
  "classification": "...",
  "severity": "...",
  "metrics": {
    "baseline_value": ...,
    "current_value": ...,
    "delta": ...,
    "delta_percent": ...,
    "threshold": ...,
    "confidence": ...
  },
  "evidence_chain": ["baseline", "observation", "comparison", "finding"]
}

Compliance Integration

Drift triggers reassessment but does NOT automatically fail controls. The compliance engine determines actual control status.

Severity Levels

SeverityDescription
criticalCredentials, permissions, or safety config changed
highModel, version, schema, or endpoint changed
mediumDescription, configuration, or state changed
lowMinor changes detected

CLI Commands

cain drift status --tenant <tenant>
cain drift baselines --tenant <tenant>
cain drift observe --tenant <tenant> --entity-id <id> --current-state <json>
cain drift compare --tenant <tenant> --entity-id <id> --current-state <json>
cain drift findings --tenant <tenant> [--severity <sev>] [--status <status>]
cain drift inspect --tenant <tenant> --finding-id <id>

Limitations

Production Status

ComponentStatus
BaselinesOPERATIONAL
ObservationsOPERATIONAL
ComparisonsOPERATIONAL
FindingsOPERATIONAL
EvidenceOPERATIONAL
LifecycleOPERATIONAL
CLIIMPLEMENTED (pending test)
MCPNOT IMPLEMENTED
Portal DocsTHIS DOCUMENT

Contact

For issues or questions, see CAIN Studio Platform documentation.