Skip to main content

Configuration

All configuration lives in DriftGuardSettings, a frozen dataclass.

from driftguard import DriftGuardSettings

settings = DriftGuardSettings(
retrieval_top_k=5,
retrieval_min_similarity=0.60,
guard_policy="warn",
storage_backend="sqlite",
sqlite_filepath="driftguard.sqlite3",
)

Full reference

Storage

SettingDefaultDescription
storage_backend"json""json" or "sqlite"
graph_filepath"driftguard_graph.json"Path for JSON backend
sqlite_filepath"driftguard_graph.sqlite3"Path for SQLite backend

Embedding

SettingDefaultDescription
embedding_model_name"sentence-transformers/all-MiniLM-L6-v2"SentenceTransformer model
embedding_deviceNoneDevice override ("cuda", etc.)

Retrieval

SettingDefaultDescription
retrieval_top_k5Max similar action nodes to retrieve
retrieval_min_similarity0.60Minimum cosine similarity to include a candidate
retrieval_recency_weight0.15Weight of recency in confidence scoring

Graph traversal

SettingDefaultDescription
traversal_max_depth3Max depth when walking causal chains
traversal_max_branching10Max neighbors to follow per node
traversal_max_paths100Max total paths collected per query

Similarity thresholds

SettingDefaultDescription
similarity_threshold_action0.72Merge threshold for action nodes
similarity_threshold_feedback0.70Merge threshold for feedback nodes
similarity_threshold_outcome0.88Merge threshold for outcome nodes

Guard policy

SettingDefaultDescription
guard_policy"warn"Default policy: warn, block, acknowledge, record_only
guard_min_confidence0.0Minimum confidence to trigger policy

Pruning

SettingDefaultDescription
prune_node_stale_days60Days before a node is eligible for removal
prune_edge_min_frequency2Minimum edge frequency to survive pruning

Logging

SettingDefaultDescription
log_level"INFO"Package-level log level

Example: production SQLite config

settings = DriftGuardSettings(
storage_backend="sqlite",
sqlite_filepath="/data/driftguard.sqlite3",
retrieval_top_k=8,
retrieval_min_similarity=0.65,
similarity_threshold_action=0.75,
guard_policy="warn",
guard_min_confidence=0.70,
prune_node_stale_days=30,
prune_edge_min_frequency=3,
log_level="WARNING",
)