pub struct SpreadingActivationConfig {
pub enabled: bool,
pub decay_lambda: f32,
pub max_hops: u32,
pub activation_threshold: f32,
pub inhibition_threshold: f32,
pub max_activated_nodes: usize,
pub seed_structural_weight: f32,
pub seed_community_cap: usize,
pub recall_timeout_ms: u64,
}Expand description
Configuration for SYNAPSE spreading activation retrieval over the entity graph.
When enabled = true, spreading activation replaces BFS-based graph recall.
Seeds are initialized from fuzzy entity matches, then activation propagates
hop-by-hop with exponential decay and lateral inhibition.
§Validation
Constraints enforced at deserialization time:
0.0 < decay_lambda <= 1.0max_hops >= 1activation_threshold < inhibition_thresholdrecall_timeout_ms >= 1(clamped to 100 with a warning if set to 0)
Fields§
§enabled: boolEnable spreading activation (replaces BFS in graph recall when true). Default: false.
decay_lambda: f32Per-hop activation decay factor. Range: (0.0, 1.0]. Default: 0.85.
max_hops: u32Maximum propagation depth. Must be >= 1. Default: 3.
activation_threshold: f32Minimum activation score to include a node in results. Default: 0.1.
inhibition_threshold: f32Activation level at which a node stops receiving more activation. Default: 0.8.
max_activated_nodes: usizeCap on total activated nodes per spread pass. Default: 50.
seed_structural_weight: f32Weight of structural score in hybrid seed ranking. Range: [0.0, 1.0]. Default: 0.4.
seed_community_cap: usizeMaximum seeds per community. 0 = unlimited. Default: 3.
recall_timeout_ms: u64Timeout in milliseconds for a single spreading activation recall call. Default: 1000.
Values below 1 are clamped to 100ms at runtime. Benchmark data shows FTS5 + graph
traversal completes within 200–400ms; 1000ms provides headroom for cold caches.
Implementations§
Trait Implementations§
Source§impl Clone for SpreadingActivationConfig
impl Clone for SpreadingActivationConfig
Source§fn clone(&self) -> SpreadingActivationConfig
fn clone(&self) -> SpreadingActivationConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more