Skip to content
Merged
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
2189062
fix: reorganizer bug (#64)
CaralHsi Jul 11, 2025
c90f241
feat: add ark/volcengine embedder support (#57)
ioo0s Jul 12, 2025
2012dd1
fix: GeneralTextMemory._embed_one_sentence Argument Error (#76)
J1awei-Yang Jul 15, 2025
339c756
feat: add neo4j share-db example (#59)
CaralHsi Jul 15, 2025
244e748
feat: add universal api embedder (#81)
CaralHsi Jul 15, 2025
86c999a
feat: Add embedder consistency validation with warning and tests (#69)
Dustyposa Jul 16, 2025
b7636eb
Feat: add demo api and scheduler vllm etc (#83)
fridayL Jul 16, 2025
a6b1574
feat: add download_examples command (#87)
Ki-Seki Jul 16, 2025
29b19a0
feat: add stale issue and PR management workflow (#89)
Ki-Seki Jul 16, 2025
a9ffe4f
feat: update issue and pr templates (#98)
Ki-Seki Jul 16, 2025
ba74bf1
Add More backend (#99)
Gaojianli Jul 16, 2025
90fbbfa
feat: add multi language (#92)
CaralHsi Jul 16, 2025
2387f6d
feat(eval): add longmemeval evaluation pipeline (#104)
Duguce Jul 17, 2025
bfc32d8
Feat:change deafult config for product (#108)
fridayL Jul 17, 2025
a0990be
Support customized system prompt base (#102)
newmeta-ben Jul 17, 2025
b4d5a88
feat: recursively cluster nodes to max_cluster_size (#105)
Nyakult Jul 17, 2025
9cbed6d
feat: return ids when add memory (#119)
CaralHsi Jul 17, 2025
8eb0738
Feat: add simple memos for user could easy start (#118)
fridayL Jul 18, 2025
4572d30
Feat: More Llm API (#113)
CaralHsi Jul 19, 2025
aa4f1f9
feat: update doc mem reader (#123)
Nyakult Jul 19, 2025
9dc520d
build: optimize dependencies management (#120)
Ki-Seki Jul 19, 2025
f00483a
Fix None issue in reorganizer queue (#125)
J1awei-Yang Jul 19, 2025
a3dfeae
feat: update PR template to include documentation issue/PR link (#126)
Ki-Seki Jul 19, 2025
56d6fd5
feat: add mcp serve support and client demo (#127)
fridayL Jul 20, 2025
956a9d7
Feat: neo4j community (#121)
CaralHsi Jul 21, 2025
01797eb
feat(example): add MOSProduct multi-user locomo example with shared N…
CaralHsi Jul 21, 2025
04e7dda
fix: update Python version constraints in project files (#129)
Ki-Seki Jul 21, 2025
c42bf96
chore: change version number to v0.2.1
fridayL Jul 21, 2025
727dc18
feat: one-click deployment with docker (#133)
tianxing02 Jul 21, 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
66 changes: 46 additions & 20 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
@@ -1,38 +1,64 @@
name: "\U0001F41B Bug / help"
description: Create a report to help us improve MemOS
name: "\U0001F41B Bug Report"
description: Report a bug to help us improve MemOS | 报告错误以帮助我们改进 MemOS
title: "fix: "
labels: ["bug", "pending"]
body:

- type: checkboxes
id: checklist
attributes:
label: Pre-submission checklist | 提交前检查
options:
- label: I have searched existing issues and this hasn't been mentioned before | 我已搜索现有问题,确认此问题尚未被提及
required: true
- label: I have read the project documentation and confirmed this issue doesn't already exist | 我已阅读项目文档并确认此问题尚未存在
required: true
- label: This issue is specific to MemOS and not a general software issue | 该问题是针对 MemOS 的,而不是一般软件问题
required: true

- type: textarea
id: system-info
id: description
attributes:
label: "Bug Description | 问题描述"
placeholder: "Describe what happened and what you expected to happen"
validations:
required: true
attributes:
label: System Info
description: |
Please share your system info with us. You can run the command **pip show MemoryOS** and copy-paste its output below.
请提供您的系统信息。您可以在命令行运行 **pip show MemoryOS** 并将其输出复制到该文本框中。

placeholder: MemoryOS version, platform, python version, ...

- type: textarea
id: reproduction
attributes:
label: "How to Reproduce | 如何重现"
placeholder: |
1. Import/run '...'
2. Call function '...'
3. See error
validations:
required: true
attributes:
label: Reproduction
description: |
Please provide entry arguments, error messages and stack traces that reproduces the problem.
请提供入口参数,错误日志以及异常堆栈以便于我们复现问题。

value: |
```text
Put your message here.
```
- type: textarea
id: environment
attributes:
label: "Environment | 环境信息"
placeholder: |
- Python version:
- Operating System:
- MemOS version: (run `pip show memoryos`)
validations:
required: true

- type: textarea
id: others
validations:
required: false
attributes:
label: Others
label: "Additional Context | 其他信息"

- type: checkboxes
id: contribution
attributes:
label: Willingness to Implement | 实现意愿
options:
- label: I'm willing to implement this myself | 我愿意自己解决
required: false
- label: I would like someone else to implement this | 我希望其他人来解决
required: false
14 changes: 14 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
blank_issues_enabled: false
contact_links:
- name: "\U0001F527 GitHub Pull Requests"
url: https://github.com/MemTensor/MemOS/pulls
about: Contribute code improvements via Pull Requests | 通过 Pull Requests 贡献代码改进
- name: "\U0001F4AC GitHub Discussions"
url: https://github.com/MemTensor/MemOS/discussions
about: Participate in our GitHub Discussions to ask questions or share ideas | 加入 GitHub Discussions,提出问题或分享想法
- name: "\U0001F3AE Discord Server"
url: https://discord.gg/Txbx3gebZR
about: Join our Discord Server for real-time community chat | 加入我们的 Discord 服务器进行实时社区聊天
- name: "\U0001F4F1 WeChat Group"
url: https://statics.memtensor.com.cn/memos/qr-code.png
about: Scan the QR code to join our WeChat group for more discussions | 扫描二维码加入我们的微信群,进行更多讨论
20 changes: 11 additions & 9 deletions .github/ISSUE_TEMPLATE/feature-request.yml
Original file line number Diff line number Diff line change
@@ -1,35 +1,37 @@
name: "\U0001F680 Feature request"
description: Submit a request for a new feature
description: Submit a request for a new feature | 申请添加新功能
title: "feat: "
labels: ["enhancement", "pending"]
body:

- type: checkboxes
id: checklist
attributes:
label: Pre-submission checklist
label: Pre-submission checklist | 提交前检查
options:
- label: I have searched existing issues and this feature hasn't been requested before | 我已搜索现有问题,确认此功能尚未被请求
- label: I have searched existing issues and this hasn't been mentioned before | 我已搜索现有问题,确认此问题尚未被提及
required: true
- label: I have read the project documentation and confirmed this feature doesn't already exist | 我已阅读项目文档并确认此功能尚未存在
- label: I have read the project documentation and confirmed this issue doesn't already exist | 我已阅读项目文档并确认此问题尚未存在
required: true
- label: This feature request is specific to MemOS and not a general software issue | 该功能请求是针对 MemOS 的,而不是一般软件问题
- label: This issue is specific to MemOS and not a general software issue | 该问题是针对 MemOS 的,而不是一般软件问题
required: true

- type: textarea
id: problem
validations:
required: true
attributes:
label: Problem Statement
label: Problem Statement | 问题陈述
placeholder: |
Describe the problem you're trying to solve...
Example: "As a developer using MemOS, I find it difficult to..."

- type: checkboxes
id: contribution
attributes:
label: Implementation Contribution
label: Willingness to Implement | 实现意愿
options:
- label: I'm willing to implement this feature myself | 我愿意自己实现此功能
- label: I'm willing to implement this myself | 我愿意自己解决
required: false
- label: I would like someone else to implement this | 我希望其他人来实现此功能
- label: I would like someone else to implement this | 我希望其他人来解决
required: false
10 changes: 7 additions & 3 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,30 @@
<!--
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), and (reviewer) with the appropriate information (No parentheses).
Replace (summary), (issue), (docs-issue-or-pr-link), and (reviewer) with the appropriate information.

请在下方填写更改的摘要;
填写此 PR 解决的问题编号(如果适用);
填写相关的 MemOS-Docs 仓库 issue 或 PR 链接(如果适用);
提及将审查此 PR 的人(如果您知道是谁);
替换 (summary)、(issue) 和 (reviewer) 为适当的信息(不带括号)
替换 (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 added necessary documentation (if applicable) | 我已添加必要的文档(如果适用)
- [ ] 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 的人
52 changes: 47 additions & 5 deletions .github/workflows/python-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ jobs:
os:
- "ubuntu-latest"
- "windows-latest"
- "macos-13"
- "macos-14"
- "macos-15"
# Ref: https://docs.github.com/en/actions/how-tos/writing-workflows/choosing-where-your-workflow-runs/choosing-the-runner-for-a-job
Expand All @@ -46,13 +47,54 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
cache: 'poetry'
- name: Install dependencies

# Dependency and building tests
- name: Install main dependencies
run: |
poetry install --no-root --no-interaction
- name: Check no top-level optional dependencies
run: |
poetry run python scripts/check_dependencies.py
- name: Build sdist and wheel
run: poetry build
- name: Test wheel installation on Windows
if: startsWith(matrix.os, 'windows')
run: |
Get-ChildItem dist/*.whl | ForEach-Object { pip install $_.FullName }
pip uninstall -y memoryos
- name: Test wheel installation on Linux / Mac
if: ${{ !startsWith(matrix.os, 'windows') }}
run: |
pip install dist/*.whl
pip uninstall -y memoryos
- name: Test sdist installation on Windows
if: startsWith(matrix.os, 'windows')
run: |
poetry install --no-interaction --with dev --with test
- name: Test with ruff
Get-ChildItem dist/*.tar.gz | ForEach-Object { pip install $_.FullName }
pip uninstall -y memoryos
- name: Test sdist installation on Linux / Mac
if: ${{ !startsWith(matrix.os, 'windows') }}
run: |
pip install dist/*.tar.gz
pip uninstall -y memoryos

# Ruff checks
- name: Install test group dependencies
run: |
poetry install --no-interaction --with test
- name: Ruff checks
run: |
poetry run ruff check
poetry run ruff format --check
- name: Test with pytest

# PyTest checks
- name: Install all extra dependencies
# macos-13 doesn't support torch==2.7.1
# So, pytest won't work
if: ${{ !startsWith(matrix.os, 'macos-13') }}
run: |
poetry install --no-interaction --extras all
- name: PyTest unit tests
if: ${{ !startsWith(matrix.os, 'macos-13') }}
run: |
poetry run pytest tests -vv
poetry run pytest tests -vv --durations=10
27 changes: 27 additions & 0 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: "Mark stale issues and PRs"

on:
schedule:
- cron: '0 2 * * *' # Runs every day at 2 AM UTC

permissions:
issues: write
pull-requests: write

jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
with:
stale-issue-message: 'This issue has been automatically marked as stale due to inactivity.'
stale-pr-message: 'This PR has been automatically marked as stale due to inactivity.'
close-issue-message: 'This issue has been automatically closed due to inactivity.'
close-pr-message: 'This PR has been automatically closed due to inactivity.'
days-before-stale: 30 # Days of inactivity before marking as stale
days-before-close: 7 # Days of inactivity before closing stale issues/PRs
stale-issue-label: 'stale'
stale-pr-label: 'stale'
exempt-issue-labels: 'do not close'
exempt-pr-labels: 'do not close'
remove-stale-when-updated: true
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ tmp/
**/tmp_data/

# evaluation data
evaluation/data/langmemeval
evaluation/*tmp/
evaluation/results
evaluation/.env
!evaluation/configs-example/*.json
evaluation/configs/*
**tree_textual_memory_locomo**
.env
Expand Down Expand Up @@ -186,6 +186,9 @@ dmypy.json
# Cython debug symbols
cython_debug/

# auth file
*_auth.yaml

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.PHONY: test

install:
poetry install --with dev --with test
poetry install --extras all --with dev --with test
poetry run pre-commit install --install-hooks

clean:
Expand All @@ -24,4 +24,4 @@ serve:
poetry run uvicorn memos.api.start_api:app

openapi:
poetry run python scripts/export_openapi.py --output docs/openapi.json
poetry run memos export_openapi --output docs/openapi.json
40 changes: 27 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
<a href="https://pypi.org/project/MemoryOS">
<img src="https://img.shields.io/pypi/pyversions/MemoryOS.svg" alt="Supported Python versions">
</a>
<a href="https://pypi.org/project/MemoryOS">
<img src="https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey" alt="Supported Platforms">
</a>
<a href="https://memos-docs.openmem.net/home/overview/">
<img src="https://img.shields.io/badge/Documentation-view-blue.svg" alt="Documentation">
</a>
Expand Down Expand Up @@ -138,34 +141,37 @@ For more detailed examples, please check out the [`examples`](./examples) direct

## 📦 Installation

> [!WARNING]
> MemOS is compatible with Linux, Windows, and macOS.
>
> However, if you're using macOS, please note that there may be dependency issues that are difficult to resolve.
>
> For example, compatibility with macOS 13 Ventura is currently challenging.

### Install via pip

```bash
pip install MemoryOS
```

### Development Install
### Optional Dependencies

To contribute to MemOS, clone the repository and install it in editable mode:
MemOS provides several optional dependency groups for different features. You can install them based on your needs.

| Feature | Package Name |
| --------------------- | ------------------------- |
| Tree Memory | `MemoryOS[tree-mem]` |
| Memory Reader | `MemoryOS[mem-reader]` |
| Memory Scheduler | `MemoryOS[mem-scheduler]` |

Example installation commands:

```bash
git clone https://github.com/MemTensor/MemOS.git
cd MemOS
make install
pip install MemoryOS[tree-mem]
pip install MemoryOS[tree-mem,mem-reader]
pip install MemoryOS[mem-scheduler]
pip install MemoryOS[tree-mem,mem-reader,mem-scheduler]
```

### Optional Dependencies
### External Dependencies

#### Ollama Support

To use MemOS with [Ollama](https://ollama.com/), first install the Ollama CLI:

```bash
curl -fsSL https://ollama.com/install.sh | sh
```
Expand All @@ -174,6 +180,14 @@ curl -fsSL https://ollama.com/install.sh | sh

To use functionalities based on the `transformers` library, ensure you have [PyTorch](https://pytorch.org/get-started/locally/) installed (CUDA version recommended for GPU acceleration).

#### Download Examples

To download example code, data and configurations, run the following command:

```bash
memos download_examples
```

## 💬 Community & Support

Join our community to ask questions, share your projects, and connect with other developers.
Expand Down
2 changes: 1 addition & 1 deletion docs/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -884,7 +884,7 @@
"type": "string",
"title": "Session Id",
"description": "Session ID for the MOS. This is used to distinguish between different dialogue",
"default": "3d88949f-cbe1-4244-a2e1-d346e8b76ca0"
"default": "a47d75a0-5ee8-473f-86c4-3f09073fd59f"
},
"chat_model": {
"$ref": "#/components/schemas/LLMConfigFactory",
Expand Down
Loading