MCPcopy Index your code
hub / github.com/OpenBMB/ChatDev / _retrieve_memory

Method _retrieve_memory

runtime/node/executor/agent_executor.py:522–555  ·  view source on GitHub ↗

Retrieve memory for the node.

(
        self,
        node: Node,
        query_snapshot: MemoryContentSnapshot,
        stage: AgentExecFlowStage
    )

Source from the content-addressed store, hash-verified

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(

Calls 5

get_memory_managerMethod · 0.80
memory_timerMethod · 0.45
retrieveMethod · 0.45
attachment_overviewMethod · 0.45

Tested by

no test coverage detected