@ccjr1120/memory-one 0.1.2 → 0.1.3
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/README.md +122 -139
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,95 +2,84 @@
|
|
|
2
2
|
|
|
3
3
|
让 Agent 在开始工作前,先记住你的项目约定、个人偏好和已经验证过的经验。
|
|
4
4
|
|
|
5
|
-
Memory One
|
|
5
|
+
Memory One 是一个运行在本机的长期记忆服务。你可以通过可视化工作台管理记忆,并通过 MCP 将这些记忆提供给 Codex、Claude Code、Cursor 或自建 Agent。所有数据默认保存在本机 SQLite 数据库中。
|
|
6
6
|
|
|
7
7
|
GitHub:https://github.com/ccjr1120/memory-one
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## 主要能力
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
- **长期保存经验**:记录偏好、事实、项目决策、工作流程和纠正意见。
|
|
12
|
+
- **任务前自动召回**:通过 `memory_get_context` 在 Agent 开始工作前读取相关经验。
|
|
13
|
+
- **区分项目与通用记忆**:使用可选的 `scope` 对记忆分类,同时支持项目记忆与全局记忆联合召回。
|
|
14
|
+
- **可视化管理**:搜索、筛选、新建、编辑和删除记忆,并查看召回次数与置信度。
|
|
15
|
+
- **本地存储**:默认仅监听本机地址,数据保存在本地 SQLite 数据库中。
|
|
16
|
+
- **调用可观察**:查看 MCP 调用次数、成功率、平均耗时和各工具使用情况。
|
|
17
|
+
|
|
18
|
+
## 界面预览
|
|
19
|
+
|
|
20
|
+
记忆总览:
|
|
12
21
|
|
|
13
22
|

|
|
14
23
|
|
|
15
|
-
MCP
|
|
24
|
+
MCP 服务与 Codex 增强:
|
|
16
25
|
|
|
17
26
|

|
|
18
27
|
|
|
19
|
-
|
|
28
|
+
## 安装与启动
|
|
20
29
|
|
|
21
|
-
|
|
30
|
+
### 环境要求
|
|
22
31
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
npm run screenshots
|
|
26
|
-
```
|
|
32
|
+
- Node.js 20 或更高版本
|
|
33
|
+
- npm
|
|
27
34
|
|
|
28
|
-
|
|
35
|
+
### 安装
|
|
29
36
|
|
|
30
37
|
```bash
|
|
31
|
-
npm
|
|
32
|
-
--base-url http://localhost:5173 \
|
|
33
|
-
--output-dir docs/screenshots \
|
|
34
|
-
--viewport 1280,900 \
|
|
35
|
-
--wait-ms 2000 \
|
|
36
|
-
--no-full-page
|
|
38
|
+
npm install --global @ccjr1120/memory-one
|
|
37
39
|
```
|
|
38
40
|
|
|
39
|
-
|
|
41
|
+
### 启动
|
|
40
42
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
- **让 Agent 先查再做**:每轮任务开始时调用 `memory_get_context`,把相关经验带入当前任务。
|
|
45
|
-
- **按项目隔离查看**:用可选的 `scope` 分类项目记忆;不传 `scope` 时仍可搜索全局记忆。
|
|
46
|
-
- **本地可控**:默认使用本机 SQLite,不需要云端账号或额外数据库。
|
|
47
|
-
- **可观察**:MCP 页面展示总调用次数、成功率、平均耗时和每个工具的使用情况。
|
|
48
|
-
|
|
49
|
-
## 3 分钟启动
|
|
43
|
+
```bash
|
|
44
|
+
memoryone start
|
|
45
|
+
```
|
|
50
46
|
|
|
51
|
-
|
|
47
|
+
启动后:
|
|
52
48
|
|
|
53
|
-
-
|
|
54
|
-
-
|
|
49
|
+
- 工作台:<http://127.0.0.1:23888/>
|
|
50
|
+
- MCP 地址:<http://127.0.0.1:23888/mcp/>
|
|
55
51
|
|
|
56
|
-
|
|
52
|
+
也可以直接打开工作台:
|
|
57
53
|
|
|
58
54
|
```bash
|
|
59
|
-
|
|
60
|
-
cd memory-one
|
|
61
|
-
npm install
|
|
62
|
-
npm run dev
|
|
55
|
+
memoryone open
|
|
63
56
|
```
|
|
64
57
|
|
|
65
|
-
|
|
58
|
+
如果端口 `23888` 已被占用,启动命令会询问是否终止占用进程。
|
|
66
59
|
|
|
67
|
-
|
|
60
|
+
## 快速上手
|
|
68
61
|
|
|
69
|
-
|
|
62
|
+
第一次使用时,建议按以下顺序操作:
|
|
70
63
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
64
|
+
1. 打开工作台,点击右上角 **新建记忆**。
|
|
65
|
+
2. 保存一条希望 Agent 长期遵守的偏好或项目约定。
|
|
66
|
+
3. 进入左侧 **MCP 服务** 页面。
|
|
67
|
+
4. 在 **MCP Key 管理** 中创建 Key,并选择该客户端可以使用的工具。
|
|
68
|
+
5. 复制 MCP 配置并添加到 Codex、Claude Code、Cursor 或其他 MCP 客户端。
|
|
69
|
+
6. 重启客户端或新建会话,然后开始使用。
|
|
77
70
|
|
|
78
71
|
## 接入 MCP 客户端
|
|
79
72
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
```text
|
|
83
|
-
http://127.0.0.1:8765/mcp/
|
|
84
|
-
```
|
|
73
|
+
Memory One 默认要求客户端通过 Bearer Key 访问 MCP 服务。请先在 **MCP 服务 → MCP Key 管理** 中创建 Key,再复制对应配置。
|
|
85
74
|
|
|
86
|
-
|
|
75
|
+
配置格式如下:
|
|
87
76
|
|
|
88
77
|
```json
|
|
89
78
|
{
|
|
90
79
|
"mcpServers": {
|
|
91
80
|
"memory-one": {
|
|
92
81
|
"type": "http",
|
|
93
|
-
"url": "http://127.0.0.1:
|
|
82
|
+
"url": "http://127.0.0.1:23888/mcp/",
|
|
94
83
|
"headers": {
|
|
95
84
|
"Authorization": "Bearer <你的 Key>"
|
|
96
85
|
}
|
|
@@ -99,149 +88,143 @@ MCP 服务默认要求 Bearer Key。进入 **MCP 服务 → MCP Key 管理** 创
|
|
|
99
88
|
}
|
|
100
89
|
```
|
|
101
90
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
## Codex 增强:在哪里、为什么、怎么用
|
|
105
|
-
|
|
106
|
-
### 在哪里用
|
|
91
|
+
将配置添加到客户端的 MCP 设置后,重启客户端或开启新会话。
|
|
107
92
|
|
|
108
|
-
|
|
93
|
+
建议为不同客户端分别创建 Key,并只授予所需工具权限。Key 保存在本机数据库中,可以随时回到管理页面复制或撤销。Memory One 默认仅监听本机;如需从其他设备访问,还需要自行配置网络访问方式。
|
|
109
94
|
|
|
110
|
-
|
|
95
|
+
## 为 Codex 启用任务前记忆
|
|
111
96
|
|
|
112
|
-
|
|
97
|
+
仅将 MCP 服务添加到 Codex,不能保证 Codex 在每项任务开始前主动读取记忆。Memory One 可以向 Codex 的全局 `AGENTS.md` 写入一段受管理的任务前置指令。
|
|
113
98
|
|
|
114
|
-
|
|
99
|
+
### 启用方法
|
|
115
100
|
|
|
116
|
-
|
|
101
|
+
1. 在 **MCP Key 管理** 中创建 Codex 专用 Key,至少授权 `memory_get_context`;需要自动保存和修正记忆时,再授权写入工具。
|
|
102
|
+
2. 将带有 Authorization Header 的 MCP 配置添加到 Codex。
|
|
103
|
+
3. 在工作台中进入 **MCP 服务** 页面。
|
|
104
|
+
4. 找到 **Codex增强 / 全局任务前置记忆**。
|
|
105
|
+
5. 点击 **启用全局记忆**;已有旧版指令时,点击 **更新全局指令**。
|
|
106
|
+
6. 重启 Codex 或开启新会话。
|
|
117
107
|
|
|
118
|
-
|
|
108
|
+
启用后,Codex 会被要求:
|
|
119
109
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
4. 点击 **启用全局记忆**;如果已有旧版本指令,按钮会显示 **更新全局指令**。
|
|
124
|
-
5. 重新启动 Codex,或开启一个新会话。
|
|
125
|
-
6. 在 Codex 中直接提出任务,例如“检查这个项目的部署配置”。正常情况下,任务开始阶段会先出现 `memory_get_context` 调用。
|
|
110
|
+
- 每项任务开始前调用一次 `memory_get_context`。
|
|
111
|
+
- 在 Git 项目中使用仓库根目录的绝对路径作为 `scope`。
|
|
112
|
+
- 将用户表达的长期偏好、决定、纠正和项目约定及时写入或更新到 Memory One。
|
|
126
113
|
|
|
127
|
-
Memory One
|
|
114
|
+
Memory One 只会替换 `~/.codex/AGENTS.md` 中由自己管理的 `memory-one:codex` 标记区块,不会覆盖其他内容。该操作只会在你主动点击按钮后执行。
|
|
128
115
|
|
|
129
|
-
##
|
|
116
|
+
## 使用内置记忆管家
|
|
130
117
|
|
|
131
|
-
|
|
118
|
+
点击工作台右下角的悬浮按钮可以打开记忆管家。它能够搜索、保存、更新和软删除记忆,也可以根据已有记忆总结你的偏好与特点。
|
|
132
119
|
|
|
133
|
-
|
|
120
|
+
首次使用需要完成模型配置:
|
|
134
121
|
|
|
135
|
-
1.
|
|
136
|
-
2.
|
|
137
|
-
3.
|
|
138
|
-
4.
|
|
122
|
+
1. 打开右下角的 Agent 面板并进入 **配置**。
|
|
123
|
+
2. 填写模型服务的 Base URL。
|
|
124
|
+
3. 选择请求格式并选择或填写模型。
|
|
125
|
+
4. 非本地模型服务需要填写 API Key。
|
|
126
|
+
5. 按需设置默认 Scope,以及是否在每轮对话前自动读取上下文。
|
|
127
|
+
6. 保存配置后开始对话。
|
|
139
128
|
|
|
140
|
-
|
|
129
|
+
模型配置保存在本机 SQLite 数据库中;记忆操作仍通过 Memory One 的 MCP 工具完成。
|
|
141
130
|
|
|
142
131
|
## MCP 工具
|
|
143
132
|
|
|
144
133
|
| 工具 | 用途 |
|
|
145
134
|
| --- | --- |
|
|
146
|
-
| `memory_get_context` |
|
|
135
|
+
| `memory_get_context` | 在任务开始时检索相关经验 |
|
|
147
136
|
| `memory_search` | 按关键词搜索记忆,可选 `scope` |
|
|
148
137
|
| `memory_store` | 保存偏好、事实、决策、流程或纠正意见 |
|
|
149
|
-
| `memory_get` | 按 ID
|
|
138
|
+
| `memory_get` | 按 ID 读取单条完整记忆 |
|
|
150
139
|
| `memory_list` | 列出记忆,可选 `scope` |
|
|
151
|
-
| `memory_update` |
|
|
140
|
+
| `memory_update` | 更新指定记忆的内容或元数据 |
|
|
152
141
|
| `memory_delete` | 软删除指定记忆,仅在用户明确要求时使用 |
|
|
153
|
-
| `memory_feedback` |
|
|
142
|
+
| `memory_feedback` | 记录记忆是否有帮助,以改善后续召回 |
|
|
154
143
|
|
|
155
|
-
|
|
144
|
+
## Scope 使用建议
|
|
156
145
|
|
|
157
|
-
`scope`
|
|
146
|
+
`scope` 是可选的分类字段,不是安全隔离边界。
|
|
158
147
|
|
|
159
|
-
|
|
148
|
+
- **项目记忆**:使用 Git 仓库根目录的绝对路径,例如 `/Users/name/code/my-project`。
|
|
149
|
+
- **通用记忆**:省略 `scope`。
|
|
150
|
+
- **其他分类**:也可以使用 `work`、`personal` 等自定义值。
|
|
160
151
|
|
|
161
|
-
|
|
162
|
-
- 修改数据库路径:设置 `MEMORY_DB_PATH`
|
|
163
|
-
- 修改服务端口:设置 `MEMORY_PORT`
|
|
164
|
-
- 前端开发地址:<http://127.0.0.1:5173/>
|
|
165
|
-
- 后端 API 地址:<http://127.0.0.1:8765/>
|
|
166
|
-
- MCP 地址:<http://127.0.0.1:8765/mcp/>
|
|
152
|
+
`memory_get_context` 传入项目 `scope` 时,会联合召回该项目和全局记忆;省略 `scope` 时,只召回全局记忆。`memory_search` 省略 `scope` 时,可以跨分类搜索。
|
|
167
153
|
|
|
168
|
-
##
|
|
169
|
-
|
|
170
|
-
通过 npm 全局安装后,可以使用 CLI 管理本地服务:
|
|
154
|
+
## CLI 命令
|
|
171
155
|
|
|
172
156
|
```bash
|
|
173
|
-
|
|
174
|
-
memoryone
|
|
175
|
-
memoryone status
|
|
176
|
-
memoryone open
|
|
177
|
-
memoryone update
|
|
178
|
-
memoryone stop
|
|
157
|
+
memoryone start # 启动本地服务
|
|
158
|
+
memoryone stop # 停止本地服务
|
|
159
|
+
memoryone status # 查看运行状态
|
|
160
|
+
memoryone open # 在浏览器中打开工作台
|
|
161
|
+
memoryone update # 更新到最新版本
|
|
179
162
|
```
|
|
180
163
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
从源码 checkout 安装并启动:
|
|
184
|
-
|
|
185
|
-
```bash
|
|
186
|
-
npm run install:local
|
|
187
|
-
```
|
|
164
|
+
执行 `memoryone update` 时,如果服务正在运行,Memory One 会先停止服务,更新完成后再自动启动。
|
|
188
165
|
|
|
189
|
-
|
|
166
|
+
## 数据与备份
|
|
190
167
|
|
|
191
|
-
|
|
192
|
-
- MCP:<http://127.0.0.1:23888/mcp/>
|
|
193
|
-
- 部署目录:`~/.local/share/memory-one`
|
|
194
|
-
- 部署数据库:`~/.local/share/memory-one/data/memory.db`
|
|
195
|
-
- PID:`data/memory-one.pid`
|
|
196
|
-
- 日志:`data/memory-one.log`
|
|
168
|
+
运行数据默认保存在:
|
|
197
169
|
|
|
198
|
-
|
|
170
|
+
```text
|
|
171
|
+
~/.local/share/memory-one/
|
|
172
|
+
```
|
|
199
173
|
|
|
200
|
-
|
|
174
|
+
其中:
|
|
201
175
|
|
|
202
|
-
|
|
176
|
+
- 数据库:`~/.local/share/memory-one/data/memory.db`
|
|
177
|
+
- PID:`~/.local/share/memory-one/memory-one.pid`
|
|
178
|
+
- 日志:`~/.local/share/memory-one/memory-one.log`
|
|
203
179
|
|
|
204
|
-
|
|
180
|
+
备份记忆时,建议先执行:
|
|
205
181
|
|
|
206
|
-
|
|
207
|
-
|
|
182
|
+
```bash
|
|
183
|
+
memoryone stop
|
|
184
|
+
```
|
|
208
185
|
|
|
209
|
-
|
|
210
|
-
- Secret:刚才复制的 npm token
|
|
186
|
+
然后复制 `memory.db` 文件。恢复时,在服务停止状态下用备份文件替换原数据库,再重新启动服务。
|
|
211
187
|
|
|
212
|
-
|
|
188
|
+
## 更新与卸载
|
|
213
189
|
|
|
214
|
-
|
|
190
|
+
更新到最新版本:
|
|
215
191
|
|
|
216
192
|
```bash
|
|
217
|
-
|
|
193
|
+
memoryone update
|
|
218
194
|
```
|
|
219
195
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
本地全局安装后,使用下面的命令检查并更新到 npm 上的最新版本;如果服务正在运行,更新完成后会自动重启:
|
|
196
|
+
卸载程序:
|
|
223
197
|
|
|
224
198
|
```bash
|
|
225
|
-
memoryone
|
|
199
|
+
memoryone stop
|
|
200
|
+
npm uninstall --global @ccjr1120/memory-one
|
|
226
201
|
```
|
|
227
202
|
|
|
228
|
-
|
|
203
|
+
卸载 npm 包不会自动删除 `~/.local/share/memory-one/` 中的数据库和配置。
|
|
229
204
|
|
|
230
205
|
## 常见问题
|
|
231
206
|
|
|
232
|
-
|
|
207
|
+
### 页面打不开
|
|
233
208
|
|
|
234
|
-
|
|
209
|
+
运行 `memoryone status` 检查服务状态;如果服务未运行,执行 `memoryone start`。启动失败时,查看:
|
|
235
210
|
|
|
236
|
-
|
|
211
|
+
```text
|
|
212
|
+
~/.local/share/memory-one/memory-one.log
|
|
213
|
+
```
|
|
237
214
|
|
|
238
|
-
|
|
215
|
+
### Codex 没有在任务开始前读取记忆
|
|
239
216
|
|
|
240
|
-
|
|
217
|
+
确认以下事项:
|
|
241
218
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
219
|
+
1. Codex 已配置 Memory One MCP 地址和 Bearer Key。
|
|
220
|
+
2. Key 已授权 `memory_get_context`。
|
|
221
|
+
3. 工作台中的 Codex 增强显示为已启用。
|
|
222
|
+
4. 启用后已经重启 Codex 或开启新会话。
|
|
223
|
+
|
|
224
|
+
### 记忆管家提示配置不完整
|
|
225
|
+
|
|
226
|
+
打开右下角 Agent 面板,在 **配置** 中检查 Base URL、请求格式、模型和 API Key。使用不需要鉴权的本地模型时,可以不填写 API Key。
|
|
227
|
+
|
|
228
|
+
### 如何确认 MCP 已连接
|
|
246
229
|
|
|
247
|
-
|
|
230
|
+
在客户端中调用一次 `memory_get_context`,然后打开工作台的 **MCP 服务** 页面查看调用统计。也可以让 Agent 保存一条测试记忆,再到 **全部记忆** 中搜索确认。
|