diff --git a/reme/__init__.py b/reme/__init__.py index f7f90a29..13fa425e 100644 --- a/reme/__init__.py +++ b/reme/__init__.py @@ -4,7 +4,6 @@ from . import config from . import core from . import extension from . import memory -from . import workflow from .reme import ReMe from .reme_cli import ReMeCli from .reme_fb import ReMeFb @@ -16,7 +15,6 @@ __all__ = [ "core", "extension", "memory", - "workflow", "ReMe", "ReMeCli", "ReMeFb", diff --git a/reme/extension/__init__.py b/reme/extension/__init__.py index 84bb2ea9..e3af3a08 100644 --- a/reme/extension/__init__.py +++ b/reme/extension/__init__.py @@ -1,5 +1,6 @@ """Extension operations and tools.""" +from . import procedural_memory from .simple_chat import SimpleChat from .stream_chat import StreamChat from .test_op import TestOp @@ -7,6 +8,7 @@ from .translate_ts import TranslateTs from ..core.registry_factory import R __all__ = [ + "procedural_memory", "SimpleChat", "StreamChat", "TestOp", diff --git a/reme/workflow/procedural_memory/__init__.py b/reme/extension/procedural_memory/__init__.py similarity index 100% rename from reme/workflow/procedural_memory/__init__.py rename to reme/extension/procedural_memory/__init__.py diff --git a/reme/workflow/procedural_memory/dump_memory.py b/reme/extension/procedural_memory/dump_memory.py similarity index 100% rename from reme/workflow/procedural_memory/dump_memory.py rename to reme/extension/procedural_memory/dump_memory.py diff --git a/reme/workflow/procedural_memory/load_memory.py b/reme/extension/procedural_memory/load_memory.py similarity index 100% rename from reme/workflow/procedural_memory/load_memory.py rename to reme/extension/procedural_memory/load_memory.py diff --git a/reme/workflow/__init__.py b/reme/extension/procedural_memory/retrieve/__init__.py similarity index 100% rename from reme/workflow/__init__.py rename to reme/extension/procedural_memory/retrieve/__init__.py diff --git a/reme/workflow/procedural_memory/retrieve/build_query.py b/reme/extension/procedural_memory/retrieve/build_query.py similarity index 100% rename from reme/workflow/procedural_memory/retrieve/build_query.py rename to reme/extension/procedural_memory/retrieve/build_query.py diff --git a/reme/workflow/procedural_memory/retrieve/build_query.yaml b/reme/extension/procedural_memory/retrieve/build_query.yaml similarity index 100% rename from reme/workflow/procedural_memory/retrieve/build_query.yaml rename to reme/extension/procedural_memory/retrieve/build_query.yaml diff --git a/reme/workflow/procedural_memory/retrieve/memory_deletion.py b/reme/extension/procedural_memory/retrieve/memory_deletion.py similarity index 100% rename from reme/workflow/procedural_memory/retrieve/memory_deletion.py rename to reme/extension/procedural_memory/retrieve/memory_deletion.py diff --git a/reme/workflow/procedural_memory/retrieve/memory_retrieval.py b/reme/extension/procedural_memory/retrieve/memory_retrieval.py similarity index 100% rename from reme/workflow/procedural_memory/retrieve/memory_retrieval.py rename to reme/extension/procedural_memory/retrieve/memory_retrieval.py diff --git a/reme/workflow/procedural_memory/retrieve/merge_memory.py b/reme/extension/procedural_memory/retrieve/merge_memory.py similarity index 100% rename from reme/workflow/procedural_memory/retrieve/merge_memory.py rename to reme/extension/procedural_memory/retrieve/merge_memory.py diff --git a/reme/workflow/procedural_memory/retrieve/rerank_memory.py b/reme/extension/procedural_memory/retrieve/rerank_memory.py similarity index 100% rename from reme/workflow/procedural_memory/retrieve/rerank_memory.py rename to reme/extension/procedural_memory/retrieve/rerank_memory.py diff --git a/reme/workflow/procedural_memory/retrieve/rerank_memory.yaml b/reme/extension/procedural_memory/retrieve/rerank_memory.yaml similarity index 100% rename from reme/workflow/procedural_memory/retrieve/rerank_memory.yaml rename to reme/extension/procedural_memory/retrieve/rerank_memory.yaml diff --git a/reme/workflow/procedural_memory/retrieve/rewrite_memory.py b/reme/extension/procedural_memory/retrieve/rewrite_memory.py similarity index 100% rename from reme/workflow/procedural_memory/retrieve/rewrite_memory.py rename to reme/extension/procedural_memory/retrieve/rewrite_memory.py diff --git a/reme/workflow/procedural_memory/retrieve/rewrite_memory.yaml b/reme/extension/procedural_memory/retrieve/rewrite_memory.yaml similarity index 100% rename from reme/workflow/procedural_memory/retrieve/rewrite_memory.yaml rename to reme/extension/procedural_memory/retrieve/rewrite_memory.yaml diff --git a/reme/workflow/procedural_memory/retrieve/update_memory_metadata.py b/reme/extension/procedural_memory/retrieve/update_memory_metadata.py similarity index 100% rename from reme/workflow/procedural_memory/retrieve/update_memory_metadata.py rename to reme/extension/procedural_memory/retrieve/update_memory_metadata.py diff --git a/reme/workflow/procedural_memory/retrieve/__init__.py b/reme/extension/procedural_memory/summary/__init__.py similarity index 100% rename from reme/workflow/procedural_memory/retrieve/__init__.py rename to reme/extension/procedural_memory/summary/__init__.py diff --git a/reme/workflow/procedural_memory/summary/comparative_extraction.py b/reme/extension/procedural_memory/summary/comparative_extraction.py similarity index 100% rename from reme/workflow/procedural_memory/summary/comparative_extraction.py rename to reme/extension/procedural_memory/summary/comparative_extraction.py diff --git a/reme/workflow/procedural_memory/summary/comparative_extraction.yaml b/reme/extension/procedural_memory/summary/comparative_extraction.yaml similarity index 100% rename from reme/workflow/procedural_memory/summary/comparative_extraction.yaml rename to reme/extension/procedural_memory/summary/comparative_extraction.yaml diff --git a/reme/workflow/procedural_memory/summary/failure_extraction.py b/reme/extension/procedural_memory/summary/failure_extraction.py similarity index 100% rename from reme/workflow/procedural_memory/summary/failure_extraction.py rename to reme/extension/procedural_memory/summary/failure_extraction.py diff --git a/reme/workflow/procedural_memory/summary/failure_extraction.yaml b/reme/extension/procedural_memory/summary/failure_extraction.yaml similarity index 100% rename from reme/workflow/procedural_memory/summary/failure_extraction.yaml rename to reme/extension/procedural_memory/summary/failure_extraction.yaml diff --git a/reme/workflow/procedural_memory/summary/memory_addition.py b/reme/extension/procedural_memory/summary/memory_addition.py similarity index 100% rename from reme/workflow/procedural_memory/summary/memory_addition.py rename to reme/extension/procedural_memory/summary/memory_addition.py diff --git a/reme/workflow/procedural_memory/summary/memory_deduplication.py b/reme/extension/procedural_memory/summary/memory_deduplication.py similarity index 100% rename from reme/workflow/procedural_memory/summary/memory_deduplication.py rename to reme/extension/procedural_memory/summary/memory_deduplication.py diff --git a/reme/workflow/procedural_memory/summary/memory_validation.py b/reme/extension/procedural_memory/summary/memory_validation.py similarity index 100% rename from reme/workflow/procedural_memory/summary/memory_validation.py rename to reme/extension/procedural_memory/summary/memory_validation.py diff --git a/reme/workflow/procedural_memory/summary/memory_validation.yaml b/reme/extension/procedural_memory/summary/memory_validation.yaml similarity index 100% rename from reme/workflow/procedural_memory/summary/memory_validation.yaml rename to reme/extension/procedural_memory/summary/memory_validation.yaml diff --git a/reme/workflow/procedural_memory/summary/success_extraction.py b/reme/extension/procedural_memory/summary/success_extraction.py similarity index 100% rename from reme/workflow/procedural_memory/summary/success_extraction.py rename to reme/extension/procedural_memory/summary/success_extraction.py diff --git a/reme/workflow/procedural_memory/summary/success_extraction.yaml b/reme/extension/procedural_memory/summary/success_extraction.yaml similarity index 100% rename from reme/workflow/procedural_memory/summary/success_extraction.yaml rename to reme/extension/procedural_memory/summary/success_extraction.yaml diff --git a/reme/workflow/procedural_memory/summary/trajectory_preprocess.py b/reme/extension/procedural_memory/summary/trajectory_preprocess.py similarity index 100% rename from reme/workflow/procedural_memory/summary/trajectory_preprocess.py rename to reme/extension/procedural_memory/summary/trajectory_preprocess.py diff --git a/reme/workflow/procedural_memory/summary/trajectory_segmentation.py b/reme/extension/procedural_memory/summary/trajectory_segmentation.py similarity index 100% rename from reme/workflow/procedural_memory/summary/trajectory_segmentation.py rename to reme/extension/procedural_memory/summary/trajectory_segmentation.py diff --git a/reme/workflow/procedural_memory/summary/trajectory_segmentation.yaml b/reme/extension/procedural_memory/summary/trajectory_segmentation.yaml similarity index 100% rename from reme/workflow/procedural_memory/summary/trajectory_segmentation.yaml rename to reme/extension/procedural_memory/summary/trajectory_segmentation.yaml diff --git a/reme/workflow/procedural_memory/utils.py b/reme/extension/procedural_memory/utils.py similarity index 100% rename from reme/workflow/procedural_memory/utils.py rename to reme/extension/procedural_memory/utils.py diff --git a/reme/memory/vector_based/procedural/procedural_retriever.py b/reme/memory/vector_based/procedural/procedural_retriever.py index 669741d8..376e59e4 100644 --- a/reme/memory/vector_based/procedural/procedural_retriever.py +++ b/reme/memory/vector_based/procedural/procedural_retriever.py @@ -5,11 +5,12 @@ from ....core.enumeration import Role, MemoryType from ....core.schema import Message from ....core.utils import format_messages + class ProceduralRetriever(BaseMemoryAgent): """Agent responsible for retrieving procedural memories.""" memory_type: MemoryType = MemoryType.PROCEDURAL - + async def build_messages(self) -> list[Message]: """Build messages with system prompt and user message.""" if self.context.get("query"): @@ -21,15 +22,15 @@ class ProceduralRetriever(BaseMemoryAgent): return [ Message( - role=Role.SYSTEM, + role=Role.SYSTEM, content=self.prompt_format( prompt_name="system_prompt", meta_memory_info=await self._read_meta_memories(), context=context, - ) + ), ), Message( - role=Role.USER, - content=self.get_prompt("user_message") + role=Role.USER, + content=self.get_prompt("user_message"), ), - ] \ No newline at end of file + ] diff --git a/reme/memory/vector_based/procedural/procedural_summarizer.py b/reme/memory/vector_based/procedural/procedural_summarizer.py index dcba61ca..9efdb5d9 100644 --- a/reme/memory/vector_based/procedural/procedural_summarizer.py +++ b/reme/memory/vector_based/procedural/procedural_summarizer.py @@ -5,6 +5,7 @@ from ....core.enumeration import Role, MemoryType from ....core.schema import Message from ....core.utils import format_messages + class ProceduralSummarizer(BaseMemoryAgent): """Agent responsible for summarizing procedural memories.""" @@ -13,18 +14,18 @@ class ProceduralSummarizer(BaseMemoryAgent): async def build_messages(self) -> list[Message]: return [ Message( - role=Role.SYSTEM, + role=Role.SYSTEM, content=self.prompt_format( prompt_name="system_prompt", context=self.description + "\n" + format_messages(self.get_messages()), outcome="successful task completion" if self.success else "task failure", memory_type=self.memory_type.value, memory_target=self.memory_target, - ) + ), ), Message( - role=Role.USER, - content=self.get_prompt("user_message") + role=Role.USER, + content=self.get_prompt("user_message"), ), ] diff --git a/reme/workflow/procedural_memory/summary/__init__.py b/reme/workflow/procedural_memory/summary/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/test_keyword_search_performance.py b/tests/test_keyword_search_performance.py index 345d5f7e..5cb26e06 100644 --- a/tests/test_keyword_search_performance.py +++ b/tests/test_keyword_search_performance.py @@ -20,13 +20,48 @@ from reme.core.schema.memory_chunk import MemoryChunk def generate_random_text(length: int = 200) -> str: """Generate random text content.""" words = [ - "python", "function", "class", "memory", "search", "algorithm", - "database", "vector", "embedding", "chunk", "file", "store", - "query", "result", "performance", "test", "data", "index", - "keyword", "text", "content", "process", "system", "module", - "import", "return", "value", "parameter", "method", "object", - "instance", "variable", "constant", "string", "integer", "float", - "list", "dictionary", "tuple", "set", "array", "matrix", + "python", + "function", + "class", + "memory", + "search", + "algorithm", + "database", + "vector", + "embedding", + "chunk", + "file", + "store", + "query", + "result", + "performance", + "test", + "data", + "index", + "keyword", + "text", + "content", + "process", + "system", + "module", + "import", + "return", + "value", + "parameter", + "method", + "object", + "instance", + "variable", + "constant", + "string", + "integer", + "float", + "list", + "dictionary", + "tuple", + "set", + "array", + "matrix", ] text_words = [] current_length = 0 @@ -59,6 +94,7 @@ def create_test_chunks(count: int = 1000, text_length: int = 10000) -> list[Memo async def run_performance_test(): """Run keyword_search performance test.""" + # pylint: disable=protected-access # Setup test_db_path = Path("./test_keyword_perf") test_db_path.mkdir(exist_ok=True) @@ -96,7 +132,7 @@ async def run_performance_test(): for _ in range(num_runs): start = time.perf_counter() - results = await store.keyword_search(query, limit=10) + _ = await store.keyword_search(query, limit=10) elapsed = time.perf_counter() - start times.append(elapsed)