memex-agent-memory 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. memex_agent_memory-0.1.0/MANIFEST.in +6 -0
  2. memex_agent_memory-0.1.0/PKG-INFO +285 -0
  3. memex_agent_memory-0.1.0/README.md +259 -0
  4. memex_agent_memory-0.1.0/memex/SKILL.md +178 -0
  5. memex_agent_memory-0.1.0/memex/__init__.py +1 -0
  6. memex_agent_memory-0.1.0/memex/_config.py +88 -0
  7. memex_agent_memory-0.1.0/memex/_consolidation.py +142 -0
  8. memex_agent_memory-0.1.0/memex/_contradiction.py +206 -0
  9. memex_agent_memory-0.1.0/memex/_decay.py +114 -0
  10. memex_agent_memory-0.1.0/memex/_distill.py +250 -0
  11. memex_agent_memory-0.1.0/memex/_embed.py +44 -0
  12. memex_agent_memory-0.1.0/memex/_hybrid.py +128 -0
  13. memex_agent_memory-0.1.0/memex/_revision.py +167 -0
  14. memex_agent_memory-0.1.0/memex/_types.py +92 -0
  15. memex_agent_memory-0.1.0/memex/cli.py +228 -0
  16. memex_agent_memory-0.1.0/memex/store/__init__.py +5 -0
  17. memex_agent_memory-0.1.0/memex/store/factory.py +30 -0
  18. memex_agent_memory-0.1.0/memex/store/interface.py +79 -0
  19. memex_agent_memory-0.1.0/memex/store/lancedb.py +190 -0
  20. memex_agent_memory-0.1.0/memex/store/memory.py +99 -0
  21. memex_agent_memory-0.1.0/memex_agent_memory.egg-info/PKG-INFO +285 -0
  22. memex_agent_memory-0.1.0/memex_agent_memory.egg-info/SOURCES.txt +26 -0
  23. memex_agent_memory-0.1.0/memex_agent_memory.egg-info/dependency_links.txt +1 -0
  24. memex_agent_memory-0.1.0/memex_agent_memory.egg-info/entry_points.txt +2 -0
  25. memex_agent_memory-0.1.0/memex_agent_memory.egg-info/requires.txt +10 -0
  26. memex_agent_memory-0.1.0/memex_agent_memory.egg-info/top_level.txt +1 -0
  27. memex_agent_memory-0.1.0/pyproject.toml +61 -0
  28. memex_agent_memory-0.1.0/setup.cfg +4 -0
@@ -0,0 +1,6 @@
1
+ include README.md
2
+ include LICENSE
3
+ recursive-include memex *.py *.md py.typed
4
+ recursive-exclude tests *
5
+ recursive-exclude * __pycache__
6
+ recursive-exclude * *.py[co]
@@ -0,0 +1,285 @@
1
+ Metadata-Version: 2.4
2
+ Name: memex-agent-memory
3
+ Version: 0.1.0
4
+ Summary: Agent 记忆系统 — 轻量级本地向量数据库 + CLI + Agent Skill
5
+ Author-email: Wang Qiu <wangqiu777@gmail.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/winsonwq/memex
8
+ Project-URL: Repository, https://github.com/winsonwq/memex
9
+ Project-URL: Documentation, https://github.com/winsonwq/memex#readme
10
+ Keywords: ai,agent,memory,vector-search,lancedb
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Description-Content-Type: text/markdown
17
+ Requires-Dist: lancedb>=0.11.0
18
+ Requires-Dist: InstructorEmbedding>=1.0.1
19
+ Requires-Dist: sentence-transformers>=2.7.0
20
+ Requires-Dist: click>=8.0.0
21
+ Requires-Dist: pyyaml>=6.0.0
22
+ Provides-Extra: dev
23
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
24
+ Requires-Dist: black>=23.0.0; extra == "dev"
25
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
26
+
27
+ # Memex — Agent 记忆系统
28
+
29
+ > 用嵌入式向量数据库实现轻量级 Agent 记忆系统,以 CLI + Skill 的形式交付。
30
+
31
+ ## 一句话
32
+
33
+ **Memex 让 Agent 记住一切,实现跨会话的持续学习。**
34
+
35
+ ---
36
+
37
+ ## 特性
38
+
39
+ - **原文存储** — 原文保留,不依赖 LLM 提取摘要
40
+ - **向量语义搜索** — 支持自然语言查询记忆
41
+ - **六种记忆类型** — constraint / user_model / strategy / system_pattern / belief / journal
42
+ - **隐私可控** — recall / purge 用户自主控制
43
+ - **多 Agent 支持** — 通过 repo 命名空间隔离
44
+ - **便携设计** — `~/.memex/` 打包迁移
45
+
46
+ ---
47
+
48
+ ## Summary
49
+
50
+ Memex 定位与 MemPalace 不同:
51
+
52
+ - **MemPalace** → maximize **recall**(找回正确答案),适合 benchmark
53
+ - **Memex Phase 2** → maximize **utility**(找回最有用的答案),适合真实场景
54
+
55
+ Phase 2 独有的高级机制:语义蒸馏、混合检索、记忆修订、衰减遗忘、矛盾检测、记忆合并。这些机制没有公开 benchmark,需要在真实使用中验证价值。
56
+
57
+ 📄 详见:[docs/comparison.md](docs/comparison.md)
58
+
59
+ ---
60
+
61
+ ## 快速开始
62
+
63
+ ### 安装
64
+
65
+ ```bash
66
+ pip install memex
67
+ ```
68
+
69
+ ### 初始化
70
+
71
+ ```bash
72
+ memex init
73
+ ```
74
+
75
+ ### 存入记忆
76
+
77
+ ```bash
78
+ memex save --type belief --content "用户喜欢简洁的回复风格" --repo user
79
+ ```
80
+
81
+ ### 搜索记忆
82
+
83
+ ```bash
84
+ memex search "用户有什么偏好" --repo user --limit 5
85
+ ```
86
+
87
+ **返回 JSON**(供 Agent 解析):
88
+
89
+ ```json
90
+ {
91
+ "query": "用户有什么偏好",
92
+ "results": [
93
+ {
94
+ "id": "uuid",
95
+ "type": "belief",
96
+ "content": "用户喜欢简洁的回复风格",
97
+ "importance": 0.7,
98
+ "confidence": 0.8,
99
+ "score": 0.92
100
+ }
101
+ ],
102
+ "total": 1
103
+ }
104
+ ```
105
+
106
+ ### 更多命令
107
+
108
+ ```bash
109
+ memex list --repo user # 列出记忆
110
+ memex get <memory-id> # 获取单条
111
+ memex delete <memory-id> # 删除
112
+ memex stats # 统计
113
+ memex recall # 隐私查看
114
+ memex purge <memory-id> # 隐私删除
115
+ memex purge --all # 清空所有
116
+ ```
117
+
118
+ ---
119
+
120
+ ## 记忆类型
121
+
122
+ | 类型 | 用途 | importance | 示例 |
123
+ |------|------|-----------|------|
124
+ | `constraint` | 强制规则 | 0.9 | "用户不喜欢废话" |
125
+ | `user_model` | 用户偏好 | 0.85 | "用户喜欢简洁回复" |
126
+ | `strategy` | 方法论 | 0.8 | "用分治法解决复杂问题" |
127
+ | `system_pattern` | 系统模式 | 0.75 | "项目采用前后端分离" |
128
+ | `belief` | 验证结论 | 0.7 | "Python 适合快速原型" |
129
+ | `journal` | 工作日志 | 0.4 | "今天完成了 xxx" |
130
+
131
+ ---
132
+
133
+ ## 技术栈
134
+
135
+ | 组件 | 选择 |
136
+ |------|------|
137
+ | 向量数据库 | LanceDB(嵌入式,列式存储) |
138
+ | Embedding | BGE-base-zh-v1.5(中文优化) |
139
+ | CLI | Click |
140
+ | 存储抽象 | 可切换 LanceDB / Chroma / Memory |
141
+
142
+ ---
143
+
144
+ ## 架构
145
+
146
+ ```
147
+ memex/
148
+ ├── src/memex/
149
+ │ ├── _types.py # MemoryRecord、MemoryType
150
+ │ ├── _config.py # 配置管理
151
+ │ ├── _embed.py # Embedding 生成
152
+ │ ├── store/ # 存储抽象层
153
+ │ │ ├── interface.py # VectorStore 接口
154
+ │ │ ├── lancedb.py # LanceDB 实现
155
+ │ │ └── memory.py # 内存实现(测试用)
156
+ │ └── cli.py # CLI 命令
157
+ ├── skills/
158
+ │ └── memory-skill/
159
+ │ └── SKILL.md # 通用 Agent Skill
160
+ └── tests/
161
+ ```
162
+
163
+ ---
164
+
165
+ ## 配置
166
+
167
+ 配置文件:`~/.memex/config.toml`
168
+
169
+ ```toml
170
+ [memory]
171
+ storage_path = "~/.memex/memory"
172
+
173
+ [vector_store]
174
+ provider = "lancedb"
175
+
176
+ [embedding]
177
+ model = "BAAI/bge-base-zh-v1.5"
178
+ dimension = 768
179
+
180
+ [retrieval]
181
+ default_limit = 10
182
+ min_similarity = 0.4
183
+ ```
184
+
185
+ ---
186
+
187
+ ## 通用 Agent Skill
188
+
189
+ 将 Memex 接入 Agent:
190
+
191
+ 1. 复制 skill 到 `~/.openclaw/skills/memex/`
192
+ 2. Agent 在合适的时机调用 `memex search` / `memex save`
193
+
194
+ 详见 [`skills/memory-skill/SKILL.md`](skills/memory-skill/SKILL.md)
195
+
196
+ ---
197
+
198
+ ## LongMemEval Benchmark
199
+
200
+ 在 [LongMemEval](https://github.com/xiaowu0162/longmemeval)(ICLR 2025, UCLA + 腾讯 AI Lab)上测试了 Memex 的记忆召回能力。
201
+
202
+ ### 测试配置
203
+
204
+ - **Embedding**: BAAI/bge-base-zh-v1.5(768 维)
205
+ - **存储**: LanceDB 嵌入式向量数据库
206
+ - **粒度**: Turn-level(每条记录 = 一个对话回合,约 550 条/题)
207
+
208
+ ### 测试结果
209
+
210
+ | 配置 | 题数 | R@5 | R@10 | NDCG@10 |
211
+ |------|------|------|------|---------|
212
+ | MemPalace (baseline) | 500 | **96.6%** | 98.2% | 88.9% |
213
+ | Memex (turn-level) | 500 | **91.8%** | 94.0% | ~80% |
214
+ | Memex (session-level) | 500 | 85.8% | 92.2% | 78.9% |
215
+
216
+ ### 粒度说明
217
+
218
+ LongMemEval 支持两种评估粒度:
219
+
220
+ | 粒度 | 每题记录数 | 说明 |
221
+ |------|-----------|------|
222
+ | **Turn-level** | ~550 条 | 每条 = 一个对话回合(user/assistant 的一条消息),最细粒度 |
223
+ | **Session-level** | ~53 条 | 每条 = 一个完整会话(30-40 回合聚成),较粗粒度 |
224
+
225
+ MemPalace 的 96.6% 是 turn-level 的结果。Turn-level 更接近真实场景——你的每一次对话、每一条消息,都可能藏着答案。
226
+
227
+ Memex 在 turn-level 达到 91.8%(vs MemPalace 96.6%),差距约 5 个百分点。
228
+
229
+ ### 和 MemPalace 的差异
230
+
231
+ | 维度 | Memex | MemPalace |
232
+ |------|-------|----------|
233
+ | 向量数据库 | **LanceDB**(列式存储,高性能) | ChromaDB |
234
+ | 存储抽象 | **VectorStore 接口**,可切换后端 | 固定 ChromaDB |
235
+ | 记忆类型 | **六种分类**(constraint/user_model/...) | 纯 chunks |
236
+ | 接口 | **CLI + Agent Skill** 双接口 | API |
237
+
238
+ LanceDB 基于 Apache Arrow 列式存储,查询性能更强,存储更紧凑;BGE 中文 embedding 对中文对话的记忆召回更有优势。
239
+
240
+ ### 核心发现
241
+
242
+ 1. **原文存储有效**:不经过 LLM 提取的原文方案,在记忆召回任务上表现优异
243
+ 2. **Turn-level 优于 Session-level**:粒度越细,能找回的细节越多
244
+ 3. **存储抽象带来灵活性**:VectorStore 接口可以切换不同向量数据库后端
245
+
246
+ ---
247
+
248
+ ## 项目状态
249
+
250
+ **Phase 1: MVP** ✅
251
+
252
+ - [x] 核心类型定义
253
+ - [x] 存储抽象层(VectorStore 接口 + LanceDB 实现)
254
+ - [x] CLI 命令(init / save / search / get / list / delete / stats / recall / purge)
255
+ - [x] BGE embedding 集成
256
+ - [x] 基本测试
257
+ - [x] SKILL.md
258
+
259
+ **Phase 2**: 借鉴 OpenSwarm 的高级记忆机制 ✅
260
+
261
+ - [x] **语义蒸馏(Distillation)**:存入前过滤闲聊/情绪/依赖上下文的提问,只保留有价值的 insight
262
+ - [x] **混合检索(Hybrid Retrieval)**:final_score = 0.55×相似度 + 0.20×重要性 + 0.15×新鲜度 + 0.10×频率
263
+ - [x] **记忆修订(Revision)**:belief 被修订后重新计算 stability,支持不是 append-only
264
+ - [x] **衰减遗忘(Decay & Forgetting)**: decay ≥ 0.7 则归档,importance → 0.05
265
+ - [x] **矛盾检测(Contradiction Detection)**:基于关键词对检测语义冲突,importance 下降
266
+ - [x] **记忆合并(Consolidation)**:相似度 > 0.85 的记忆合并
267
+
268
+ **Phase 3**: 发布与分发
269
+
270
+ - [ ] `pip install memex` — 一键安装 CLI + Skill
271
+ - [ ] `pyproject.toml` — 打包配置
272
+ - [ ] Skill 自动安装到 `~/.agents/skills/memex/`(遵守 AgentSkills 规范,通用)
273
+
274
+ **Phase 4**: 评测数据
275
+
276
+ - [ ] 创建 `memex-benchmarks` 仓库
277
+ - [ ] distillation 数据集:should_store / should_reject 各 20-50 条
278
+ - [ ] contradiction 数据集:成对矛盾的记忆对 20-30 条
279
+ - [ ] 其他模块数据集:hybrid / revision / decay / consolidation
280
+
281
+ ---
282
+
283
+ ## License
284
+
285
+ MIT
@@ -0,0 +1,259 @@
1
+ # Memex — Agent 记忆系统
2
+
3
+ > 用嵌入式向量数据库实现轻量级 Agent 记忆系统,以 CLI + Skill 的形式交付。
4
+
5
+ ## 一句话
6
+
7
+ **Memex 让 Agent 记住一切,实现跨会话的持续学习。**
8
+
9
+ ---
10
+
11
+ ## 特性
12
+
13
+ - **原文存储** — 原文保留,不依赖 LLM 提取摘要
14
+ - **向量语义搜索** — 支持自然语言查询记忆
15
+ - **六种记忆类型** — constraint / user_model / strategy / system_pattern / belief / journal
16
+ - **隐私可控** — recall / purge 用户自主控制
17
+ - **多 Agent 支持** — 通过 repo 命名空间隔离
18
+ - **便携设计** — `~/.memex/` 打包迁移
19
+
20
+ ---
21
+
22
+ ## Summary
23
+
24
+ Memex 定位与 MemPalace 不同:
25
+
26
+ - **MemPalace** → maximize **recall**(找回正确答案),适合 benchmark
27
+ - **Memex Phase 2** → maximize **utility**(找回最有用的答案),适合真实场景
28
+
29
+ Phase 2 独有的高级机制:语义蒸馏、混合检索、记忆修订、衰减遗忘、矛盾检测、记忆合并。这些机制没有公开 benchmark,需要在真实使用中验证价值。
30
+
31
+ 📄 详见:[docs/comparison.md](docs/comparison.md)
32
+
33
+ ---
34
+
35
+ ## 快速开始
36
+
37
+ ### 安装
38
+
39
+ ```bash
40
+ pip install memex
41
+ ```
42
+
43
+ ### 初始化
44
+
45
+ ```bash
46
+ memex init
47
+ ```
48
+
49
+ ### 存入记忆
50
+
51
+ ```bash
52
+ memex save --type belief --content "用户喜欢简洁的回复风格" --repo user
53
+ ```
54
+
55
+ ### 搜索记忆
56
+
57
+ ```bash
58
+ memex search "用户有什么偏好" --repo user --limit 5
59
+ ```
60
+
61
+ **返回 JSON**(供 Agent 解析):
62
+
63
+ ```json
64
+ {
65
+ "query": "用户有什么偏好",
66
+ "results": [
67
+ {
68
+ "id": "uuid",
69
+ "type": "belief",
70
+ "content": "用户喜欢简洁的回复风格",
71
+ "importance": 0.7,
72
+ "confidence": 0.8,
73
+ "score": 0.92
74
+ }
75
+ ],
76
+ "total": 1
77
+ }
78
+ ```
79
+
80
+ ### 更多命令
81
+
82
+ ```bash
83
+ memex list --repo user # 列出记忆
84
+ memex get <memory-id> # 获取单条
85
+ memex delete <memory-id> # 删除
86
+ memex stats # 统计
87
+ memex recall # 隐私查看
88
+ memex purge <memory-id> # 隐私删除
89
+ memex purge --all # 清空所有
90
+ ```
91
+
92
+ ---
93
+
94
+ ## 记忆类型
95
+
96
+ | 类型 | 用途 | importance | 示例 |
97
+ |------|------|-----------|------|
98
+ | `constraint` | 强制规则 | 0.9 | "用户不喜欢废话" |
99
+ | `user_model` | 用户偏好 | 0.85 | "用户喜欢简洁回复" |
100
+ | `strategy` | 方法论 | 0.8 | "用分治法解决复杂问题" |
101
+ | `system_pattern` | 系统模式 | 0.75 | "项目采用前后端分离" |
102
+ | `belief` | 验证结论 | 0.7 | "Python 适合快速原型" |
103
+ | `journal` | 工作日志 | 0.4 | "今天完成了 xxx" |
104
+
105
+ ---
106
+
107
+ ## 技术栈
108
+
109
+ | 组件 | 选择 |
110
+ |------|------|
111
+ | 向量数据库 | LanceDB(嵌入式,列式存储) |
112
+ | Embedding | BGE-base-zh-v1.5(中文优化) |
113
+ | CLI | Click |
114
+ | 存储抽象 | 可切换 LanceDB / Chroma / Memory |
115
+
116
+ ---
117
+
118
+ ## 架构
119
+
120
+ ```
121
+ memex/
122
+ ├── src/memex/
123
+ │ ├── _types.py # MemoryRecord、MemoryType
124
+ │ ├── _config.py # 配置管理
125
+ │ ├── _embed.py # Embedding 生成
126
+ │ ├── store/ # 存储抽象层
127
+ │ │ ├── interface.py # VectorStore 接口
128
+ │ │ ├── lancedb.py # LanceDB 实现
129
+ │ │ └── memory.py # 内存实现(测试用)
130
+ │ └── cli.py # CLI 命令
131
+ ├── skills/
132
+ │ └── memory-skill/
133
+ │ └── SKILL.md # 通用 Agent Skill
134
+ └── tests/
135
+ ```
136
+
137
+ ---
138
+
139
+ ## 配置
140
+
141
+ 配置文件:`~/.memex/config.toml`
142
+
143
+ ```toml
144
+ [memory]
145
+ storage_path = "~/.memex/memory"
146
+
147
+ [vector_store]
148
+ provider = "lancedb"
149
+
150
+ [embedding]
151
+ model = "BAAI/bge-base-zh-v1.5"
152
+ dimension = 768
153
+
154
+ [retrieval]
155
+ default_limit = 10
156
+ min_similarity = 0.4
157
+ ```
158
+
159
+ ---
160
+
161
+ ## 通用 Agent Skill
162
+
163
+ 将 Memex 接入 Agent:
164
+
165
+ 1. 复制 skill 到 `~/.openclaw/skills/memex/`
166
+ 2. Agent 在合适的时机调用 `memex search` / `memex save`
167
+
168
+ 详见 [`skills/memory-skill/SKILL.md`](skills/memory-skill/SKILL.md)
169
+
170
+ ---
171
+
172
+ ## LongMemEval Benchmark
173
+
174
+ 在 [LongMemEval](https://github.com/xiaowu0162/longmemeval)(ICLR 2025, UCLA + 腾讯 AI Lab)上测试了 Memex 的记忆召回能力。
175
+
176
+ ### 测试配置
177
+
178
+ - **Embedding**: BAAI/bge-base-zh-v1.5(768 维)
179
+ - **存储**: LanceDB 嵌入式向量数据库
180
+ - **粒度**: Turn-level(每条记录 = 一个对话回合,约 550 条/题)
181
+
182
+ ### 测试结果
183
+
184
+ | 配置 | 题数 | R@5 | R@10 | NDCG@10 |
185
+ |------|------|------|------|---------|
186
+ | MemPalace (baseline) | 500 | **96.6%** | 98.2% | 88.9% |
187
+ | Memex (turn-level) | 500 | **91.8%** | 94.0% | ~80% |
188
+ | Memex (session-level) | 500 | 85.8% | 92.2% | 78.9% |
189
+
190
+ ### 粒度说明
191
+
192
+ LongMemEval 支持两种评估粒度:
193
+
194
+ | 粒度 | 每题记录数 | 说明 |
195
+ |------|-----------|------|
196
+ | **Turn-level** | ~550 条 | 每条 = 一个对话回合(user/assistant 的一条消息),最细粒度 |
197
+ | **Session-level** | ~53 条 | 每条 = 一个完整会话(30-40 回合聚成),较粗粒度 |
198
+
199
+ MemPalace 的 96.6% 是 turn-level 的结果。Turn-level 更接近真实场景——你的每一次对话、每一条消息,都可能藏着答案。
200
+
201
+ Memex 在 turn-level 达到 91.8%(vs MemPalace 96.6%),差距约 5 个百分点。
202
+
203
+ ### 和 MemPalace 的差异
204
+
205
+ | 维度 | Memex | MemPalace |
206
+ |------|-------|----------|
207
+ | 向量数据库 | **LanceDB**(列式存储,高性能) | ChromaDB |
208
+ | 存储抽象 | **VectorStore 接口**,可切换后端 | 固定 ChromaDB |
209
+ | 记忆类型 | **六种分类**(constraint/user_model/...) | 纯 chunks |
210
+ | 接口 | **CLI + Agent Skill** 双接口 | API |
211
+
212
+ LanceDB 基于 Apache Arrow 列式存储,查询性能更强,存储更紧凑;BGE 中文 embedding 对中文对话的记忆召回更有优势。
213
+
214
+ ### 核心发现
215
+
216
+ 1. **原文存储有效**:不经过 LLM 提取的原文方案,在记忆召回任务上表现优异
217
+ 2. **Turn-level 优于 Session-level**:粒度越细,能找回的细节越多
218
+ 3. **存储抽象带来灵活性**:VectorStore 接口可以切换不同向量数据库后端
219
+
220
+ ---
221
+
222
+ ## 项目状态
223
+
224
+ **Phase 1: MVP** ✅
225
+
226
+ - [x] 核心类型定义
227
+ - [x] 存储抽象层(VectorStore 接口 + LanceDB 实现)
228
+ - [x] CLI 命令(init / save / search / get / list / delete / stats / recall / purge)
229
+ - [x] BGE embedding 集成
230
+ - [x] 基本测试
231
+ - [x] SKILL.md
232
+
233
+ **Phase 2**: 借鉴 OpenSwarm 的高级记忆机制 ✅
234
+
235
+ - [x] **语义蒸馏(Distillation)**:存入前过滤闲聊/情绪/依赖上下文的提问,只保留有价值的 insight
236
+ - [x] **混合检索(Hybrid Retrieval)**:final_score = 0.55×相似度 + 0.20×重要性 + 0.15×新鲜度 + 0.10×频率
237
+ - [x] **记忆修订(Revision)**:belief 被修订后重新计算 stability,支持不是 append-only
238
+ - [x] **衰减遗忘(Decay & Forgetting)**: decay ≥ 0.7 则归档,importance → 0.05
239
+ - [x] **矛盾检测(Contradiction Detection)**:基于关键词对检测语义冲突,importance 下降
240
+ - [x] **记忆合并(Consolidation)**:相似度 > 0.85 的记忆合并
241
+
242
+ **Phase 3**: 发布与分发
243
+
244
+ - [ ] `pip install memex` — 一键安装 CLI + Skill
245
+ - [ ] `pyproject.toml` — 打包配置
246
+ - [ ] Skill 自动安装到 `~/.agents/skills/memex/`(遵守 AgentSkills 规范,通用)
247
+
248
+ **Phase 4**: 评测数据
249
+
250
+ - [ ] 创建 `memex-benchmarks` 仓库
251
+ - [ ] distillation 数据集:should_store / should_reject 各 20-50 条
252
+ - [ ] contradiction 数据集:成对矛盾的记忆对 20-30 条
253
+ - [ ] 其他模块数据集:hybrid / revision / decay / consolidation
254
+
255
+ ---
256
+
257
+ ## License
258
+
259
+ MIT