Retrieve memory for the node.
(
self,
node: Node,
query_snapshot: MemoryContentSnapshot,
stage: AgentExecFlowStage
)
| 520 | conversation[-1] = last_message.with_content(merged_content) |
| 521 | |
| 522 | def _retrieve_memory( |
| 523 | self, |
| 524 | node: Node, |
| 525 | query_snapshot: MemoryContentSnapshot, |
| 526 | stage: AgentExecFlowStage |
| 527 | ) -> MemoryRetrievalResult | None: |
| 528 | """Retrieve memory for the node.""" |
| 529 | memory_manager = self.context.get_memory_manager(node.id) |
| 530 | if not memory_manager: |
| 531 | return None |
| 532 | |
| 533 | with self.log_manager.memory_timer(node.id, "RETRIEVE", stage.value): |
| 534 | retrieved_memory = memory_manager.retrieve( |
| 535 | agent_role=node.role if node.role else "", |
| 536 | query=query_snapshot, |
| 537 | current_stage=stage, |
| 538 | ) |
| 539 | |
| 540 | preview_text = retrieved_memory.formatted_text if retrieved_memory else "" |
| 541 | details = { |
| 542 | "stage": stage.value, |
| 543 | "item_count": len(retrieved_memory.items) if retrieved_memory else 0, |
| 544 | "attachment_count": len(retrieved_memory.attachment_overview()) if retrieved_memory else 0, |
| 545 | } |
| 546 | |
| 547 | self.log_manager.record_memory_operation( |
| 548 | node.id, |
| 549 | "RETRIEVE", |
| 550 | stage.value, |
| 551 | preview_text, |
| 552 | details, |
| 553 | ) |
| 554 | |
| 555 | return retrieved_memory |
| 556 | |
| 557 | |
| 558 | def _handle_tool_calls( |
no test coverage detected