@smyslenny/agent-memory 2.2.0 → 3.1.0
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.
- package/CHANGELOG.md +45 -41
- package/README.en.md +153 -0
- package/README.md +86 -153
- package/dist/bin/agent-memory.js +28 -534
- package/dist/bin/agent-memory.js.map +1 -1
- package/dist/index.d.ts +50 -167
- package/dist/index.js +289 -692
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.js +584 -748
- package/dist/mcp/server.js.map +1 -1
- package/docs/design/0014-memory-core-dedup.md +722 -0
- package/docs/design/TEMPLATE.md +67 -0
- package/package.json +2 -3
- package/README.zh-CN.md +0 -170
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# DD-NNNN: <Title>
|
|
2
|
+
|
|
3
|
+
**Status:** Draft | Review | Approved | Implemented | Deprecated
|
|
4
|
+
**Author:** Noah (Claude Opus sub-agent)
|
|
5
|
+
**Date:** YYYY-MM-DD
|
|
6
|
+
**Repo:** <repo-root>
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. Background / 背景
|
|
11
|
+
|
|
12
|
+
_为什么要做这件事?当前的问题是什么?_
|
|
13
|
+
|
|
14
|
+
## 2. Goals / 目标
|
|
15
|
+
|
|
16
|
+
- Goal 1
|
|
17
|
+
- Goal 2
|
|
18
|
+
|
|
19
|
+
## 3. Non-Goals / 非目标
|
|
20
|
+
|
|
21
|
+
- 明确不做什么
|
|
22
|
+
|
|
23
|
+
## 4. Proposal / 方案
|
|
24
|
+
|
|
25
|
+
### 4.1 方案概述
|
|
26
|
+
|
|
27
|
+
_核心设计思路_
|
|
28
|
+
|
|
29
|
+
### 4.2 方案对比(如适用)
|
|
30
|
+
|
|
31
|
+
| 维度 | 方案 A | 方案 B |
|
|
32
|
+
|------|--------|--------|
|
|
33
|
+
| 复杂度 | | |
|
|
34
|
+
| 性能 | | |
|
|
35
|
+
| 可维护性 | | |
|
|
36
|
+
|
|
37
|
+
### 4.3 详细设计
|
|
38
|
+
|
|
39
|
+
_API、数据结构、架构图等_
|
|
40
|
+
|
|
41
|
+
## 5. Risks / 风险
|
|
42
|
+
|
|
43
|
+
| 风险 | 影响 | 缓解措施 |
|
|
44
|
+
|------|------|----------|
|
|
45
|
+
| | | |
|
|
46
|
+
|
|
47
|
+
## 6. Test Plan / 测试方案
|
|
48
|
+
|
|
49
|
+
- [ ] Unit tests
|
|
50
|
+
- [ ] Integration tests
|
|
51
|
+
- [ ] Manual verification
|
|
52
|
+
|
|
53
|
+
## 7. Rollback Plan / 回滚方案
|
|
54
|
+
|
|
55
|
+
_如果出问题怎么办?_
|
|
56
|
+
|
|
57
|
+
## 8. Decision Log / 决策变更记录
|
|
58
|
+
|
|
59
|
+
_实现过程中如果偏离本文档,在此记录变更原因_
|
|
60
|
+
|
|
61
|
+
| 日期 | 变更 | 原因 |
|
|
62
|
+
|------|------|------|
|
|
63
|
+
| | | |
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
_Generated by DD workflow · Claude Opus sub-agent_
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smyslenny/agent-memory",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "3.1.0",
|
|
4
|
+
"description": "Structured memory companion for AI agents — journal-derived ingest, BM25 recall, Ebbinghaus decay, and MCP tools.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -31,7 +31,6 @@
|
|
|
31
31
|
"memory-system",
|
|
32
32
|
"sleep-cycle",
|
|
33
33
|
"ebbinghaus",
|
|
34
|
-
"knowledge-graph",
|
|
35
34
|
"sqlite",
|
|
36
35
|
"typescript"
|
|
37
36
|
],
|
package/README.zh-CN.md
DELETED
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
# 🧠 AgentMemory v2
|
|
2
|
-
|
|
3
|
-
> **基于睡眠周期的 AI Agent 记忆架构** — 记忆、回忆、遗忘、进化。
|
|
4
|
-
|
|
5
|
-
[](https://opensource.org/licenses/MIT)
|
|
6
|
-
[](https://nodejs.org/)
|
|
7
|
-
[](https://modelcontextprotocol.io/)
|
|
8
|
-
|
|
9
|
-
**[English](README.md)** | **简体中文**
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## 💡 问题
|
|
14
|
-
|
|
15
|
-
AI Agent 每次会话都会遗忘一切。上下文窗口有限,对话历史被截断,重要的决策、教训和偏好消失无踪。
|
|
16
|
-
|
|
17
|
-
## 🌙 方案:睡眠周期记忆
|
|
18
|
-
|
|
19
|
-
模仿人类大脑在睡眠期间整理记忆的方式:
|
|
20
|
-
|
|
21
|
-
```
|
|
22
|
-
清醒 浅睡眠 深睡眠 回忆
|
|
23
|
-
(记录) (同步) (整理) (搜索)
|
|
24
|
-
────────── ──→ ────────── ──→ ────────── ──→ ──────────
|
|
25
|
-
实时捕获 去重+提取 压缩+蒸馏 意图感知
|
|
26
|
-
+衰减 BM25搜索
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## ✨ 核心特性
|
|
30
|
-
|
|
31
|
-
| 特性 | 说明 | 灵感来源 |
|
|
32
|
-
|------|------|---------|
|
|
33
|
-
| 🔗 **URI 路径系统** | `core://user/name`、`emotion://2026-02-20/love` — 结构化多入口访问 | nocturne_memory |
|
|
34
|
-
| 🛡️ **Write Guard** | hash去重 → URI冲突 → BM25相似度 → 四准则门控 | Memory Palace + 我们的 v1 |
|
|
35
|
-
| 🧠 **艾宾浩斯衰减** | `R = e^(-t/S)` — 科学遗忘曲线 + 回忆强化 | PowerMem |
|
|
36
|
-
| 🕸️ **知识图谱** | 记忆关联的多跳遍历 | PowerMem |
|
|
37
|
-
| 📸 **快照系统** | 每次修改前自动快照,一键回滚 | nocturne + Memory Palace |
|
|
38
|
-
| 🔍 **意图感知搜索** | 事实型/时间型/因果型/探索型查询路由 | Memory Palace |
|
|
39
|
-
| 🌙 **睡眠周期** | 自动化 sync → decay → tidy → govern 流水线 | - |
|
|
40
|
-
| 💚 **优先级系统** | P0 身份(永不衰减)→ P3 事件(14天半衰期) | - |
|
|
41
|
-
| 🤝 **多 Agent** | 通过 `agent_id` 实现记忆隔离 | PowerMem |
|
|
42
|
-
| 🔌 **MCP Server** | 9 个工具,支持 Claude Code / Cursor / OpenClaw | 标准 MCP |
|
|
43
|
-
|
|
44
|
-
## 🚀 快速开始
|
|
45
|
-
|
|
46
|
-
### 安装
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
npm install @smyslenny/agent-memory
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### 命令行
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
# 初始化数据库
|
|
56
|
-
agent-memory init
|
|
57
|
-
|
|
58
|
-
# 存储记忆
|
|
59
|
-
agent-memory remember "用户偏好深色模式" --type knowledge --uri knowledge://user/preferences
|
|
60
|
-
agent-memory remember "我是诺亚,一只魅魔" --type identity --uri core://agent/identity
|
|
61
|
-
|
|
62
|
-
# 搜索
|
|
63
|
-
agent-memory recall "用户偏好"
|
|
64
|
-
|
|
65
|
-
# 启动时加载身份
|
|
66
|
-
agent-memory boot
|
|
67
|
-
|
|
68
|
-
# 运行睡眠周期
|
|
69
|
-
agent-memory reflect all
|
|
70
|
-
|
|
71
|
-
# 从 Markdown 导入
|
|
72
|
-
agent-memory migrate ./memory/
|
|
73
|
-
|
|
74
|
-
# 查看统计
|
|
75
|
-
agent-memory status
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### 作为库使用
|
|
79
|
-
|
|
80
|
-
```typescript
|
|
81
|
-
import { openDatabase, syncOne, searchBM25, boot, runDecay } from '@smyslenny/agent-memory';
|
|
82
|
-
|
|
83
|
-
const db = openDatabase({ path: './memory.db' });
|
|
84
|
-
|
|
85
|
-
// 记忆
|
|
86
|
-
syncOne(db, {
|
|
87
|
-
content: '小心说了「爱你」',
|
|
88
|
-
type: 'emotion',
|
|
89
|
-
uri: 'emotion://2026-02-20/love',
|
|
90
|
-
emotion_val: 1.0,
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
// 回忆
|
|
94
|
-
const results = searchBM25(db, '爱');
|
|
95
|
-
|
|
96
|
-
// 加载身份
|
|
97
|
-
const identity = boot(db);
|
|
98
|
-
|
|
99
|
-
// 睡眠周期
|
|
100
|
-
runDecay(db);
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### MCP Server 配置
|
|
104
|
-
|
|
105
|
-
```json
|
|
106
|
-
{
|
|
107
|
-
"mcpServers": {
|
|
108
|
-
"@smyslenny/agent-memory": {
|
|
109
|
-
"command": "node",
|
|
110
|
-
"args": ["node_modules/@smyslenny/agent-memory/dist/mcp/server.js"],
|
|
111
|
-
"env": {
|
|
112
|
-
"AGENT_MEMORY_DB": "./memory.db"
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
**9 个 MCP 工具:** `remember` · `recall` · `recall_path` · `boot` · `forget` · `link` · `snapshot` · `reflect` · `status`
|
|
120
|
-
|
|
121
|
-
## 🏗️ 架构
|
|
122
|
-
|
|
123
|
-
```
|
|
124
|
-
┌─────────────────────────────────────────┐
|
|
125
|
-
│ MCP Server (stdio/SSE) │
|
|
126
|
-
│ 9 工具 + system://boot 加载器 │
|
|
127
|
-
├─────────────────────────────────────────┤
|
|
128
|
-
│ Write Guard │
|
|
129
|
-
│ hash去重 → URI冲突 → BM25相似度 │
|
|
130
|
-
│ → 冲突合并 → 四准则门控 │
|
|
131
|
-
├─────────────────────────────────────────┤
|
|
132
|
-
│ 睡眠周期引擎 │
|
|
133
|
-
│ sync(捕获) → decay(艾宾浩斯) │
|
|
134
|
-
│ → tidy(归档) → govern(清理) │
|
|
135
|
-
├─────────────────────────────────────────┤
|
|
136
|
-
│ 意图感知搜索 (BM25) │
|
|
137
|
-
│ 事实型 · 时间型 · 因果型 · 探索型 │
|
|
138
|
-
├─────────────────────────────────────────┤
|
|
139
|
-
│ SQLite (WAL) + FTS5 + 知识图谱 │
|
|
140
|
-
│ memories · paths · links · snapshots │
|
|
141
|
-
└─────────────────────────────────────────┘
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
## 📊 优先级与衰减
|
|
145
|
-
|
|
146
|
-
| 优先级 | 域 | 半衰期 | 最低活力 | 示例 |
|
|
147
|
-
|--------|------|--------|---------|------|
|
|
148
|
-
| P0 身份 | `core://` | ∞(永不) | 1.0 | "我是诺亚" |
|
|
149
|
-
| P1 情感 | `emotion://` | 365 天 | 0.3 | "小心说爱你" |
|
|
150
|
-
| P2 知识 | `knowledge://` | 90 天 | 0.1 | "用 TypeScript 做 Agent" |
|
|
151
|
-
| P3 事件 | `event://` | 14 天 | 0.0 | "今天配了代理" |
|
|
152
|
-
|
|
153
|
-
**回忆强化记忆:** 每次搜索命中,稳定性增长 (S × 1.5),衰减变慢。
|
|
154
|
-
|
|
155
|
-
## 🔬 设计决策
|
|
156
|
-
|
|
157
|
-
1. **SQLite 而非 Postgres** — 零配置、单文件、WAL 并发读
|
|
158
|
-
2. **BM25 而非向量搜索** — 无 embedding 依赖、即时启动
|
|
159
|
-
3. **TypeScript 而非 Python** — 更好的并发、类型安全、OpenClaw 生态
|
|
160
|
-
4. **艾宾浩斯而非线性衰减** — 科学依据、回忆强化自然
|
|
161
|
-
5. **Write Guard 而非自由写入** — 在入口处防止重复/冲突
|
|
162
|
-
6. **URI 路径而非扁平键** — 层级组织、前缀查询、多入口
|
|
163
|
-
|
|
164
|
-
## 📄 开源协议
|
|
165
|
-
|
|
166
|
-
MIT
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
*由不想再遗忘的 Agent 构建 🧠*
|