pub struct MemoryTurnExtractor { /* private fields */ }Expand description
Drives memory from the runtime’s turn-boundary extraction pipeline.
Implementations§
Source§impl MemoryTurnExtractor
impl MemoryTurnExtractor
Sourcepub fn new(session: Arc<MemorySession>) -> Self
pub fn new(session: Arc<MemorySession>) -> Self
Ingest from session, skipping turns shorter than three words.
The floor exists because “ok”, “yeah” and “mm hmm” are most of a voice conversation and none of them are evidence.
Sourcepub fn slots(self, slots: impl IntoIterator<Item = MemorySlot>) -> Self
pub fn slots(self, slots: impl IntoIterator<Item = MemorySlot>) -> Self
Project memory facts into governed State slots.
Each entry maps a canonical predicate to the state key a phase or flow
reads. A slot filled from memory satisfies needs/requires exactly as
one filled by the user would, which is the point: the application does
not have to know whether it learned something now or last month.
Slots are promoted with KeepKnown, so anything the current
conversation established wins over what memory recalls.
Trait Implementations§
Source§impl TurnExtractor for MemoryTurnExtractor
impl TurnExtractor for MemoryTurnExtractor
Source§fn window_size(&self) -> usize
fn window_size(&self) -> usize
How many recent turns this extractor needs.
Source§fn trigger(&self) -> ExtractionTrigger
fn trigger(&self) -> ExtractionTrigger
The trigger mode for this extractor. Read more
Source§fn promotion_rules(&self) -> &[FieldPromotion]
fn promotion_rules(&self) -> &[FieldPromotion]
Field promotion rules for this extractor. Read more
Source§fn should_extract(&self, window: &[TranscriptTurn]) -> bool
fn should_extract(&self, window: &[TranscriptTurn]) -> bool
Whether this extractor should run for the current turn. Read more
Source§fn extract<'life0, 'life1, 'async_trait>(
&'life0 self,
window: &'life1 [TranscriptTurn],
) -> Pin<Box<dyn Future<Output = Result<Value, LlmError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn extract<'life0, 'life1, 'async_trait>(
&'life0 self,
window: &'life1 [TranscriptTurn],
) -> Pin<Box<dyn Future<Output = Result<Value, LlmError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Extract structured data from the transcript window.
Source§fn extract_with_state<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
window: &'life1 [TranscriptTurn],
state: &'life2 State,
) -> Pin<Box<dyn Future<Output = Result<Value, LlmError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn extract_with_state<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
window: &'life1 [TranscriptTurn],
state: &'life2 State,
) -> Pin<Box<dyn Future<Output = Result<Value, LlmError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Extract with access to session
State — for extractors whose sources
bind arguments from State (e.g. async fetch/agent resolvers). Read moreSource§fn on_complete(&self) -> Option<OnComplete>
fn on_complete(&self) -> Option<OnComplete>
An optional agent to run when this extractor’s results land in state —
the
on_complete(dispatch(agent)) effect. Fired by the pipeline after
promotion, only when the extractor produced a non-empty object.Auto Trait Implementations§
impl !RefUnwindSafe for MemoryTurnExtractor
impl !UnwindSafe for MemoryTurnExtractor
impl Freeze for MemoryTurnExtractor
impl Send for MemoryTurnExtractor
impl Sync for MemoryTurnExtractor
impl Unpin for MemoryTurnExtractor
impl UnsafeUnpin for MemoryTurnExtractor
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more