MCPcopy Create free account
hub / github.com/AI45Lab/Code / recall_memory_context

Method recall_memory_context

core/src/agent/turn_context.rs:150–189  ·  view source on GitHub ↗
(
        &self,
        effective_prompt: &str,
        context_results: &mut Vec<ContextResult>,
        event_tx: &Option<mpsc::Sender<AgentEvent>>,
    )

Source from the content-addressed store, hash-verified

148 }
149
150 async fn recall_memory_context(
151 &self,
152 effective_prompt: &str,
153 context_results: &mut Vec<ContextResult>,
154 event_tx: &Option<mpsc::Sender<AgentEvent>>,
155 ) {
156 let Some(ref memory) = self.config.memory else {
157 return;
158 };
159
160 match memory.recall_similar(effective_prompt, 5).await {
161 Ok(items) if !items.is_empty() => {
162 if let Some(tx) = event_tx {
163 for item in &items {
164 tx.send(AgentEvent::MemoryRecalled {
165 memory_id: item.id.clone(),
166 content: item.content.clone(),
167 relevance: item.relevance_score(),
168 })
169 .await
170 .ok();
171 }
172 tx.send(AgentEvent::MemoriesSearched {
173 query: Some(effective_prompt.to_string()),
174 tags: Vec::new(),
175 result_count: items.len(),
176 })
177 .await
178 .ok();
179 }
180 context_results.push(crate::memory::memory_items_to_context_result(
181 "memory", items,
182 ));
183 }
184 Ok(_) => {}
185 Err(e) => {
186 tracing::warn!(error = %e, "Failed to recall memory context");
187 }
188 }
189 }
190
191 async fn emit_context_resolved(
192 &self,

Callers 1

prepare_turn_contextMethod · 0.80

Calls 6

recall_similarMethod · 0.45
is_emptyMethod · 0.45
sendMethod · 0.45
cloneMethod · 0.45
lenMethod · 0.45

Tested by

no test coverage detected