symfonic.capabilities.memory.coordinator¶
coordinator ¶
The component that scores, gates, ranks, and expands a turn's recall.
It is a :class:~.ports.MemoryRetrievalPort; coordinate returns the pass
with provenance for hydration. Optional local capture is single-use.
The store can be substituted without changing decisions. Ordinary turn state
stays on the result, so concurrent turns cannot read each other's recall.
CoordinatedRetrieval
dataclass
¶
CoordinatedRetrieval(result: RetrievalResult, activation: ActivationLog = ActivationLog(), layers: frozenset[MemoryLayer] = frozenset())
One retrieval pass with its work shown.
RetrievalCoordinator ¶
RetrievalCoordinator(*, source: CandidateSource, policy: RetrievalPolicy | None = None, activation: SpreadingActivation | None = None, exclude_speakers: frozenset[str] = frozenset(), capture: LocalCandidateCapture | None = None)
Owns layers, scoring, gates, scope blending, and activation.
Source code in src/symfonic/capabilities/memory/coordinator.py
coordinate
async
¶
Retrieve for query, returning the result and its provenance.
Source code in src/symfonic/capabilities/memory/coordinator.py
excluding_speakers ¶
Copy the deployment policy, keeping the supplied coordinator isolated.
Source code in src/symfonic/capabilities/memory/coordinator.py
retrieve
async
¶
The :class:~.ports.MemoryRetrievalPort surface: just the result.
RetrievalPolicy
dataclass
¶
RetrievalPolicy(enabled_layers: frozenset[MemoryLayer] = RETRIEVABLE_LAYERS, weights: RelevanceWeights = DEFAULT_WEIGHTS, blend: ScopeBlend = ScopeBlend(), min_relevance: float = 0.0, min_salience: float = 0.0, profile_slots: int = 1)
Frozen retrieval policy, validated at wiring so a bad floor fails early.
effective_layers ¶
The layers actually searched: what is enabled, narrowed by the query.