Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
d5fc3e3
fix:component_init will initialize redis module when setting use_redi…
tangg555 Jan 20, 2026
79fdc38
fix: memories without sources will throw an error
tangg555 Jan 20, 2026
d84a614
refactor: limit consumer side of task queueing
tangg555 Jan 20, 2026
eccc62f
Merge branch 'dev-20260119-v2.0.3' into dev-0119
tangg555 Jan 20, 2026
d960c75
fix: revise search priority and serach filter for mix search
tangg555 Jan 20, 2026
240ee3a
fix: remove local history manager, and make mixture search degrade to…
tangg555 Jan 20, 2026
12907bc
Merge branch 'dev-20260119-v2.0.3' into dev-0119
CaralHsi Jan 21, 2026
89bbbd4
Merge remote-tracking branch 'upstream/dev-20260119-v2.0.3' into refa…
tangg555 Jan 21, 2026
61c8d77
refactor: the initial version of scheduler handler refactoring
tangg555 Jan 22, 2026
ad9ee2d
refactor: refactor web log feature from base scheduler to a new module
tangg555 Jan 22, 2026
a56deb4
refactor(scheduler): Unify retrieval logic by splitting SchedulerRetr…
Jan 22, 2026
0d932ca
refactor(searcher): Move memory enhancement methods to AdvancedSearcher
Jan 22, 2026
778673a
fix(refactor): Address review feedback on architecture and config
Jan 22, 2026
d017d21
fix: Remove empty function declaration causing syntax error
Jan 22, 2026
dca0de3
test: Fix test assertions and code formatting
Jan 22, 2026
694d35a
fix: guard AdvancedSearcher enhancements
Jan 22, 2026
1663831
chore: format advanced_searcher
Jan 22, 2026
e5358f3
Merge pull request #1 from tangg555/refactor-scheduler-Retriever
tangg555 Jan 23, 2026
9778c03
refactor(scheduler): extract activation memory and monitor logic
tangg555 Jan 26, 2026
43125e8
Merge branch 'dev-20260126-v2.0.4' into refactor-scheduler
CaralHsi Jan 26, 2026
2cc6e7a
fix(advanced_searcher): preserve memory order during concurrent enhan…
Jan 27, 2026
1445712
fix: fix the prompt composal error caused by incorrect changed fine s…
tangg555 Jan 28, 2026
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
5 changes: 5 additions & 0 deletions src/memos/configs/mem_scheduler.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
DEFAULT_CONSUME_INTERVAL_SECONDS,
DEFAULT_CONTEXT_WINDOW_SIZE,
DEFAULT_MAX_INTERNAL_MESSAGE_QUEUE_SIZE,
DEFAULT_MONITOR_INTERVAL_SECONDS,
DEFAULT_MULTI_TASK_RUNNING_TIMEOUT,
DEFAULT_SCHEDULER_RETRIEVER_BATCH_SIZE,
DEFAULT_SCHEDULER_RETRIEVER_RETRIES,
Expand Down Expand Up @@ -68,6 +69,10 @@ class BaseSchedulerConfig(BaseConfig):
default=DEFAULT_MAX_INTERNAL_MESSAGE_QUEUE_SIZE,
description="Maximum size of internal message queue when not using Redis",
)
monitor_interval_seconds: int = Field(
default=DEFAULT_MONITOR_INTERVAL_SECONDS,
description="Interval in seconds for monitoring memory usage",
)
multi_task_running_timeout: int = Field(
default=DEFAULT_MULTI_TASK_RUNNING_TIMEOUT,
description="Default timeout for multi-task running operations in seconds",
Expand Down
28 changes: 25 additions & 3 deletions src/memos/mem_scheduler/analyzer/scheduler_for_eval.py
Original file line number Diff line number Diff line change
Expand Up @@ -164,11 +164,33 @@ def update_working_memory_for_eval(
new_candidates = []
for item in missing_evidences:
logger.info(f"missing_evidences: {item}")
results: list[TextualMemoryItem] = self.retriever.search(

# Determine search mode from method
from memos.mem_scheduler.schemas.general_schemas import (
TreeTextMemory_FINE_SEARCH_METHOD,
TreeTextMemory_SEARCH_METHOD,
)
from memos.types.general_types import SearchMode

# Convert search_method to SearchMode
if self.search_method == TreeTextMemory_FINE_SEARCH_METHOD:
mode = SearchMode.FINE
elif self.search_method == TreeTextMemory_SEARCH_METHOD:
mode = SearchMode.FAST
else:
# Fallback to FAST mode for unknown methods
logger.warning(
f"Unknown search_method '{self.search_method}', falling back to SearchMode.FAST"
)
mode = SearchMode.FAST

# Use unified search service
results: list[TextualMemoryItem] = self.search_service.search(
query=item,
user_id=user_id,
mem_cube=mem_cube,
top_k=k_per_evidence,
method=self.search_method,
mode=mode,
)
logger.info(
f"search results for {missing_evidences}: {[one.memory for one in results]}"
Expand Down Expand Up @@ -226,7 +248,7 @@ def evaluate_memory_answer_ability(

try:
# Extract JSON response
from memos.mem_scheduler.utils.misc_utils import extract_json_obj
from memos.utils import extract_json_obj

result = extract_json_obj(response)

Expand Down
Loading