Skip to content

chore: bump version to v2.0.0#716

Merged
fridayL merged 411 commits intomainfrom
dev
Dec 24, 2025
Merged

chore: bump version to v2.0.0#716
fridayL merged 411 commits intomainfrom
dev

Conversation

@CarltonXiang
Copy link
Collaborator

Description

Summary: (summary)

Fix: #(issue)

Docs Issue/PR: (docs-issue-or-pr-link)

Reviewer: @(reviewer)

Checklist:

  • I have performed a self-review of my own code | 我已自行检查了自己的代码
  • I have commented my code in hard-to-understand areas | 我已在难以理解的地方对代码进行了注释
  • I have added tests that prove my fix is effective or that my feature works | 我已添加测试以证明我的修复有效或功能正常
  • I have created related documentation issue/PR in MemOS-Docs (if applicable) | 我已在 MemOS-Docs 中创建了相关的文档 issue/PR(如果适用)
  • I have linked the issue to this PR (if applicable) | 我已将 issue 链接到此 PR(如果适用)
  • I have mentioned the person who will review this PR | 我已提及将审查此 PR 的人

tangg555 and others added 30 commits December 2, 2025 20:20
* feat: timer add log args

* feat: timer add log args

* feat: timer add log args

---------

Co-authored-by: harvey_xiang <harvey_xiang22@163.com>
Co-authored-by: CaralHsi <caralhsi@gmail.com>
* debug an error function name

* feat: Add DynamicCache compatibility for different transformers versions

- Fix build_kv_cache method in hf.py to handle both old and new DynamicCache structures
  - Support new 'layers' attribute with key_cache/value_cache or keys/values
  - Maintain backward compatibility with direct key_cache/value_cache attributes
  - Add comprehensive error handling and logging for unsupported structures

- Update move_dynamic_cache_htod function in kv.py for cross-version compatibility
  - Handle layers-based structure in newer transformers versions
  - Support alternative attribute names (keys/values vs key_cache/value_cache)
  - Preserve original functionality for older transformers versions

- Add comprehensive tests for DynamicCache compatibility
  - Test activation memory update with mock DynamicCache layers
  - Verify layers attribute access across different transformers versions
  - Fix scheduler logger mock to include memory_manager attribute
This resolves AttributeError issues when using different versions of the
transformers library and ensures robust handling of DynamicCache objects.

debug

* feat: implement APIAnalyzerForScheduler for memory operations

- Add APIAnalyzerForScheduler class with search/add operations
- Support requests and http.client with connection reuse
- Include comprehensive error handling and dynamic configuration
- Add English test suite with real-world conversation scenarios

* feat: Add search_ws API endpoint and enhance API analyzer functionality

- Add search_ws endpoint in server_router.py for scheduler-enabled search
- Fix missing imports: time module, SearchRequest class, and get_mos_product_instance function
- Implement search_ws method in api_analyzer.py with HTTP client support
- Add _search_ws_with_requests and _search_ws_with_http_client private methods
- Include search_ws usage example in demonstration code
- Enhance scheduler and dispatcher capabilities for improved memory management
- Expand test coverage to ensure functionality stability

This update primarily strengthens the memory scheduling system's search capabilities,
providing users with more flexible API interface options.

* fix: resolve test failures and warnings in test suite

- Fix Pydantic serialization warning in test_memos_chen_tang_hello_world
  * Add warnings filter to suppress UserWarning from Pydantic serialization

- Fix KeyError: 'past_key_values' in test_build_kv_cache_and_generation
  * Update mock configuration to properly return forward_output with past_key_values
  * Add DynamicCache version compatibility handling in test mocks
  * Support both old and new transformers versions with layers/key_cache attributes
  * Improve assertion logic to check all model calls for required parameters

- Update base_scheduler.py to use centralized DEFAULT_MAX_INTERNAL_MESSAGE_QUEUE_SIZE constant
  * Add import for DEFAULT_MAX_INTERNAL_MESSAGE_QUEUE_SIZE from general_schemas
  * Replace hardcoded value 100 with configurable constant (1000)

All tests now pass successfully with proper version compatibility handling.

* feat: add a test_robustness execution to test thread pool execution

* feat: optimize scheduler configuration and API search functionality

- Add DEFAULT_TOP_K and DEFAULT_CONTEXT_WINDOW_SIZE global constants in general_schemas.py
- Update base_scheduler.py to use global default values instead of hardcoded numbers
- Fix SchedulerConfigFactory initialization issue by using keyword argument expansion
- Resolve UnboundLocalError variable conflict in search_memories_ws function
- Fix indentation and parameter issues in OptimizedScheduler search_for_api method
- Improve code standardization and maintainability

* feat: Add Redis auto-initialization with fallback strategies

- Add auto_initialize_redis() with config/env/local fallback
- Move Redis logic from dispatcher_monitor to redis_service
- Update base_scheduler to use auto initialization
- Add proper resource cleanup and error handling

* feat: add database connection management to ORM module

- Add MySQL engine loading from environment variables in BaseDBManager
- Add Redis connection loading from environment variables in BaseDBManager
- Enhance database configuration validation and error handling
- Complete database adapter infrastructure for ORM module
- Provide unified database connection management interface

This update provides comprehensive database connection management capabilities
for the mem_scheduler module, supporting dynamic MySQL and Redis configuration
loading from environment variables, establishing reliable data persistence
foundation for scheduling services and API services.

* remove part of test

* feat: add Redis-based ORM with multiprocess synchronization

- Add RedisDBManager and RedisLockableORM classes
- Implement atomic locking mechanism for concurrent access
- Add merge functionality for different object types
- Include comprehensive test suite and examples
- Fix Redis key type conflicts in lock operations

* fix: resolve scheduler module import and Redis integration issues

* revise naive memcube creation in server router

* remove long-time tests in test_scheduler

* remove redis test which needs .env

* refactor all codes about mixture search with scheduler

* fix: resolve Redis API synchronization issues and implement search API with reranker

- Fix running_entries to running_task_ids migration across codebase
- Update sync_search_data method to properly handle TaskRunningStatus
- Correct variable naming and logic in API synchronization flow
- Implement search API endpoint with reranker functionality
- Update test files to reflect new running_task_ids convention
- Ensure proper Redis state management for concurrent tasks

* remove a test for api module

* revise to pass the test suite

* address some bugs to make mix_search normally running

* modify codes according to evaluation logs

* feat: Optimize mixture search and enhance API client

* feat: Add conversation_turn tracking for session-based memory search

    - Add conversation_turn field to APIMemoryHistoryEntryItem schema with default value 0
    - Implement session counter in OptimizedScheduler to track turn count per session_id
    - Update sync_search_data method to accept and store conversation_turn parameter
    - Maintain session history with LRU eviction (max 5 sessions)
    - Rename conversation_id to session_id for consistency with request object
    - Enable direct access to session_id from search requests

    This feature allows tracking conversation turns within the same session,
    providing better context for memory retrieval and search history management.

* adress time bug in monitor

* revise simple tree

* add mode to evaluation client; rewrite print to logger.info in db files

* feat: 1. add redis queue for scheduler 2. finish the code related to mix search and fine search

* debug the working memory code

* addressed a range of bugs to make scheduler running correctly

* remove test_dispatch_parallel test

* print change to logger.info

* adjucted the core code related to fine and mixture apis

* feat: create task queue to wrap local queue and redis queue. queue now split FIFO to multi queue from different users. addressed a range of bugs

* fix bugs: debug bugs about internet trigger

* debug get searcher mode

* feat: add manual internet

* Fix: fix code format

* feat: add strategy for fine search

* debug redis queue

* debug redis queue

* fix bugs: completely addressed bugs about redis queue

* refactor: add searcher to handler_init; remove info log from task_queue

* refactor: modify analyzer

* refactor: revise locomo_eval to make it support llm other than gpt-4o-mini

* feat: develop advanced searcher with deep search

* feat: finish a complete version of deep search

* refactor: refactor deep search feature, now only allowing one-round deep search

* feat: implement the feature of get_tasks_status, but completed tasks are not recorded yet; waiting to be developed

* debuging merged code; searching memories have bugs

* change logging level

* debug api evaluation

* fix bugs: change top to top_k

* change log

* refactor: rewrite deep search to make it work better

* change num_users

* feat: developed and test task broker and orchestrator

* Fix: Include task_id in ScheduleMessageItem serialization

* Fix(Scheduler): Correct event log creation and task_id serialization

* Feat(Scheduler): Add conditional detailed logging for KB updates
Fix(Scheduler): Correct create_event_log indentation

* Fix(Scheduler): Correct create_event_log call sites

Reverts previous incorrect fix to scheduler_logger.py and correctly fixes the TypeError at the call sites in general_scheduler.py by removing the invalid 'log_content' kwarg and adding the missing memory_type kwargs.

* Fix(Scheduler): Deserialize task_id in ScheduleMessageItem.from_dict

This completes the fix for the task_id loss. The 'to_dict' method was previously fixed to serialize the task_id, but the corresponding 'from_dict' method was not updated to deserialize it, causing the value to be lost when messages were read from the queue.

* Refactor(Config): Centralize RabbitMQ config override logic

Moves all environment variable override logic into initialize_rabbitmq for a single source of truth. This ensures Nacos-provided environment variables for all RabbitMQ settings are respected over file configurations. Also removes now-redundant logging from the publish method.

* Revert "Refactor(Config): Centralize RabbitMQ config override logic"

This reverts commit b8cc42a.

* Fix(Redis): Convert None task_id to empty string during serialization

Resolves DataError in Redis Streams when task_id is None by ensuring
it's serialized as an empty string instead of None, which Redis does
not support. Applies to ScheduleMessageItem.to_dict method.

* Feat(Log): Add diagnostic log to /product/add endpoint

Adds an INFO level diagnostic log message at the beginning of the
create_memory function to help verify code deployment.

* Feat(Log): Add comprehensive diagnostic logs for /product/add flow

Introduces detailed INFO level diagnostic logs across the entire call chain
for the /product/add API endpoint. These logs include relevant context,
such as full request bodies, message items before scheduler submission,
and messages before RabbitMQ publication, to aid in debugging deployment
discrepancies and tracing data flow, especially concerning task_id
propagation.

Logs added/enhanced in:
- src/memos/api/routers/product_router.py
- src/memos/api/handlers/add_handler.py
- src/memos/multi_mem_cube/single_cube.py
- src/memos/mem_os/core.py
- src/memos/mem_scheduler/general_scheduler.py
- src/memos/mem_scheduler/base_scheduler.py
- src/memos/mem_scheduler/webservice_modules/rabbitmq_service.py

* Feat(Log): Add comprehensive diagnostic logs for /product/add flow and apply ruff formatting

Introduces detailed INFO level diagnostic logs across the entire call chain
for the /product/add API endpoint. These logs include relevant context,
such as full request bodies, message items before scheduler submission,
and messages before RabbitMQ publication, to aid in debugging deployment
discrepancies and tracing data flow, especially concerning task_id
propagation.

Also applies automatic code formatting using ruff format to all modified files.

Logs added/enhanced in:
- src/memos/api/routers/product_router.py
- src/memos/api/handlers/add_handler.py
- src/memos/multi_mem_cube/single_cube.py
- src/memos/mem_os/core.py
- src/memos/mem_scheduler/general_scheduler.py
- src/memos/mem_scheduler/base_scheduler.py
- src/memos/mem_scheduler/webservice_modules/rabbitmq_service.py

* Fix(rabbitmq): Use env vars for KB updates and improve logging

* Fix(rabbitmq): Explicitly use MEMSCHEDULER_RABBITMQ_EXCHANGE_NAME and empty routing key for KB updates

* Fix(add_handler): Update diagnostic log timestamp

* Fix(add_handler): Update diagnostic log timestamp again (auto-updated)

* Update default scheduler redis stream prefix

* Update diagnostic timestamp in add handler

* Allow optional log_content in scheduler event log

* feat: new examples to test scheduelr

* feat: fair scheduler and refactor of search function

* fix bugs: address bugs caused by outdated test code

* feat: add task_schedule_monitor

* fix: handle nil mem_cube in scheduler message consumers

* fix bugs: response messaged changed in memos code

* refactor: revise task queue to allow it dealing with pending tasks when no task remaining

* refactor: revise mixture search and scheduler logger

* Fix scheduler task tracking

* fix bugs: address ai review issues

* fix bugs: address rabbitmq initialization failed when doing pytest

* fix(scheduler): Correct dispatcher task and future tracking

* Remove dump.rdb

* fix bugs: revised message ack logics; refactor add log function

* fix bugs: change Chinese notation to English

* fix indent error in logger

* fix bugs: addressed the issues caused by multiprocessing codes obtain same pending tasks

* addMemory/updateMemory log

* fix bugs: modify redis queue logics to make it run as expected

* feat: add a default mem cube initialization for scheduler

---------

Co-authored-by: fridayL <lcy081099@gmail.com>
Co-authored-by: glin1993@outlook.com <>
Co-authored-by: Zehao Lin <glin1993@outlook.com>
* debug an error function name

* feat: Add DynamicCache compatibility for different transformers versions

- Fix build_kv_cache method in hf.py to handle both old and new DynamicCache structures
  - Support new 'layers' attribute with key_cache/value_cache or keys/values
  - Maintain backward compatibility with direct key_cache/value_cache attributes
  - Add comprehensive error handling and logging for unsupported structures

- Update move_dynamic_cache_htod function in kv.py for cross-version compatibility
  - Handle layers-based structure in newer transformers versions
  - Support alternative attribute names (keys/values vs key_cache/value_cache)
  - Preserve original functionality for older transformers versions

- Add comprehensive tests for DynamicCache compatibility
  - Test activation memory update with mock DynamicCache layers
  - Verify layers attribute access across different transformers versions
  - Fix scheduler logger mock to include memory_manager attribute
This resolves AttributeError issues when using different versions of the
transformers library and ensures robust handling of DynamicCache objects.

debug

* feat: implement APIAnalyzerForScheduler for memory operations

- Add APIAnalyzerForScheduler class with search/add operations
- Support requests and http.client with connection reuse
- Include comprehensive error handling and dynamic configuration
- Add English test suite with real-world conversation scenarios

* feat: Add search_ws API endpoint and enhance API analyzer functionality

- Add search_ws endpoint in server_router.py for scheduler-enabled search
- Fix missing imports: time module, SearchRequest class, and get_mos_product_instance function
- Implement search_ws method in api_analyzer.py with HTTP client support
- Add _search_ws_with_requests and _search_ws_with_http_client private methods
- Include search_ws usage example in demonstration code
- Enhance scheduler and dispatcher capabilities for improved memory management
- Expand test coverage to ensure functionality stability

This update primarily strengthens the memory scheduling system's search capabilities,
providing users with more flexible API interface options.

* fix: resolve test failures and warnings in test suite

- Fix Pydantic serialization warning in test_memos_chen_tang_hello_world
  * Add warnings filter to suppress UserWarning from Pydantic serialization

- Fix KeyError: 'past_key_values' in test_build_kv_cache_and_generation
  * Update mock configuration to properly return forward_output with past_key_values
  * Add DynamicCache version compatibility handling in test mocks
  * Support both old and new transformers versions with layers/key_cache attributes
  * Improve assertion logic to check all model calls for required parameters

- Update base_scheduler.py to use centralized DEFAULT_MAX_INTERNAL_MESSAGE_QUEUE_SIZE constant
  * Add import for DEFAULT_MAX_INTERNAL_MESSAGE_QUEUE_SIZE from general_schemas
  * Replace hardcoded value 100 with configurable constant (1000)

All tests now pass successfully with proper version compatibility handling.

* feat: add a test_robustness execution to test thread pool execution

* feat: optimize scheduler configuration and API search functionality

- Add DEFAULT_TOP_K and DEFAULT_CONTEXT_WINDOW_SIZE global constants in general_schemas.py
- Update base_scheduler.py to use global default values instead of hardcoded numbers
- Fix SchedulerConfigFactory initialization issue by using keyword argument expansion
- Resolve UnboundLocalError variable conflict in search_memories_ws function
- Fix indentation and parameter issues in OptimizedScheduler search_for_api method
- Improve code standardization and maintainability

* feat: Add Redis auto-initialization with fallback strategies

- Add auto_initialize_redis() with config/env/local fallback
- Move Redis logic from dispatcher_monitor to redis_service
- Update base_scheduler to use auto initialization
- Add proper resource cleanup and error handling

* feat: add database connection management to ORM module

- Add MySQL engine loading from environment variables in BaseDBManager
- Add Redis connection loading from environment variables in BaseDBManager
- Enhance database configuration validation and error handling
- Complete database adapter infrastructure for ORM module
- Provide unified database connection management interface

This update provides comprehensive database connection management capabilities
for the mem_scheduler module, supporting dynamic MySQL and Redis configuration
loading from environment variables, establishing reliable data persistence
foundation for scheduling services and API services.

* remove part of test

* feat: add Redis-based ORM with multiprocess synchronization

- Add RedisDBManager and RedisLockableORM classes
- Implement atomic locking mechanism for concurrent access
- Add merge functionality for different object types
- Include comprehensive test suite and examples
- Fix Redis key type conflicts in lock operations

* fix: resolve scheduler module import and Redis integration issues

* revise naive memcube creation in server router

* remove long-time tests in test_scheduler

* remove redis test which needs .env

* refactor all codes about mixture search with scheduler

* fix: resolve Redis API synchronization issues and implement search API with reranker

- Fix running_entries to running_task_ids migration across codebase
- Update sync_search_data method to properly handle TaskRunningStatus
- Correct variable naming and logic in API synchronization flow
- Implement search API endpoint with reranker functionality
- Update test files to reflect new running_task_ids convention
- Ensure proper Redis state management for concurrent tasks

* remove a test for api module

* revise to pass the test suite

* address some bugs to make mix_search normally running

* modify codes according to evaluation logs

* feat: Optimize mixture search and enhance API client

* feat: Add conversation_turn tracking for session-based memory search

    - Add conversation_turn field to APIMemoryHistoryEntryItem schema with default value 0
    - Implement session counter in OptimizedScheduler to track turn count per session_id
    - Update sync_search_data method to accept and store conversation_turn parameter
    - Maintain session history with LRU eviction (max 5 sessions)
    - Rename conversation_id to session_id for consistency with request object
    - Enable direct access to session_id from search requests

    This feature allows tracking conversation turns within the same session,
    providing better context for memory retrieval and search history management.

* adress time bug in monitor

* revise simple tree

* add mode to evaluation client; rewrite print to logger.info in db files

* feat: 1. add redis queue for scheduler 2. finish the code related to mix search and fine search

* debug the working memory code

* addressed a range of bugs to make scheduler running correctly

* remove test_dispatch_parallel test

* print change to logger.info

* adjucted the core code related to fine and mixture apis

* feat: create task queue to wrap local queue and redis queue. queue now split FIFO to multi queue from different users. addressed a range of bugs

* fix bugs: debug bugs about internet trigger

* debug get searcher mode

* feat: add manual internet

* Fix: fix code format

* feat: add strategy for fine search

* debug redis queue

* debug redis queue

* fix bugs: completely addressed bugs about redis queue

* refactor: add searcher to handler_init; remove info log from task_queue

* refactor: modify analyzer

* refactor: revise locomo_eval to make it support llm other than gpt-4o-mini

* feat: develop advanced searcher with deep search

* feat: finish a complete version of deep search

* refactor: refactor deep search feature, now only allowing one-round deep search

* feat: implement the feature of get_tasks_status, but completed tasks are not recorded yet; waiting to be developed

* debuging merged code; searching memories have bugs

* change logging level

* debug api evaluation

* fix bugs: change top to top_k

* change log

* refactor: rewrite deep search to make it work better

* change num_users

* feat: developed and test task broker and orchestrator

* Fix: Include task_id in ScheduleMessageItem serialization

* Fix(Scheduler): Correct event log creation and task_id serialization

* Feat(Scheduler): Add conditional detailed logging for KB updates
Fix(Scheduler): Correct create_event_log indentation

* Fix(Scheduler): Correct create_event_log call sites

Reverts previous incorrect fix to scheduler_logger.py and correctly fixes the TypeError at the call sites in general_scheduler.py by removing the invalid 'log_content' kwarg and adding the missing memory_type kwargs.

* Fix(Scheduler): Deserialize task_id in ScheduleMessageItem.from_dict

This completes the fix for the task_id loss. The 'to_dict' method was previously fixed to serialize the task_id, but the corresponding 'from_dict' method was not updated to deserialize it, causing the value to be lost when messages were read from the queue.

* Refactor(Config): Centralize RabbitMQ config override logic

Moves all environment variable override logic into initialize_rabbitmq for a single source of truth. This ensures Nacos-provided environment variables for all RabbitMQ settings are respected over file configurations. Also removes now-redundant logging from the publish method.

* Revert "Refactor(Config): Centralize RabbitMQ config override logic"

This reverts commit b8cc42a.

* Fix(Redis): Convert None task_id to empty string during serialization

Resolves DataError in Redis Streams when task_id is None by ensuring
it's serialized as an empty string instead of None, which Redis does
not support. Applies to ScheduleMessageItem.to_dict method.

* Feat(Log): Add diagnostic log to /product/add endpoint

Adds an INFO level diagnostic log message at the beginning of the
create_memory function to help verify code deployment.

* Feat(Log): Add comprehensive diagnostic logs for /product/add flow

Introduces detailed INFO level diagnostic logs across the entire call chain
for the /product/add API endpoint. These logs include relevant context,
such as full request bodies, message items before scheduler submission,
and messages before RabbitMQ publication, to aid in debugging deployment
discrepancies and tracing data flow, especially concerning task_id
propagation.

Logs added/enhanced in:
- src/memos/api/routers/product_router.py
- src/memos/api/handlers/add_handler.py
- src/memos/multi_mem_cube/single_cube.py
- src/memos/mem_os/core.py
- src/memos/mem_scheduler/general_scheduler.py
- src/memos/mem_scheduler/base_scheduler.py
- src/memos/mem_scheduler/webservice_modules/rabbitmq_service.py

* Feat(Log): Add comprehensive diagnostic logs for /product/add flow and apply ruff formatting

Introduces detailed INFO level diagnostic logs across the entire call chain
for the /product/add API endpoint. These logs include relevant context,
such as full request bodies, message items before scheduler submission,
and messages before RabbitMQ publication, to aid in debugging deployment
discrepancies and tracing data flow, especially concerning task_id
propagation.

Also applies automatic code formatting using ruff format to all modified files.

Logs added/enhanced in:
- src/memos/api/routers/product_router.py
- src/memos/api/handlers/add_handler.py
- src/memos/multi_mem_cube/single_cube.py
- src/memos/mem_os/core.py
- src/memos/mem_scheduler/general_scheduler.py
- src/memos/mem_scheduler/base_scheduler.py
- src/memos/mem_scheduler/webservice_modules/rabbitmq_service.py

* Fix(rabbitmq): Use env vars for KB updates and improve logging

* Fix(rabbitmq): Explicitly use MEMSCHEDULER_RABBITMQ_EXCHANGE_NAME and empty routing key for KB updates

* Fix(add_handler): Update diagnostic log timestamp

* Fix(add_handler): Update diagnostic log timestamp again (auto-updated)

* Update default scheduler redis stream prefix

* Update diagnostic timestamp in add handler

* Allow optional log_content in scheduler event log

* feat: new examples to test scheduelr

* feat: fair scheduler and refactor of search function

* fix bugs: address bugs caused by outdated test code

* feat: add task_schedule_monitor

* fix: handle nil mem_cube in scheduler message consumers

* fix bugs: response messaged changed in memos code

* refactor: revise task queue to allow it dealing with pending tasks when no task remaining

* refactor: revise mixture search and scheduler logger

* Fix scheduler task tracking

* fix bugs: address ai review issues

* fix bugs: address rabbitmq initialization failed when doing pytest

* fix(scheduler): Correct dispatcher task and future tracking

* Remove dump.rdb

* fix bugs: revised message ack logics; refactor add log function

* fix bugs: change Chinese notation to English

* fix indent error in logger

* fix bugs: addressed the issues caused by multiprocessing codes obtain same pending tasks

* addMemory/updateMemory log

* fix bugs: modify redis queue logics to make it run as expected

* feat: add a default mem cube initialization for scheduler

* address scheduler init bug

---------

Co-authored-by: fridayL <lcy081099@gmail.com>
Co-authored-by: glin1993@outlook.com <>
Co-authored-by: Zehao Lin <glin1993@outlook.com>
* feat: update memos headers

* feat: headers add

* feat: update search agent

* feat: upadte mem story

* feat: update mem scehduler

* feat: update deepsearch mem code

* feat:  update deepsearch agent

* feat: update test code

* fix: remove dup config

* feat: dock search pipeline

* fix: code test

* feat: add test scripts

* feat: add test

* feat: update need_raw process

* fix: add initter

* fix: change agent search func name

* feat: update logs and defined

* feat:  update full text mem search

* feat: cp  plugin  to dev

* feat: add one recall for fulltext retrieval

* fix: set default for fulltext search

* feat: add langchain chunk

* feat: fix playground for query
#592)

feat(scheduler): Propagate trace_id across process boundaries for mem_scheduler logs

This commit addresses the issue where 'trace_id' was missing from logs generated by the 'mem_scheduler' module, especially when tasks were executed in separate processes.

The changes implement a manual propagation of 'trace_id' from the message producer to the consumer:
1.  **Schema Update**: Added an optional 'trace_id' field to 'ScheduleMessageItem' in 'src/memos/mem_scheduler/schemas/message_schemas.py' to allow 'trace_id' to be carried within messages.
2.  **Producer-side Capture**: Modified 'src/memos/mem_scheduler/task_schedule_modules/task_queue.py' to capture the current 'trace_id' and embed it into the 'ScheduleMessageItem' before messages are enqueued.
3.  **Consumer-side Context Re-establishment**: Updated 'src/memos/mem_scheduler/task_schedule_modules/dispatcher.py' to extract the 'trace_id' from incoming messages and re-establish the logging context using 'RequestContext' for each task's execution. This ensures all logs within a task's scope correctly include its associated 'trace_id', even when crossing process boundaries.

This approach ensures robust and accurate tracing of tasks within the scheduler, enhancing observability and debugging capabilities.

Co-authored-by: glin1993@outlook.com <>
* feat: timer add log args

* feat: timer add log args

* feat: timer add log args

* feat: add openai model log

---------

Co-authored-by: harvey_xiang <harvey_xiang22@163.com>
Co-authored-by: CaralHsi <caralhsi@gmail.com>
* debug an error function name

* feat: Add DynamicCache compatibility for different transformers versions

- Fix build_kv_cache method in hf.py to handle both old and new DynamicCache structures
  - Support new 'layers' attribute with key_cache/value_cache or keys/values
  - Maintain backward compatibility with direct key_cache/value_cache attributes
  - Add comprehensive error handling and logging for unsupported structures

- Update move_dynamic_cache_htod function in kv.py for cross-version compatibility
  - Handle layers-based structure in newer transformers versions
  - Support alternative attribute names (keys/values vs key_cache/value_cache)
  - Preserve original functionality for older transformers versions

- Add comprehensive tests for DynamicCache compatibility
  - Test activation memory update with mock DynamicCache layers
  - Verify layers attribute access across different transformers versions
  - Fix scheduler logger mock to include memory_manager attribute
This resolves AttributeError issues when using different versions of the
transformers library and ensures robust handling of DynamicCache objects.

debug

* feat: implement APIAnalyzerForScheduler for memory operations

- Add APIAnalyzerForScheduler class with search/add operations
- Support requests and http.client with connection reuse
- Include comprehensive error handling and dynamic configuration
- Add English test suite with real-world conversation scenarios

* feat: Add search_ws API endpoint and enhance API analyzer functionality

- Add search_ws endpoint in server_router.py for scheduler-enabled search
- Fix missing imports: time module, SearchRequest class, and get_mos_product_instance function
- Implement search_ws method in api_analyzer.py with HTTP client support
- Add _search_ws_with_requests and _search_ws_with_http_client private methods
- Include search_ws usage example in demonstration code
- Enhance scheduler and dispatcher capabilities for improved memory management
- Expand test coverage to ensure functionality stability

This update primarily strengthens the memory scheduling system's search capabilities,
providing users with more flexible API interface options.

* fix: resolve test failures and warnings in test suite

- Fix Pydantic serialization warning in test_memos_chen_tang_hello_world
  * Add warnings filter to suppress UserWarning from Pydantic serialization

- Fix KeyError: 'past_key_values' in test_build_kv_cache_and_generation
  * Update mock configuration to properly return forward_output with past_key_values
  * Add DynamicCache version compatibility handling in test mocks
  * Support both old and new transformers versions with layers/key_cache attributes
  * Improve assertion logic to check all model calls for required parameters

- Update base_scheduler.py to use centralized DEFAULT_MAX_INTERNAL_MESSAGE_QUEUE_SIZE constant
  * Add import for DEFAULT_MAX_INTERNAL_MESSAGE_QUEUE_SIZE from general_schemas
  * Replace hardcoded value 100 with configurable constant (1000)

All tests now pass successfully with proper version compatibility handling.

* feat: add a test_robustness execution to test thread pool execution

* feat: optimize scheduler configuration and API search functionality

- Add DEFAULT_TOP_K and DEFAULT_CONTEXT_WINDOW_SIZE global constants in general_schemas.py
- Update base_scheduler.py to use global default values instead of hardcoded numbers
- Fix SchedulerConfigFactory initialization issue by using keyword argument expansion
- Resolve UnboundLocalError variable conflict in search_memories_ws function
- Fix indentation and parameter issues in OptimizedScheduler search_for_api method
- Improve code standardization and maintainability

* feat: Add Redis auto-initialization with fallback strategies

- Add auto_initialize_redis() with config/env/local fallback
- Move Redis logic from dispatcher_monitor to redis_service
- Update base_scheduler to use auto initialization
- Add proper resource cleanup and error handling

* feat: add database connection management to ORM module

- Add MySQL engine loading from environment variables in BaseDBManager
- Add Redis connection loading from environment variables in BaseDBManager
- Enhance database configuration validation and error handling
- Complete database adapter infrastructure for ORM module
- Provide unified database connection management interface

This update provides comprehensive database connection management capabilities
for the mem_scheduler module, supporting dynamic MySQL and Redis configuration
loading from environment variables, establishing reliable data persistence
foundation for scheduling services and API services.

* remove part of test

* feat: add Redis-based ORM with multiprocess synchronization

- Add RedisDBManager and RedisLockableORM classes
- Implement atomic locking mechanism for concurrent access
- Add merge functionality for different object types
- Include comprehensive test suite and examples
- Fix Redis key type conflicts in lock operations

* fix: resolve scheduler module import and Redis integration issues

* revise naive memcube creation in server router

* remove long-time tests in test_scheduler

* remove redis test which needs .env

* refactor all codes about mixture search with scheduler

* fix: resolve Redis API synchronization issues and implement search API with reranker

- Fix running_entries to running_task_ids migration across codebase
- Update sync_search_data method to properly handle TaskRunningStatus
- Correct variable naming and logic in API synchronization flow
- Implement search API endpoint with reranker functionality
- Update test files to reflect new running_task_ids convention
- Ensure proper Redis state management for concurrent tasks

* remove a test for api module

* revise to pass the test suite

* address some bugs to make mix_search normally running

* modify codes according to evaluation logs

* feat: Optimize mixture search and enhance API client

* feat: Add conversation_turn tracking for session-based memory search

    - Add conversation_turn field to APIMemoryHistoryEntryItem schema with default value 0
    - Implement session counter in OptimizedScheduler to track turn count per session_id
    - Update sync_search_data method to accept and store conversation_turn parameter
    - Maintain session history with LRU eviction (max 5 sessions)
    - Rename conversation_id to session_id for consistency with request object
    - Enable direct access to session_id from search requests

    This feature allows tracking conversation turns within the same session,
    providing better context for memory retrieval and search history management.

* adress time bug in monitor

* revise simple tree

* add mode to evaluation client; rewrite print to logger.info in db files

* feat: 1. add redis queue for scheduler 2. finish the code related to mix search and fine search

* debug the working memory code

* addressed a range of bugs to make scheduler running correctly

* remove test_dispatch_parallel test

* print change to logger.info

* adjucted the core code related to fine and mixture apis

* feat: create task queue to wrap local queue and redis queue. queue now split FIFO to multi queue from different users. addressed a range of bugs

* fix bugs: debug bugs about internet trigger

* debug get searcher mode

* feat: add manual internet

* Fix: fix code format

* feat: add strategy for fine search

* debug redis queue

* debug redis queue

* fix bugs: completely addressed bugs about redis queue

* refactor: add searcher to handler_init; remove info log from task_queue

* refactor: modify analyzer

* refactor: revise locomo_eval to make it support llm other than gpt-4o-mini

* feat: develop advanced searcher with deep search

* feat: finish a complete version of deep search

* refactor: refactor deep search feature, now only allowing one-round deep search

* feat: implement the feature of get_tasks_status, but completed tasks are not recorded yet; waiting to be developed

* debuging merged code; searching memories have bugs

* change logging level

* debug api evaluation

* fix bugs: change top to top_k

* change log

* refactor: rewrite deep search to make it work better

* change num_users

* feat: developed and test task broker and orchestrator

* Fix: Include task_id in ScheduleMessageItem serialization

* Fix(Scheduler): Correct event log creation and task_id serialization

* Feat(Scheduler): Add conditional detailed logging for KB updates
Fix(Scheduler): Correct create_event_log indentation

* Fix(Scheduler): Correct create_event_log call sites

Reverts previous incorrect fix to scheduler_logger.py and correctly fixes the TypeError at the call sites in general_scheduler.py by removing the invalid 'log_content' kwarg and adding the missing memory_type kwargs.

* Fix(Scheduler): Deserialize task_id in ScheduleMessageItem.from_dict

This completes the fix for the task_id loss. The 'to_dict' method was previously fixed to serialize the task_id, but the corresponding 'from_dict' method was not updated to deserialize it, causing the value to be lost when messages were read from the queue.

* Refactor(Config): Centralize RabbitMQ config override logic

Moves all environment variable override logic into initialize_rabbitmq for a single source of truth. This ensures Nacos-provided environment variables for all RabbitMQ settings are respected over file configurations. Also removes now-redundant logging from the publish method.

* Revert "Refactor(Config): Centralize RabbitMQ config override logic"

This reverts commit b8cc42a.

* Fix(Redis): Convert None task_id to empty string during serialization

Resolves DataError in Redis Streams when task_id is None by ensuring
it's serialized as an empty string instead of None, which Redis does
not support. Applies to ScheduleMessageItem.to_dict method.

* Feat(Log): Add diagnostic log to /product/add endpoint

Adds an INFO level diagnostic log message at the beginning of the
create_memory function to help verify code deployment.

* Feat(Log): Add comprehensive diagnostic logs for /product/add flow

Introduces detailed INFO level diagnostic logs across the entire call chain
for the /product/add API endpoint. These logs include relevant context,
such as full request bodies, message items before scheduler submission,
and messages before RabbitMQ publication, to aid in debugging deployment
discrepancies and tracing data flow, especially concerning task_id
propagation.

Logs added/enhanced in:
- src/memos/api/routers/product_router.py
- src/memos/api/handlers/add_handler.py
- src/memos/multi_mem_cube/single_cube.py
- src/memos/mem_os/core.py
- src/memos/mem_scheduler/general_scheduler.py
- src/memos/mem_scheduler/base_scheduler.py
- src/memos/mem_scheduler/webservice_modules/rabbitmq_service.py

* Feat(Log): Add comprehensive diagnostic logs for /product/add flow and apply ruff formatting

Introduces detailed INFO level diagnostic logs across the entire call chain
for the /product/add API endpoint. These logs include relevant context,
such as full request bodies, message items before scheduler submission,
and messages before RabbitMQ publication, to aid in debugging deployment
discrepancies and tracing data flow, especially concerning task_id
propagation.

Also applies automatic code formatting using ruff format to all modified files.

Logs added/enhanced in:
- src/memos/api/routers/product_router.py
- src/memos/api/handlers/add_handler.py
- src/memos/multi_mem_cube/single_cube.py
- src/memos/mem_os/core.py
- src/memos/mem_scheduler/general_scheduler.py
- src/memos/mem_scheduler/base_scheduler.py
- src/memos/mem_scheduler/webservice_modules/rabbitmq_service.py

* Fix(rabbitmq): Use env vars for KB updates and improve logging

* Fix(rabbitmq): Explicitly use MEMSCHEDULER_RABBITMQ_EXCHANGE_NAME and empty routing key for KB updates

* Fix(add_handler): Update diagnostic log timestamp

* Fix(add_handler): Update diagnostic log timestamp again (auto-updated)

* Update default scheduler redis stream prefix

* Update diagnostic timestamp in add handler

* Allow optional log_content in scheduler event log

* feat: new examples to test scheduelr

* feat: fair scheduler and refactor of search function

* fix bugs: address bugs caused by outdated test code

* feat: add task_schedule_monitor

* fix: handle nil mem_cube in scheduler message consumers

* fix bugs: response messaged changed in memos code

* refactor: revise task queue to allow it dealing with pending tasks when no task remaining

* refactor: revise mixture search and scheduler logger

* Fix scheduler task tracking

* fix bugs: address ai review issues

* fix bugs: address rabbitmq initialization failed when doing pytest

* fix(scheduler): Correct dispatcher task and future tracking

* Remove dump.rdb

* fix bugs: revised message ack logics; refactor add log function

* fix bugs: change Chinese notation to English

* fix indent error in logger

* fix bugs: addressed the issues caused by multiprocessing codes obtain same pending tasks

* addMemory/updateMemory log

* fix bugs: modify redis queue logics to make it run as expected

* feat: add a default mem cube initialization for scheduler

* address scheduler init bug

* feat(scheduler): Propagate trace_id across process boundaries for mem… (#592)

feat(scheduler): Propagate trace_id across process boundaries for mem_scheduler logs

This commit addresses the issue where 'trace_id' was missing from logs generated by the 'mem_scheduler' module, especially when tasks were executed in separate processes.

The changes implement a manual propagation of 'trace_id' from the message producer to the consumer:
1.  **Schema Update**: Added an optional 'trace_id' field to 'ScheduleMessageItem' in 'src/memos/mem_scheduler/schemas/message_schemas.py' to allow 'trace_id' to be carried within messages.
2.  **Producer-side Capture**: Modified 'src/memos/mem_scheduler/task_schedule_modules/task_queue.py' to capture the current 'trace_id' and embed it into the 'ScheduleMessageItem' before messages are enqueued.
3.  **Consumer-side Context Re-establishment**: Updated 'src/memos/mem_scheduler/task_schedule_modules/dispatcher.py' to extract the 'trace_id' from incoming messages and re-establish the logging context using 'RequestContext' for each task's execution. This ensures all logs within a task's scope correctly include its associated 'trace_id', even when crossing process boundaries.

This approach ensures robust and accurate tracing of tasks within the scheduler, enhancing observability and debugging capabilities.

Co-authored-by: glin1993@outlook.com <>

* fix bugs: redis queue allows to reget pending tasks which exceeding idle time

* fix(scheduler): Correct lazy-loading logic for mem_cube property

* Add MONITOR_EVENT logs for scheduler lifecycle

* fix: Resolve Ruff linting and formatting issues

---------

Co-authored-by: fridayL <lcy081099@gmail.com>
Co-authored-by: glin1993@outlook.com <>
Co-authored-by: Zehao Lin <glin1993@outlook.com>
* feat: split chunk for pure string

* feat: add default trucation in embedder

* feat: chunking each item after fast mode

* fix: test
* Fix dequeue timestamp logging for pydantic models

* Address ruff UP038 warnings in monitor events

---------

Co-authored-by: glin1993@outlook.com <>
* update reader and search strategy

* set strategy reader and search config

* fix install problem

* fix

* fix test

* turn off graph recall

* turn off graph recall

* turn off graph recall

* fix Searcher input bug

* fix Searcher

* fix Search

* fix bug

* adjust strategy reader

* adjust strategy reader

* adjust search config input

* reformat code

* re pr

* format repair

* fix time issue

* develop feedback process

* feedback handler configuration

* upgrade feedback using

* add threshold

* update prompt

* update prompt

* fix handler

* add feedback scheduler

* add handler change node update

* add handler change node update

* add handler change node update

* add handler change node update

* fix interface input

* add chunk and ratio filter

* update stopwords

---------

Co-authored-by: 黑布林 <11641432+heiheiyouyou@user.noreply.gitee.com>
Co-authored-by: CaralHsi <caralhsi@gmail.com>
Co-authored-by: chunyu li <78344051+fridayL@users.noreply.github.com>
* function call supoort

* add tool parser

* rename multi model to modal

* rename multi modal

* tool mem support

* modify multi-modal code

* pref support multi-modal messages

* modify bug in chat handle

* fix pre commit

* modify code

* add tool search

* tool search

* add split chunck in system and tool

---------

Co-authored-by: yuan.wang <yuan.wang@yuanwangdebijibendiannao.local>
* Add cloud add-log handler fallback for schedulers

* Implement cloud add log handler for optimized scheduler

* Refine cloud add log handler output

* Format general_scheduler with ruff

* Add stack_info to scheduler logging and format

---------

Co-authored-by: glin1993@outlook.com <>
#600)

fix(scheduler): Correctly process feedback logs by checking for 'text' key

Co-authored-by: glin1993@outlook.com <>
* feat: split chunk for pure string

* feat: add default trucation in embedder

* feat: chunking each item after fast mode

* fix: test

* add remove log; decode sources
* function call supoort

* add tool parser

* rename multi model to modal

* rename multi modal

* tool mem support

* modify multi-modal code

* pref support multi-modal messages

* modify bug in chat handle

* fix pre commit

* modify code

* add tool search

* tool search

* add split chunck in system and tool

* fix bug in plug pref search

* fix bug in pref add

---------

Co-authored-by: yuan.wang <yuan.wang@yuanwangdebijibendiannao.local>
* update reader and search strategy

* set strategy reader and search config

* fix install problem

* fix

* fix test

* turn off graph recall

* turn off graph recall

* turn off graph recall

* fix Searcher input bug

* fix Searcher

* fix Search

* fix bug

* adjust strategy reader

* adjust strategy reader

* adjust search config input

* reformat code

* re pr

* format repair

* fix time issue

* develop feedback process

* feedback handler configuration

* upgrade feedback using

* add threshold

* update prompt

* update prompt

* fix handler

* add feedback scheduler

* add handler change node update

* add handler change node update

* add handler change node update

* add handler change node update

* fix interface input

* add chunk and ratio filter

* update stopwords

* fix messages queue

---------

Co-authored-by: 黑布林 <11641432+heiheiyouyou@user.noreply.gitee.com>
Co-authored-by: CaralHsi <caralhsi@gmail.com>
Co-authored-by: chunyu li <78344051+fridayL@users.noreply.github.com>
* fix: input Pydantic bug

* feat: add image parser

* feat: back to MessagesType
fridayL and others added 27 commits December 18, 2025 10:04
* feat: update include embedding

* feat: update init

* feat: update embedding

* fix: code

* feat: update  feedback

* feat: update prefdata
* hotfix:hotfix

* test: add routers api

* fix: doc fine mode bug

* fix: doc fine mode bug

* feat: init longbench_v2

* feat: more strict embedder trucation

* feat: parallel processing fine mode in multi-modal-fine

* feat: update parsers; add chunk info into source; remove origin_part

* feat: modify chunk_content in file-fine-parser

* fix: token counter bug

* feat: enlarge polardb

* feat: derease parallrl

* feat: add image parser in file

* feat: update file_content_parser

* feat: modify long_bench_v2

* feat: modify long_bench_v2

* fix: image bug

* feat: increase playground depth

* feat: set parsed_text None in file parser

* fix: file_ids bug in file-mode

* feat: update evaluation

* feat: update evaluation

* feat: add general string prompt

* fix: test server router

* feat: update evluation

* feat: decrease graph-db batch size to 5

* fix: default name in long_bench-v2/longbench_v2_search

* fix: test bug

* Update test_server_router.py

* Update test_product_router.py

* feat: comment

* feat: add lang detection in multi_modal_struct and user-parser-modal

* feat: add lang detection in image parser

* feat: add assistant parser lang detection

* feat: update base (lang added to source)

* feat: lang added to source in string parser

* feat: lang added to source in system parser

* feat: lang added to source in text_content_parser

* feat: lang added to source in user parser

* feat: lang added to source in user parser

* feat: lang added to source in tool parser

* feat: modify lang detection for fine-string parser

* fix: context_items

* fix: json ensure ascii

---------

Co-authored-by: HarveyXiang <harvey_xiang@163.com>
Co-authored-by: fridayL <lcy081099@gmail.com>
Co-authored-by: chunyu li <78344051+fridayL@users.noreply.github.com>
* feat: propagate item_id in scheduler and dispatcher logs

* remove web log queue put

* chore: add diagnostic logs for publish

* chore: log submitted web log at info

* chore: rename log_id to item_id in debug info

* test: avoid web log queue dependency

---------

Co-authored-by: glin1993@outlook.com <>
* update reader and search strategy

* set strategy reader and search config

* fix install problem

* fix

* fix test

* turn off graph recall

* turn off graph recall

* turn off graph recall

* fix Searcher input bug

* fix Searcher

* fix Search

* fix bug

* adjust strategy reader

* adjust strategy reader

* adjust search config input

* reformat code

* re pr

* format repair

* fix time issue

* develop feedback process

* feedback handler configuration

* upgrade feedback using

* add threshold

* update prompt

* update prompt

* fix handler

* add feedback scheduler

* add handler change node update

* add handler change node update

* add handler change node update

* add handler change node update

* fix interface input

* add chunk and ratio filter

* update stopwords

* fix messages queue

* add seach_by_keywords_LIKE

* add doc filter

* add retrieve query

* add retrieve queies

* patch info filter

* add log and make embedding safety net

* add log and make embedding safety net

* deduplicate add objects

* use _add_memories_parallel

* delete Special characters

* delete Special characters

* delete Special characters

* delete Special characters

* add source_doc_id

* add source_doc_id

* add reranker in init com..

* fix circle import

---------

Co-authored-by: 黑布林 <11641432+heiheiyouyou@user.noreply.gitee.com>
Co-authored-by: CaralHsi <caralhsi@gmail.com>
Co-authored-by: chunyu li <78344051+fridayL@users.noreply.github.com>
revert: remove item_id inheritance

Co-authored-by: glin1993@outlook.com <>
fix bugs: try to fix bugs in _submit_web_logs
* fix bugs: try to fix bugs in _submit_web_logs

* fix bugs: try to address bugs
* fix bugs: try to fix bugs in _submit_web_logs

* fix bugs: try to address bugs

* fix bugs
* fix bugs: try to fix bugs in _submit_web_logs

* fix bugs: try to address bugs

* fix bugs

* refactor: modify examples

* revise add operation and fix an unbelievable bug
* fix bugs: try to fix bugs in _submit_web_logs

* fix bugs: try to address bugs

* fix bugs

* refactor: modify examples

* revise add operation and fix an unbelievable bug

* address the bug issues
* feat: timer false

* feat: timer debug threshold

* feat: timer debug threshold

---------

Co-authored-by: harvey_xiang <harvey_xiang22@163.com>
* add get_user_names_by_memory_ids

* update delete_node_by_prams by no user_name

* update delete_node_by_prams by no user_name
* feat: update include embedding

* feat: update init

* feat: update embedding

* fix: code

* feat: update  feedback

* feat: update prefdata

* feat: use parall search
* update reader and search strategy

* set strategy reader and search config

* fix install problem

* fix

* fix test

* turn off graph recall

* turn off graph recall

* turn off graph recall

* fix Searcher input bug

* fix Searcher

* fix Search

* fix bug

* adjust strategy reader

* adjust strategy reader

* adjust search config input

* reformat code

* re pr

* format repair

* fix time issue

* develop feedback process

* feedback handler configuration

* upgrade feedback using

* add threshold

* update prompt

* update prompt

* fix handler

* add feedback scheduler

* add handler change node update

* add handler change node update

* add handler change node update

* add handler change node update

* fix interface input

* add chunk and ratio filter

* update stopwords

* fix messages queue

* add seach_by_keywords_LIKE

* add doc filter

* add retrieve query

* add retrieve queies

* patch info filter

* add log and make embedding safety net

* add log and make embedding safety net

* deduplicate add objects

* use _add_memories_parallel

* delete Special characters

* delete Special characters

* delete Special characters

* delete Special characters

* add source_doc_id

* add source_doc_id

* add reranker in init com..

* fix circle import

* add feedback judgement

* add feedback judgement

---------

Co-authored-by: 黑布林 <11641432+heiheiyouyou@user.noreply.gitee.com>
Co-authored-by: CaralHsi <caralhsi@gmail.com>
Co-authored-by: chunyu li <78344051+fridayL@users.noreply.github.com>
* feat: timer false

* feat: add openai request body log

* feat: add openai request body log

* feat: add openai request body log

---------

Co-authored-by: harvey_xiang <harvey_xiang22@163.com>
Co-authored-by: Wenqiang <weiwq@memtensor.cn>
* feat: update config

* update bocha
@fridayL fridayL changed the title Dev chore: bump version to v2.0.0 Dec 24, 2025
@fridayL fridayL merged commit 809dde4 into main Dec 24, 2025
32 checks passed
tianxing02 pushed a commit to tianxing02/MemOS that referenced this pull request Feb 24, 2026
## Description

<!--
Please include a summary of the changes below;
Fill in the issue number that this PR addresses (if applicable);
Fill in the related MemOS-Docs repository issue or PR link (if
applicable);
Mention the person who will review this PR (if you know who it is);
Replace (summary), (issue), (docs-issue-or-pr-link), and (reviewer) with
the appropriate information.

请在下方填写更改的摘要;
填写此 PR 解决的问题编号(如果适用);
填写相关的 MemOS-Docs 仓库 issue 或 PR 链接(如果适用);
提及将审查此 PR 的人(如果您知道是谁);
替换 (summary)、(issue)、(docs-issue-or-pr-link) 和 (reviewer) 为适当的信息。
-->

Summary: (summary)

Fix: #(issue)

Docs Issue/PR: (docs-issue-or-pr-link)

Reviewer: @(reviewer)

## Checklist:

- [ ] I have performed a self-review of my own code | 我已自行检查了自己的代码
- [ ] I have commented my code in hard-to-understand areas |
我已在难以理解的地方对代码进行了注释
- [ ] I have added tests that prove my fix is effective or that my
feature works | 我已添加测试以证明我的修复有效或功能正常
- [ ] I have created related documentation issue/PR in
[MemOS-Docs](https://github.com/MemTensor/MemOS-Docs) (if applicable) |
我已在 [MemOS-Docs](https://github.com/MemTensor/MemOS-Docs) 中创建了相关的文档
issue/PR(如果适用)
- [ ] I have linked the issue to this PR (if applicable) | 我已将 issue
链接到此 PR(如果适用)
- [ ] I have mentioned the person who will review this PR | 我已提及将审查此 PR
的人
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants