Skip to content

Commit b572f0f

Browse files
authored
chore: bump version number to v0.2.1 (#131)
## Description Bug Fixes: Fixed reorganizer bugs and argument errors Resolved None issue in reorganizer queue Updated Python version constraints New Features: Added support for multiple embedders (Ark/Volcengine, Universal API) Introduced Neo4j database integration and sharing capabilities Added evaluation pipeline (longmemeval) Implemented multi-language support and customizable system prompts Added MCP (Model Context Protocol) server support with client demo Improvements: Enhanced memory management with ID returns and clustering optimizations Simplified user onboarding with basic memos Expanded LLM API support and optimized dependency management Added development tools (download examples, issue templates, stale management) Documentation & DevOps: Updated issue/PR templates and workflows Improved multi-user example implementations with significant additions to embedding support, database backends, and user experience improvements.
2 parents 2fe6942 + 727dc18 commit b572f0f

File tree

153 files changed

+16921
-2819
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

153 files changed

+16921
-2819
lines changed
Lines changed: 46 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,64 @@
1-
name: "\U0001F41B Bug / help"
2-
description: Create a report to help us improve MemOS
1+
name: "\U0001F41B Bug Report"
2+
description: Report a bug to help us improve MemOS | 报告错误以帮助我们改进 MemOS
3+
title: "fix: "
34
labels: ["bug", "pending"]
45
body:
56

7+
- type: checkboxes
8+
id: checklist
9+
attributes:
10+
label: Pre-submission checklist | 提交前检查
11+
options:
12+
- label: I have searched existing issues and this hasn't been mentioned before | 我已搜索现有问题,确认此问题尚未被提及
13+
required: true
14+
- label: I have read the project documentation and confirmed this issue doesn't already exist | 我已阅读项目文档并确认此问题尚未存在
15+
required: true
16+
- label: This issue is specific to MemOS and not a general software issue | 该问题是针对 MemOS 的,而不是一般软件问题
17+
required: true
18+
619
- type: textarea
7-
id: system-info
20+
id: description
21+
attributes:
22+
label: "Bug Description | 问题描述"
23+
placeholder: "Describe what happened and what you expected to happen"
824
validations:
925
required: true
10-
attributes:
11-
label: System Info
12-
description: |
13-
Please share your system info with us. You can run the command **pip show MemoryOS** and copy-paste its output below.
14-
请提供您的系统信息。您可以在命令行运行 **pip show MemoryOS** 并将其输出复制到该文本框中。
15-
16-
placeholder: MemoryOS version, platform, python version, ...
1726

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

28-
value: |
29-
```text
30-
Put your message here.
31-
```
38+
- type: textarea
39+
id: environment
40+
attributes:
41+
label: "Environment | 环境信息"
42+
placeholder: |
43+
- Python version:
44+
- Operating System:
45+
- MemOS version: (run `pip show memoryos`)
46+
validations:
47+
required: true
3248

3349
- type: textarea
3450
id: others
3551
validations:
3652
required: false
3753
attributes:
38-
label: Others
54+
label: "Additional Context | 其他信息"
55+
56+
- type: checkboxes
57+
id: contribution
58+
attributes:
59+
label: Willingness to Implement | 实现意愿
60+
options:
61+
- label: I'm willing to implement this myself | 我愿意自己解决
62+
required: false
63+
- label: I would like someone else to implement this | 我希望其他人来解决
64+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: "\U0001F527 GitHub Pull Requests"
4+
url: https://github.com/MemTensor/MemOS/pulls
5+
about: Contribute code improvements via Pull Requests | 通过 Pull Requests 贡献代码改进
6+
- name: "\U0001F4AC GitHub Discussions"
7+
url: https://github.com/MemTensor/MemOS/discussions
8+
about: Participate in our GitHub Discussions to ask questions or share ideas | 加入 GitHub Discussions,提出问题或分享想法
9+
- name: "\U0001F3AE Discord Server"
10+
url: https://discord.gg/Txbx3gebZR
11+
about: Join our Discord Server for real-time community chat | 加入我们的 Discord 服务器进行实时社区聊天
12+
- name: "\U0001F4F1 WeChat Group"
13+
url: https://statics.memtensor.com.cn/memos/qr-code.png
14+
about: Scan the QR code to join our WeChat group for more discussions | 扫描二维码加入我们的微信群,进行更多讨论
Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,37 @@
11
name: "\U0001F680 Feature request"
2-
description: Submit a request for a new feature
2+
description: Submit a request for a new feature | 申请添加新功能
3+
title: "feat: "
34
labels: ["enhancement", "pending"]
45
body:
6+
57
- type: checkboxes
68
id: checklist
79
attributes:
8-
label: Pre-submission checklist
10+
label: Pre-submission checklist | 提交前检查
911
options:
10-
- label: I have searched existing issues and this feature hasn't been requested before | 我已搜索现有问题,确认此功能尚未被请求
12+
- label: I have searched existing issues and this hasn't been mentioned before | 我已搜索现有问题,确认此问题尚未被提及
1113
required: true
12-
- label: I have read the project documentation and confirmed this feature doesn't already exist | 我已阅读项目文档并确认此功能尚未存在
14+
- label: I have read the project documentation and confirmed this issue doesn't already exist | 我已阅读项目文档并确认此问题尚未存在
1315
required: true
14-
- label: This feature request is specific to MemOS and not a general software issue | 该功能请求是针对 MemOS 的,而不是一般软件问题
16+
- label: This issue is specific to MemOS and not a general software issue | 该问题是针对 MemOS 的,而不是一般软件问题
1517
required: true
1618

1719
- type: textarea
1820
id: problem
1921
validations:
2022
required: true
2123
attributes:
22-
label: Problem Statement
24+
label: Problem Statement | 问题陈述
2325
placeholder: |
2426
Describe the problem you're trying to solve...
2527
Example: "As a developer using MemOS, I find it difficult to..."
2628
2729
- type: checkboxes
2830
id: contribution
2931
attributes:
30-
label: Implementation Contribution
32+
label: Willingness to Implement | 实现意愿
3133
options:
32-
- label: I'm willing to implement this feature myself | 我愿意自己实现此功能
34+
- label: I'm willing to implement this myself | 我愿意自己解决
3335
required: false
34-
- label: I would like someone else to implement this | 我希望其他人来实现此功能
36+
- label: I would like someone else to implement this | 我希望其他人来解决
3537
required: false

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,30 @@
33
<!--
44
Please include a summary of the changes below;
55
Fill in the issue number that this PR addresses (if applicable);
6+
Fill in the related MemOS-Docs repository issue or PR link (if applicable);
67
Mention the person who will review this PR (if you know who it is);
7-
Replace (summary), (issue), and (reviewer) with the appropriate information (No parentheses).
8+
Replace (summary), (issue), (docs-issue-or-pr-link), and (reviewer) with the appropriate information.
89
910
请在下方填写更改的摘要;
1011
填写此 PR 解决的问题编号(如果适用);
12+
填写相关的 MemOS-Docs 仓库 issue 或 PR 链接(如果适用);
1113
提及将审查此 PR 的人(如果您知道是谁);
12-
替换 (summary)、(issue) 和 (reviewer) 为适当的信息(不带括号)
14+
替换 (summary)、(issue)、(docs-issue-or-pr-link) 和 (reviewer) 为适当的信息。
1315
-->
1416

1517
Summary: (summary)
1618

1719
Fix: #(issue)
1820

21+
Docs Issue/PR: (docs-issue-or-pr-link)
22+
1923
Reviewer: @(reviewer)
2024

2125
## Checklist:
2226

2327
- [ ] I have performed a self-review of my own code | 我已自行检查了自己的代码
2428
- [ ] I have commented my code in hard-to-understand areas | 我已在难以理解的地方对代码进行了注释
2529
- [ ] I have added tests that prove my fix is effective or that my feature works | 我已添加测试以证明我的修复有效或功能正常
26-
- [ ] I have added necessary documentation (if applicable) | 我已添加必要的文档(如果适用)
30+
- [ ] 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(如果适用)
2731
- [ ] I have linked the issue to this PR (if applicable) | 我已将 issue 链接到此 PR(如果适用)
2832
- [ ] I have mentioned the person who will review this PR | 我已提及将审查此 PR 的人

.github/workflows/python-tests.yml

Lines changed: 47 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ jobs:
2626
os:
2727
- "ubuntu-latest"
2828
- "windows-latest"
29+
- "macos-13"
2930
- "macos-14"
3031
- "macos-15"
3132
# Ref: https://docs.github.com/en/actions/how-tos/writing-workflows/choosing-where-your-workflow-runs/choosing-the-runner-for-a-job
@@ -46,13 +47,54 @@ jobs:
4647
with:
4748
python-version: ${{ matrix.python-version }}
4849
cache: 'poetry'
49-
- name: Install dependencies
50+
51+
# Dependency and building tests
52+
- name: Install main dependencies
53+
run: |
54+
poetry install --no-root --no-interaction
55+
- name: Check no top-level optional dependencies
56+
run: |
57+
poetry run python scripts/check_dependencies.py
58+
- name: Build sdist and wheel
59+
run: poetry build
60+
- name: Test wheel installation on Windows
61+
if: startsWith(matrix.os, 'windows')
62+
run: |
63+
Get-ChildItem dist/*.whl | ForEach-Object { pip install $_.FullName }
64+
pip uninstall -y memoryos
65+
- name: Test wheel installation on Linux / Mac
66+
if: ${{ !startsWith(matrix.os, 'windows') }}
67+
run: |
68+
pip install dist/*.whl
69+
pip uninstall -y memoryos
70+
- name: Test sdist installation on Windows
71+
if: startsWith(matrix.os, 'windows')
5072
run: |
51-
poetry install --no-interaction --with dev --with test
52-
- name: Test with ruff
73+
Get-ChildItem dist/*.tar.gz | ForEach-Object { pip install $_.FullName }
74+
pip uninstall -y memoryos
75+
- name: Test sdist installation on Linux / Mac
76+
if: ${{ !startsWith(matrix.os, 'windows') }}
77+
run: |
78+
pip install dist/*.tar.gz
79+
pip uninstall -y memoryos
80+
81+
# Ruff checks
82+
- name: Install test group dependencies
83+
run: |
84+
poetry install --no-interaction --with test
85+
- name: Ruff checks
5386
run: |
5487
poetry run ruff check
5588
poetry run ruff format --check
56-
- name: Test with pytest
89+
90+
# PyTest checks
91+
- name: Install all extra dependencies
92+
# macos-13 doesn't support torch==2.7.1
93+
# So, pytest won't work
94+
if: ${{ !startsWith(matrix.os, 'macos-13') }}
95+
run: |
96+
poetry install --no-interaction --extras all
97+
- name: PyTest unit tests
98+
if: ${{ !startsWith(matrix.os, 'macos-13') }}
5799
run: |
58-
poetry run pytest tests -vv
100+
poetry run pytest tests -vv --durations=10

.github/workflows/stale.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: "Mark stale issues and PRs"
2+
3+
on:
4+
schedule:
5+
- cron: '0 2 * * *' # Runs every day at 2 AM UTC
6+
7+
permissions:
8+
issues: write
9+
pull-requests: write
10+
11+
jobs:
12+
stale:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/stale@v9
16+
with:
17+
stale-issue-message: 'This issue has been automatically marked as stale due to inactivity.'
18+
stale-pr-message: 'This PR has been automatically marked as stale due to inactivity.'
19+
close-issue-message: 'This issue has been automatically closed due to inactivity.'
20+
close-pr-message: 'This PR has been automatically closed due to inactivity.'
21+
days-before-stale: 30 # Days of inactivity before marking as stale
22+
days-before-close: 7 # Days of inactivity before closing stale issues/PRs
23+
stale-issue-label: 'stale'
24+
stale-pr-label: 'stale'
25+
exempt-issue-labels: 'do not close'
26+
exempt-pr-labels: 'do not close'
27+
remove-stale-when-updated: true

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ tmp/
66
**/tmp_data/
77

88
# evaluation data
9-
evaluation/data/langmemeval
109
evaluation/*tmp/
1110
evaluation/results
1211
evaluation/.env
12+
!evaluation/configs-example/*.json
1313
evaluation/configs/*
1414
**tree_textual_memory_locomo**
1515
.env
@@ -186,6 +186,9 @@ dmypy.json
186186
# Cython debug symbols
187187
cython_debug/
188188

189+
# auth file
190+
*_auth.yaml
191+
189192
# PyCharm
190193
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
191194
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.PHONY: test
22

33
install:
4-
poetry install --with dev --with test
4+
poetry install --extras all --with dev --with test
55
poetry run pre-commit install --install-hooks
66

77
clean:
@@ -24,4 +24,4 @@ serve:
2424
poetry run uvicorn memos.api.start_api:app
2525

2626
openapi:
27-
poetry run python scripts/export_openapi.py --output docs/openapi.json
27+
poetry run memos export_openapi --output docs/openapi.json

README.md

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
<a href="https://pypi.org/project/MemoryOS">
1818
<img src="https://img.shields.io/pypi/pyversions/MemoryOS.svg" alt="Supported Python versions">
1919
</a>
20+
<a href="https://pypi.org/project/MemoryOS">
21+
<img src="https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey" alt="Supported Platforms">
22+
</a>
2023
<a href="https://memos-docs.openmem.net/home/overview/">
2124
<img src="https://img.shields.io/badge/Documentation-view-blue.svg" alt="Documentation">
2225
</a>
@@ -138,34 +141,37 @@ For more detailed examples, please check out the [`examples`](./examples) direct
138141

139142
## 📦 Installation
140143

141-
> [!WARNING]
142-
> MemOS is compatible with Linux, Windows, and macOS.
143-
>
144-
> However, if you're using macOS, please note that there may be dependency issues that are difficult to resolve.
145-
>
146-
> For example, compatibility with macOS 13 Ventura is currently challenging.
147-
148144
### Install via pip
149145

150146
```bash
151147
pip install MemoryOS
152148
```
153149

154-
### Development Install
150+
### Optional Dependencies
155151

156-
To contribute to MemOS, clone the repository and install it in editable mode:
152+
MemOS provides several optional dependency groups for different features. You can install them based on your needs.
153+
154+
| Feature | Package Name |
155+
| --------------------- | ------------------------- |
156+
| Tree Memory | `MemoryOS[tree-mem]` |
157+
| Memory Reader | `MemoryOS[mem-reader]` |
158+
| Memory Scheduler | `MemoryOS[mem-scheduler]` |
159+
160+
Example installation commands:
157161

158162
```bash
159-
git clone https://github.com/MemTensor/MemOS.git
160-
cd MemOS
161-
make install
163+
pip install MemoryOS[tree-mem]
164+
pip install MemoryOS[tree-mem,mem-reader]
165+
pip install MemoryOS[mem-scheduler]
166+
pip install MemoryOS[tree-mem,mem-reader,mem-scheduler]
162167
```
163168

164-
### Optional Dependencies
169+
### External Dependencies
165170

166171
#### Ollama Support
167172

168173
To use MemOS with [Ollama](https://ollama.com/), first install the Ollama CLI:
174+
169175
```bash
170176
curl -fsSL https://ollama.com/install.sh | sh
171177
```
@@ -174,6 +180,14 @@ curl -fsSL https://ollama.com/install.sh | sh
174180

175181
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).
176182

183+
#### Download Examples
184+
185+
To download example code, data and configurations, run the following command:
186+
187+
```bash
188+
memos download_examples
189+
```
190+
177191
## 💬 Community & Support
178192

179193
Join our community to ask questions, share your projects, and connect with other developers.

0 commit comments

Comments
 (0)