Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
04f412b
fix Searcher input bug
Oct 30, 2025
1798f60
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Nov 4, 2025
a2b55c7
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Nov 5, 2025
db9041c
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Nov 5, 2025
d036c53
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Nov 11, 2025
875c551
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Nov 19, 2025
36b93eb
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Nov 25, 2025
81ec520
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Nov 26, 2025
b4fbfde
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Nov 27, 2025
4a4746e
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Nov 27, 2025
faec340
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Dec 1, 2025
d906f0d
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Dec 2, 2025
6298c64
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Dec 3, 2025
0727c25
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Dec 3, 2025
294c1e6
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Dec 3, 2025
6076935
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Dec 4, 2025
045196c
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Dec 4, 2025
d081aaa
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Dec 7, 2025
70efbf3
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Dec 9, 2025
c6768b6
Merge branch 'dev' of github.com:MemTensor/MemOS into dev
Dec 9, 2025
55f5835
init component
Dec 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/memos/mem_feedback/feedback.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ def __init__(self, config: MemFeedbackConfig):
},
is_reorganize=self.is_reorganize,
)
self.searcher: Searcher = self.memory_manager.searcher
self.searcher: Searcher = None
self.DB_IDX_READY = False

def _batch_embed(self, texts: list[str], embed_bs: int = 5):
Expand Down
22 changes: 21 additions & 1 deletion src/memos/mem_scheduler/base_scheduler.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
from memos.log import get_logger
from memos.mem_cube.base import BaseMemCube
from memos.mem_cube.general import GeneralMemCube
from memos.mem_feedback.simple_feedback import SimpleMemFeedback
from memos.mem_scheduler.general_modules.init_components_for_scheduler import init_components
from memos.mem_scheduler.general_modules.misc import AutoDroppingQueue as Queue
from memos.mem_scheduler.general_modules.scheduler_logger import SchedulerLoggerModule
Expand Down Expand Up @@ -185,12 +186,13 @@ def __init__(self, config: BaseSchedulerConfig):
self.auth_config_path: str | Path | None = self.config.get("auth_config_path", None)
self.auth_config = None
self.rabbitmq_config = None
self.feedback_server = None

def init_mem_cube(
self,
mem_cube: BaseMemCube,
searcher: Searcher | None = None,
feedback_server: Searcher | None = None,
feedback_server: SimpleMemFeedback | None = None,
):
if mem_cube is None:
logger.error("mem_cube is None, cannot initialize", stack_info=True)
Expand Down Expand Up @@ -291,6 +293,24 @@ def mem_cube(self) -> BaseMemCube:
)
return self.current_mem_cube

@property
def feedback_server(self) -> SimpleMemFeedback:
"""The memory cube associated with this MemChat."""
if self._feedback_server is None:
logger.error("feedback_server is None when accessed", stack_info=True)
try:
self.components = init_components()
self._feedback_server: SimpleMemFeedback = self.components["feedback_server"]
except Exception:
logger.info(
"No environment available to initialize feedback_server. Using fallback feedback_server."
)
return self._feedback_server

@feedback_server.setter
def feedback_server(self, value: SimpleMemFeedback) -> None:
self._feedback_server = value

@mem_cube.setter
def mem_cube(self, value: BaseMemCube) -> None:
"""The memory cube associated with this MemChat."""
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import json
import os

from typing import Any
from typing import TYPE_CHECKING, Any

from memos.api.config import APIConfig
from memos.configs.embedder import EmbedderConfigFactory
Expand All @@ -16,6 +16,7 @@
from memos.llms.factory import LLMFactory
from memos.log import get_logger
from memos.mem_cube.navie import NaiveMemCube
from memos.mem_feedback.simple_feedback import SimpleMemFeedback
from memos.mem_reader.factory import MemReaderFactory
from memos.memories.textual.prefer_text_memory.config import (
AdderConfigFactory,
Expand All @@ -34,6 +35,10 @@
InternetRetrieverFactory,
)
from memos.memories.textual.tree_text_memory.retrieve.retrieve_utils import FastTokenizer


if TYPE_CHECKING:
from memos.memories.textual.tree_text_memory.retrieve.searcher import Searcher
from memos.reranker.factory import RerankerFactory
from memos.vec_dbs.factory import VecDBFactory

Expand Down Expand Up @@ -385,7 +390,21 @@ def init_components() -> dict[str, Any]:
act_mem=None,
para_mem=None,
)

tree_mem: SimpleTreeTextMemory = naive_mem_cube.text_mem
searcher: Searcher = tree_mem.get_searcher(
manual_close_internet=os.getenv("ENABLE_INTERNET", "true").lower() == "false",
moscube=False,
process_llm=mem_reader.llm,
)
# Initialize feedback server
feedback_server = SimpleMemFeedback(
llm=llm,
embedder=embedder,
graph_store=graph_db,
memory_manager=memory_manager,
mem_reader=mem_reader,
searcher=searcher,
)
# Return all components as a dictionary for easy access and extension
return {
"naive_mem_cube": naive_mem_cube,
}
return {"naive_mem_cube": naive_mem_cube, "feedback_server": feedback_server}