Skip to content

Conversation

@CarltonXiang
Copy link
Collaborator

Description

Please include a summary of the change, the problem it solves, the implementation approach, and relevant context. List any dependencies required for this change.

Related Issue (Required): Fixes @issue_number

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Refactor (does not change functionality, e.g. code style improvements, linting)
  • Documentation update

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

  • Unit Test
  • Test Script Or Test Steps (please provide)
  • Pipeline Automated API Test (please provide)

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 的人

Reviewer Checklist

  • closes #xxxx (Replace xxxx with the GitHub issue number)
  • Made sure Checks passed
  • Tests have been provided

bittergreen and others added 30 commits January 30, 2026 17:24
…ns (#992)

* feat: Data structure for memory versions

* feat: Initialize class for managing memory versions

* test: Unit test for managing memory versions
fix: add fileurl to memoryvalue

Co-authored-by: 黑布林 <11641432+heiheiyouyou@user.noreply.gitee.com>
…#1001)

* feat: add delete_node_by_mem_cube_id && recover_memory_by_mem_kube_id

* feat: add delete_node_by_mem_cube_id && recover_memory_by_mem_kube_id

* feat: add polardb log

* feat: add delete_node_by_mem_cube_id
* fix: remove duplicate MOSMCPStdioServer class, use MOSMCPServer

The MOSMCPStdioServer class was calling _setup_tools() which was not defined.
Consolidated into MOSMCPServer which has the proper implementation.

* feat: add PostgreSQL + pgvector backend for graph database

- Create PostgresGraphDB class with full BaseGraphDB implementation
- Add PostgresGraphDBConfig with connection pooling support
- Register postgres backend in GraphStoreFactory
- Update APIConfig with get_postgres_config method
- Support GRAPH_DB_BACKEND env var with neo4j fallback

Replaces Neo4j dependency with native PostgreSQL using:
- JSONB for flexible node properties
- pgvector for embedding similarity search
- Standard SQL for graph traversal

* feat: change embedding dimension to 768 (all-mpnet-base-v2)

Match krolik schema embedding dimension for compatibility

* fix: add missing methods to PostgresGraphDB

Add remove_oldest_memory and get_grouped_counts methods required by
MemOS memory management functionality.

* fix(recall): preserve vector similarity ranking in search results

The merge/deduplicate logic was converting hit IDs to a set, losing
the score-based ordering from vector search. Now keeps highest score
per ID and returns results sorted by similarity score (descending).

Fixes both _vector_recall and _fulltext_recall methods.

* fix(reranker): use recall relativity scores when embeddings unavailable

When embeddings aren't available, the reranker was defaulting to 0.5
scores, ignoring the relativity scores set during the recall phase.

Now uses item.metadata.relativity from the recall stage when available.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: add overlay pattern for Krolik security extensions

- Add overlays/krolik/ with auth, rate-limit, admin API
- Add Dockerfile.krolik for production builds
- Add SYNC_UPSTREAM.md documentation
- Keeps customizations separate from base MemOS for easy upstream sync

* Delete SYNC_UPSTREAM.md

---------

Co-authored-by: Anatoly Koptev <anatolykoptev@github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: CaralHsi <caralhsi@gmail.com>
* fix: add fileurl to memoryvalue

* Extract the phrases from the key and input them into the tags.

---------

Co-authored-by: 黑布林 <11641432+heiheiyouyou@user.noreply.gitee.com>
* fix: add ruff check code && poetry run ruff format

* fix: add ruff check code && poetry run ruff format
#1011)

* fix: parallel chunk large memory items and process those chunks, but keep the original order

* fix: parse memory items keeping order-preserving
* feat: optimize polardb delete_node_by_mem_cube_id

* feat: optimize polardb delete_node_by_mem_cube_id

---------

Co-authored-by: CaralHsi <caralhsi@gmail.com>
* feat: new unity bussiness chat api

* feat: delete api, recover api, fulltext search in playground

* feat: api optimize

* fix: modify error to warning

---------

Co-authored-by: yuan.wang <yuan.wang@yuanwangdebijibendiannao.local>
…face is inaccurate. (#1018)

* fix: add fileurl to memoryvalue

* Extract the phrases from the key and input them into the tags.

* The issue of inaccurate retrieval of "total nodes" through the "get memory" interface

---------

Co-authored-by: 黑布林 <11641432+heiheiyouyou@user.noreply.gitee.com>
…y" interface is inaccurate. " (#1021)

Revert "fix: The "total nodes" information returned by the "get memory" inter…"

This reverts commit da91ffc.
* feat: optimize polardb && neo4j

* fix: full_fields

* fix: optimize

* fix: format
…eved memories (#1006)

* test: add mmr dedup

* test: decrease lambda

* test: add tag penalty

* test: increase lambda_relevance

* test: fix top 5 candidates

* test: adjust alpha_tag

* test: increase lambda_relevance

* test: decrease lambda_relevance

* test: adjust params

* test: delete tag penalty

* test: delete fix top5

* test: readd fix top5

* test: delete threshold-based penalties

* test: delete threshold-based penalties

* test: restore best score version, add resort

* test: add diversity

* test: reformat

* fix: fix Nan and 0 embedding

* feat: add mmr deduplication

* feat: add preference memory deduplication

* fix: recall less preference memory

* test: memory text deduplication

* test: memory text deduplication

* test: restore

* test: restore

* test: add 2 gram dedup

* test: add more dedup

* test: 增大 prefill

* test: 调整阈值参数

* fix: reformat

* fix: reformat

* fix: reformat

* fix: reformat

* fix: reformat

* fix: reformat

* fix: use deepcopy, add log

* fix: reformat

* fix: simplify code

* test: adjust params

* feat: add relativity threshold

* fix: fix preference memory key

* fix: initialize 'filtered' as list

* fix: adjust relativity threshold

* fix: reformat

---------

Co-authored-by: CaralHsi <caralhsi@gmail.com>
* feat: skill memory

* feat: split task chunks for skill memories

* fix: refine the returned format from llm and parsing

* feat: add new pack oss

* feat: skill mem pipeline

* feat: fill code

* feat: modify code

* feat: modify code

* feat: async add skill memory

* feat: update ollama version

* feat: get memory return skill memory

* feat: get api add skill mem

* feat: get api add skill mem

* feat: modify env config

* feat: back set oss client

* feat: delete tmp skill code

* feat: process new package import error

* feat: modify oss config

* feat: modiy prompt and add two api

* feat: modify prompt

* feat: modify code

* feat: add logger

* feat: fix bug in memory id

* feat: new code

* fix: fix name error in polardb and related code

* fix: bug in polardb

---------

Co-authored-by: yuan.wang <yuan.wang@yuanwangdebijibendiannao.local>
Co-authored-by: Wenqiang Wei <wwq38556399@163.com>
* refactor(scheduler): modularize handlers and search

- extract scheduler handlers into dedicated modules

- split retriever into pipelines (search/enhance/rerank/filter)

- centralize text search logic for API and scheduler

Refs #1003

* fix: resolve ruff lint errors and address Copilot review feedback

- Fix TC001/TC002/TC003: move type-only imports into TYPE_CHECKING blocks
- Fix RUF059: prefix unused variables with underscore
- Fix typos: "Memorires" -> "Memories", "exeption" -> "exception"
- Remove self-assignment: `text_mem_base = text_mem_base`
- Remove unused `user_context` param from `build_search_context`
- Restore original `QUERY_TASK_LABEL` in activation memory update
- Apply ruff format to all modified files

* fix(redis): serialize schedule messages for streams

- json-encode list/dict fields for Redis XADD

- decode chat_history safely when reading from streams

* fix(examples): use scheduler handlers

- avoid private _memory_update_consumer call

- delegate mem update handler to built-in handler

* style(ruff): fix isinstance union syntax

- apply X | Y form to satisfy UP038

* style(ruff): format message schemas

- align datetime line breaks with ruff format

* refactor: integrate architectural improvements from refactor-scheduler-stage2
This commit merges key modularization benefits and bug fixes from the
refactor-scheduler-stage2 branch into fancy-scheduler:
Modularize activation memory logic into ActivationMemoryManager
Introduce SchedulerSearchService for unified memory search coordination
Extract filtering and reranking logic into MemoryPostProcessor
Maintain intentional search scope of LongTermMemory and UserMemory in SearchPipeline and SchedulerSearchService
Update BaseScheduler to initialize and manage lifecycle of new modules
Refactor BaseSchedulerMemoryMixin to delegate tasks to specialized managers

* refactor: extract common logic to BaseSchedulerHandler and fix import paths

* refactor: rename ctx to scheduler_context in mem_scheduler

Rename abbreviation 'ctx' to 'scheduler_context' in GeneralScheduler and SchedulerHandlerRegistry to improve code readability and clarity.

* refactor: sync orchestrator config and fix scheduler imports

- Sync orchestrator config removal when unregistering handlers in dispatcher
- Fix missing TaskPriorityLevel import in dispatcher
- Fix register_handlers signature in BaseSchedulerQueueMixin
- Fix handler registry imports and initialization map
- Fix relative imports in handlers package

* fix: resolve PR #1 review issues (P0 imports, P3 types/init)

* chore(ruff): fix unused unpacked vars

- prefix unused unpacked vars with underscore

- apply ruff format changes

* perf(search): include embeddings for mmr

* fix: Pass user_context in mem_read and pref_add handlers

- Update MemReadMessageHandler to extract user_context from message and pass it to _process_memories_with_reader and transfer_mem.
- Update PrefAddMessageHandler to extract user_context from message and pass it to pref_mem.add.
- This ensures user context information is available during memory reading and preference adding operations.

---------

Co-authored-by: chentang <travistang@foxmail.com>
Co-authored-by: glin1993@outlook.com <>
…face is inaccurate. (#1037)

* fix: add fileurl to memoryvalue

* Extract the phrases from the key and input them into the tags.

* The issue of inaccurate retrieval of "total nodes" through the "get memory" interface

* fix

---------

Co-authored-by: 黑布林 <11641432+heiheiyouyou@user.noreply.gitee.com>
* feat: add status for export_graph

* feat: change code struct

* feat: change code struct

* feat: change code struct

---------

Co-authored-by: CaralHsi <caralhsi@gmail.com>
sdk更改

Co-authored-by: 安赋生 <anfusheng@anfushengdeMacBook-Pro.local>
fix: format error

Co-authored-by: harvey_xiang <harvey_xiang22@163.com>
…base replaced by the sources. (#1055)

* fix: add fileurl to memoryvalue

* Extract the phrases from the key and input them into the tags.

* The issue of inaccurate retrieval of "total nodes" through the "get memory" interface

* fix

* hotfix: Code restoration, with the original content of the knowledge base replaced by the sources.

---------

Co-authored-by: 黑布林 <11641432+heiheiyouyou@user.noreply.gitee.com>
* feat: skill memory

* feat: split task chunks for skill memories

* fix: refine the returned format from llm and parsing

* feat: add new pack oss

* feat: skill mem pipeline

* feat: fill code

* feat: modify code

* feat: modify code

* feat: async add skill memory

* feat: update ollama version

* feat: get memory return skill memory

* feat: get api add skill mem

* feat: get api add skill mem

* feat: modify env config

* feat: back set oss client

* feat: delete tmp skill code

* feat: process new package import error

* feat: modify oss config

* feat: modiy prompt and add two api

* feat: modify prompt

* feat: modify code

* feat: add logger

* feat: fix bug in memory id

* feat: new code

* fix: fix name error in polardb and related code

* fix: bug in polardb

* feat: optimize skill

---------

Co-authored-by: yuan.wang <yuan.wang@yuanwangdebijibendiannao.local>
Co-authored-by: Wenqiang Wei <wwq38556399@163.com>
* 📃 docs:: add MemOS Cloud OpenClaw Plugin to Resources

* feat: test format

---------

Co-authored-by: harvey_xiang <harvey_xiang22@163.com>
Co-authored-by: xiaohuisu <564970381@qq.com>
* feat: skill memory

* feat: split task chunks for skill memories

* fix: refine the returned format from llm and parsing

* feat: add new pack oss

* feat: skill mem pipeline

* feat: fill code

* feat: modify code

* feat: modify code

* feat: async add skill memory

* feat: update ollama version

* feat: get memory return skill memory

* feat: get api add skill mem

* feat: get api add skill mem

* feat: modify env config

* feat: back set oss client

* feat: delete tmp skill code

* feat: process new package import error

* feat: modify oss config

* feat: modiy prompt and add two api

* feat: modify prompt

* feat: modify code

* feat: add logger

* feat: fix bug in memory id

* fix:skill OSS + LOCAL存 zip

* fix:skill OSS + LOCAL存 zip

* fix:skill OSS + LOCAL存 zip

* feat: new code

* fix: fix name error in polardb and related code

* fix: bug in polardb

* feat: optimize skill

* feat: local deploy

---------

Co-authored-by: yuan.wang <yuan.wang@yuanwangdebijibendiannao.local>
Co-authored-by: Wenqiang Wei <wwq38556399@163.com>
Co-authored-by: CCC <15764764+triple-c-individual@user.noreply.gitee.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

* add feedback judgement

* add feedback judgement

* add pref feedback

* add pref feedback

* patch: get_memory func filter user id and make page chunk

* add total num

* add total num

* add milvus pagination

* fix merge implicit explicit pref

* fix merge implicit explicit pref

* fix merge implicit explicit pref

* fix json load bug

* knowledge raw_text replace memory

* knowledge raw_text replace memory

* knowledge raw_text replace memory

* unuse rerank

* backtrack knowledge retrieval

* norerank knowledge data

* use embedding rerank knowledge

* add chunk memories

* feat: mix search upload file raw content

* feedback soures set empty

* chat upload file can be chunk

* fix: when rerank query is too long

* fix too long rerank

* fix too long rerank

* make mem_reader config

* make mem_reader config

* transmit search_memory_type param

* refactor format

* add file url to knowledge db

* add log

* fix

* search neighbor_discovery

* record fallback ratio

* feedback do not change memories with edges

* add skill

* fix test

---------

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>
Co-authored-by: Dubberman <48425266+whipser030@users.noreply.github.com>
Co-authored-by: glin1993@outlook.com <>
…han retrieving the generated memory. (#1057)

* 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

* add pref feedback

* add pref feedback

* patch: get_memory func filter user id and make page chunk

* add total num

* add total num

* add milvus pagination

* fix merge implicit explicit pref

* fix merge implicit explicit pref

* fix merge implicit explicit pref

* fix json load bug

* knowledge raw_text replace memory

* knowledge raw_text replace memory

* knowledge raw_text replace memory

* unuse rerank

* backtrack knowledge retrieval

* norerank knowledge data

* use embedding rerank knowledge

* add chunk memories

* feat: mix search upload file raw content

* feedback soures set empty

* chat upload file can be chunk

* fix: when rerank query is too long

* fix too long rerank

* fix too long rerank

* make mem_reader config

* make mem_reader config

* transmit search_memory_type param

* refactor format

* add file url to knowledge db

* add log

* fix

* search neighbor_discovery

* record fallback ratio

* feedback do not change memories with edges

* add skill

* fix test

---------

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>
Co-authored-by: Dubberman <48425266+whipser030@users.noreply.github.com>
* feat: skill memory

* feat: split task chunks for skill memories

* fix: refine the returned format from llm and parsing

* feat: add new pack oss

* feat: skill mem pipeline

* feat: fill code

* feat: modify code

* feat: modify code

* feat: async add skill memory

* feat: update ollama version

* feat: get memory return skill memory

* feat: get api add skill mem

* feat: get api add skill mem

* feat: modify env config

* feat: back set oss client

* feat: delete tmp skill code

* feat: process new package import error

* feat: modify oss config

* feat: modiy prompt and add two api

* feat: modify prompt

* feat: modify code

* feat: add logger

* feat: fix bug in memory id

* fix:skill OSS + LOCAL存 zip

* fix:skill OSS + LOCAL存 zip

* fix:skill OSS + LOCAL存 zip

* feat: new code

* fix: fix name error in polardb and related code

* fix: bug in polardb

* feat: optimize skill

* feat: local deploy

* fix: modify code

---------

Co-authored-by: yuan.wang <yuan.wang@yuanwangdebijibendiannao.local>
Co-authored-by: Wenqiang Wei <wwq38556399@163.com>
Co-authored-by: CCC <15764764+triple-c-individual@user.noreply.gitee.com>
* feat: new unity bussiness chat api

* feat: delete api, recover api, fulltext search in playground

* feat: api optimize

* fix: modify error to warning

* fix: fix bug

---------

Co-authored-by: yuan.wang <yuan.wang@yuanwangdebijibendiannao.local>
* feat: skill memory

* feat: split task chunks for skill memories

* fix: refine the returned format from llm and parsing

* feat: add new pack oss

* feat: skill mem pipeline

* feat: fill code

* feat: modify code

* feat: modify code

* feat: async add skill memory

* feat: update ollama version

* feat: get memory return skill memory

* feat: get api add skill mem

* feat: get api add skill mem

* feat: modify env config

* feat: back set oss client

* feat: delete tmp skill code

* feat: process new package import error

* feat: modify oss config

* feat: modiy prompt and add two api

* feat: modify prompt

* feat: modify code

* feat: add logger

* feat: fix bug in memory id

* fix:skill OSS + LOCAL存 zip

* fix:skill OSS + LOCAL存 zip

* fix:skill OSS + LOCAL存 zip

* feat: new code

* fix: fix name error in polardb and related code

* fix: bug in polardb

* feat: optimize skill

* feat: local deploy

* fix: modify code

* fix: remove chinese comment

* fix: add logger to chat

---------

Co-authored-by: yuan.wang <yuan.wang@yuanwangdebijibendiannao.local>
Co-authored-by: Wenqiang Wei <wwq38556399@163.com>
Co-authored-by: CCC <15764764+triple-c-individual@user.noreply.gitee.com>
* feat: skill memory

* feat: split task chunks for skill memories

* fix: refine the returned format from llm and parsing

* feat: add new pack oss

* feat: skill mem pipeline

* feat: fill code

* feat: modify code

* feat: modify code

* feat: async add skill memory

* feat: update ollama version

* feat: get memory return skill memory

* feat: get api add skill mem

* feat: get api add skill mem

* feat: modify env config

* feat: back set oss client

* feat: delete tmp skill code

* feat: process new package import error

* feat: modify oss config

* feat: modiy prompt and add two api

* feat: modify prompt

* feat: modify code

* feat: add logger

* feat: fix bug in memory id

* fix:skill OSS + LOCAL存 zip

* fix:skill OSS + LOCAL存 zip

* fix:skill OSS + LOCAL存 zip

* feat: new code

* fix: fix name error in polardb and related code

* fix: bug in polardb

* feat: optimize skill

* feat: local deploy

* fix: modify code

* fix: remove chinese comment

* fix: add logger to chat

* fix: ban RawFileMemory

---------

Co-authored-by: yuan.wang <yuan.wang@yuanwangdebijibendiannao.local>
Co-authored-by: Wenqiang Wei <wwq38556399@163.com>
Co-authored-by: CCC <15764764+triple-c-individual@user.noreply.gitee.com>
@CarltonXiang CarltonXiang merged commit f6a4188 into main Feb 10, 2026
32 checks passed
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.