From 3989a3c1c4fb7320568cb245edc98d31e99e1dc8 Mon Sep 17 00:00:00 2001 From: "jinli.yl" Date: Wed, 28 Jan 2026 20:38:34 +0800 Subject: [PATCH] refactor(memory): update memory target mappings and profile handling --- .gitignore | 2 +- benchmark/halumem/eval_reme.py | 6 +++--- reme/agent/memory/base_memory_agent.py | 2 +- .../memory/default/personal_summarizer.py | 6 ------ reme/agent/memory/default/reme_summarizer.py | 1 + reme/tool/memory/base_memory_tool.py | 2 +- reme/tool/memory/delegate_task.py | 18 +++++++++--------- 7 files changed, 16 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index efc9bea1..7ee1a323 100644 --- a/.gitignore +++ b/.gitignore @@ -34,7 +34,7 @@ test_compact_storage/* test_working_memory/* *.code-workspace local_vector_store/* -reme_local_memory/* +reme_profile/* chroma_vector_store/* bench_results/* meta_memory/* diff --git a/benchmark/halumem/eval_reme.py b/benchmark/halumem/eval_reme.py index d4bcf615..9b3ab7e7 100644 --- a/benchmark/halumem/eval_reme.py +++ b/benchmark/halumem/eval_reme.py @@ -26,7 +26,6 @@ from typing import Any from loguru import logger -from reme.core.schema import MemoryNode, Message from reme.reme import ReMe @@ -328,7 +327,7 @@ class MemoryProcessor: # Retrieve memories from ReMe using new API result = await self.reme.retrieve_memory( query=query, - top_k=top_k, + retrieve_top_k=top_k, user_name=user_id, version="default", return_dict=True, @@ -637,7 +636,8 @@ class HaluMemEvaluator: for user_data in all_users ] if all_user_names: - await self.reme.delete_all_profiles(all_user_names) + for user_name in all_user_names: + self.reme.get_profile_handler(user_name).delete_all() logger.info(f"Deleted all profiles for {len(all_user_names)} users") # Clear existing data diff --git a/reme/agent/memory/base_memory_agent.py b/reme/agent/memory/base_memory_agent.py index bdb824f4..0e945c02 100644 --- a/reme/agent/memory/base_memory_agent.py +++ b/reme/agent/memory/base_memory_agent.py @@ -52,7 +52,7 @@ class BaseMemoryAgent(BaseReact, metaclass=ABCMeta): @property def memory_target_type_mapping(self) -> dict[str, MemoryType]: """Get the memory target type mapping from context.""" - return self.context.memory_target_type_mapping + return self.context.service_context.memory_target_type_mapping @property def meta_memory_info(self) -> str: diff --git a/reme/agent/memory/default/personal_summarizer.py b/reme/agent/memory/default/personal_summarizer.py index 9f8b85de..11b26d81 100644 --- a/reme/agent/memory/default/personal_summarizer.py +++ b/reme/agent/memory/default/personal_summarizer.py @@ -107,15 +107,9 @@ class PersonalSummarizer(BaseMemoryAgent): if tool.memory_nodes: memory_nodes.extend(tool.memory_nodes) - profile_nodes = [] - for tool in tools: - if tool.profile_nodes: - profile_nodes.extend(tool.profile_nodes) - return { "answer": memory_nodes, "success": success, "messages": messages, "tools": tools, - "profile_nodes": profile_nodes, } diff --git a/reme/agent/memory/default/reme_summarizer.py b/reme/agent/memory/default/reme_summarizer.py index 86b49f2c..5473e71e 100644 --- a/reme/agent/memory/default/reme_summarizer.py +++ b/reme/agent/memory/default/reme_summarizer.py @@ -16,6 +16,7 @@ class ReMeSummarizer(BaseMemoryAgent): await add_history_tool.call( messages=self.messages, description=self.description, + author=self.author, service_context=self.service_context, ) self.context.history_node = add_history_tool.context.history_node diff --git a/reme/tool/memory/base_memory_tool.py b/reme/tool/memory/base_memory_tool.py index d3cb4541..3431b164 100644 --- a/reme/tool/memory/base_memory_tool.py +++ b/reme/tool/memory/base_memory_tool.py @@ -100,7 +100,7 @@ class BaseMemoryTool(BaseTool, metaclass=ABCMeta): @property def memory_target_type_mapping(self) -> dict[str, MemoryType]: """Get the memory target type mapping from context.""" - return self.context.memory_target_type_mapping + return self.context.service_context.memory_target_type_mapping @property def profile_path(self) -> Path: diff --git a/reme/tool/memory/delegate_task.py b/reme/tool/memory/delegate_task.py index 8d9fecab..2914d4d5 100644 --- a/reme/tool/memory/delegate_task.py +++ b/reme/tool/memory/delegate_task.py @@ -31,28 +31,28 @@ class DelegateTask(BaseMemoryTool): "parameters": { "type": "object", "properties": { - "tasks": { + "memory_target_tasks": { "type": "array", - "description": "tasks to delegate to specific agents, each task is a memory_target", + "description": "List of memory_target tasks to delegate to specific memory agents", "items": { "type": "string", - "description": "memory_target to delegate to specific agents", + "description": "A memory_target identifier to delegate to the corresponding agent", }, }, }, - "required": ["tasks"], + "required": ["memory_target_tasks"], }, }, ) async def execute(self): - # Deduplicate and validate tasks - tasks = self.context.get("tasks", []) - tasks = sorted(set(tasks)) + # Deduplicate and validate memory_target_tasks + memory_target_tasks = self.context.get("memory_target_tasks", []) + memory_target_tasks = sorted(set(memory_target_tasks)) - # Submit tasks to agents + # Submit memory_target_tasks to agents agent_list: list[BaseMemoryAgent] = [] - for i, memory_target in enumerate(tasks): + for i, memory_target in enumerate(memory_target_tasks): memory_type = self.memory_target_type_mapping[memory_target] agent = self.memory_agent_dict[memory_type].copy() agent_list.append(agent)