@yottameta/yotta-memory 0.8.5 → 0.8.7
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 +12 -2
- package/README.md +51 -0
- package/README.zh-CN.md +51 -0
- package/SKILL.md +12 -2
- package/USER_GUIDE.md +1 -1
- package/bin/yotta-memory.js +2 -2
- package/package.json +3 -2
- package/references/faq.md +33 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,18 @@
|
|
|
1
|
+
## v0.8.7 (2026-09-01)
|
|
2
|
+
|
|
3
|
+
评测反馈优化(文档 + 错误提示,功能不变)。
|
|
4
|
+
|
|
5
|
+
- 新增 `references/faq.md`:10 条常见问题 / 避坑(类型选错、私密区加密、多智能体权限、记忆找不到、忘记主口令、局域网连接、MCP 加载、记忆库位置、跨会话恢复、备份迁移)。
|
|
6
|
+
- 错误提示友好化:顶层错误附「修复建议」人话(检查 memory_home、主口令与恢复钥匙等)。
|
|
7
|
+
- README 中英:新增「命令输出样例」(init / remember / recall / context 屏幕输出示意)+「常见问题 FAQ 速查」。
|
|
8
|
+
- SKILL.md:新增「常见问题 FAQ(速查)」小节,指向 references/faq.md。
|
|
9
|
+
- 版本四件对齐 0.8.7(package.json / SKILL.md / CHANGELOG / 引擎 VERSION)。
|
|
10
|
+
|
|
1
11
|
# 更新日志
|
|
2
12
|
|
|
3
13
|
## v0.8.5 (2026-08-29)
|
|
4
14
|
|
|
5
|
-
|
|
15
|
+
安全修复(安全扫描发现高危,修复后三源同步升版):
|
|
6
16
|
|
|
7
17
|
- **MCP 命令执行入口封死**:MCP `distill` 不再接受 `--model`(`callTool` 在工具边界直接拒绝),远端智能体无法再借 MCP 在引擎主机执行任意命令。
|
|
8
18
|
- **MCP 任意路径读写封死**:MCP `export` / `import` 的 `out` / `src` 必须落在记忆库根内(新增 `resolveWithinRoot` 校验,防 `..` 穿越),库外路径直接拒绝,与「远程只能读写记忆」承诺对齐。
|
|
@@ -19,7 +29,7 @@
|
|
|
19
29
|
|
|
20
30
|
## v0.8.3 (2026-08-28)
|
|
21
31
|
|
|
22
|
-
中英双语 README
|
|
32
|
+
中英双语 README 对齐(确定「英文门面 + 中文全档」):
|
|
23
33
|
|
|
24
34
|
- **README.md 改为英文**:作为 GitHub / npm / ClawHub 首页的英文门面(翻译 + 精简,覆盖定位 / 核心价值 / 四类型 / 权限隔离 / 身份 / 语义检索 / 生命周期 / 对比 / 安装(CLI+技能双装)/ 升级 / CLI 用法 / 局域网共享 / 开发校验全流程)。
|
|
25
35
|
- **新增 README.zh-CN.md**:原中文完整主文档整体平移,顶部加语言切换链接。
|
package/README.md
CHANGED
|
@@ -100,6 +100,21 @@ Each agent has a globally unique agent ID: it is the ownership key for private m
|
|
|
100
100
|
- `export` / `import`: export the whole store to JSON / import from JSON; an intermediate format for migration and backup.
|
|
101
101
|
- git: the whole store can be version-controlled — rollback / audit / team sync.
|
|
102
102
|
|
|
103
|
+
## FAQ (quick reference)
|
|
104
|
+
|
|
105
|
+
| Question | Answer (see references/faq.md) |
|
|
106
|
+
|---|---|
|
|
107
|
+
| Wrong memory type? | Hint only; forget and rewrite; --no-hint to disable |
|
|
108
|
+
| Private encryption? | init encrypts by default (master password + recovery key); migrate to encrypt a plaintext store |
|
|
109
|
+
| Multi-agent isolation? | FACT public; PREF/BOUND/COMMIT per-owner, grant via key authorize / view |
|
|
110
|
+
| Memory not found? | config get -> reindex -> recall/search |
|
|
111
|
+
| Lost master password? | reset-password with recovery key |
|
|
112
|
+
| LAN connect? | lan enable + token new; client url+token |
|
|
113
|
+
| MCP not loaded? | Check mcpServers + restart; use CLI directly |
|
|
114
|
+
| Where is the store? | config get; project-level .yottamemory |
|
|
115
|
+
| Cross-session resume? | Run context + recall at session start |
|
|
116
|
+
| Backup / migrate? | export / import |
|
|
117
|
+
|
|
103
118
|
## Comparison with other approaches
|
|
104
119
|
|
|
105
120
|
> Compared by solution type, not product names. Criteria: data sovereignty, deployment cost, permission boundaries, auditability, cross-agent ability.
|
|
@@ -151,6 +166,42 @@ bash install.sh --list # list agents -> default directories
|
|
|
151
166
|
```
|
|
152
167
|
|
|
153
168
|
> Method 1 uses the npm registry (npmmirror / npmjs) and does not depend on GitHub; Methods 2/3 use GitHub and may fail without a proxy in China.
|
|
169
|
+
## Example outputs
|
|
170
|
+
|
|
171
|
+
> Illustrative (actual output may vary by version) so you know what to expect on screen.
|
|
172
|
+
|
|
173
|
+
**init**:
|
|
174
|
+
|
|
175
|
+
```text
|
|
176
|
+
Memory store initialized: D:/.yottamemory
|
|
177
|
+
Master password set; recovery key: xxxx-xxxx-xxxx-xxxx (keep it safe)
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**remember** (with verify):
|
|
181
|
+
|
|
182
|
+
```text
|
|
183
|
+
Recorded: D:/.yottamemory/facts/2026-09-01-0001.md
|
|
184
|
+
[verify] read-back OK: facts/2026-09-01-0001.md
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**recall**:
|
|
188
|
+
|
|
189
|
+
```text
|
|
190
|
+
3 memories (top 3):
|
|
191
|
+
[FACT] subject: statement... (D:/.yottamemory/facts/xxx.md)
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**context**:
|
|
195
|
+
|
|
196
|
+
```text
|
|
197
|
+
# Start-of-work context (yotta-memory context)
|
|
198
|
+
## 1. Identity
|
|
199
|
+
## 2. User profile summary
|
|
200
|
+
## 3. Recent memories (top 10 by activity)
|
|
201
|
+
## 4. Boundaries (BOUND)
|
|
202
|
+
## 5. Commitments / anchors (COMMIT)
|
|
203
|
+
```
|
|
204
|
+
|
|
154
205
|
## Upgrade
|
|
155
206
|
|
|
156
207
|
Two upgrade paths match the two install paths:
|
package/README.zh-CN.md
CHANGED
|
@@ -139,6 +139,21 @@
|
|
|
139
139
|
- **安全边界**:管理动作(init / config / token / lan / serve)不进 MCP,token 不远程暴露;远程智能体只能读写记忆,且路径限记忆库内(export/import 的 out/src 必须落在库内)、distill 不支持 `--model`(仅本地 CLI),不能改配置、不能管 token。
|
|
140
140
|
- 完整操作步骤见上文「局域网多机共享」章节与 [USER_GUIDE.md](USER_GUIDE.md)。
|
|
141
141
|
|
|
142
|
+
## 常见问题 FAQ(速查)
|
|
143
|
+
|
|
144
|
+
| 问题 | 答案(详见 references/faq.md) |
|
|
145
|
+
|---|---|
|
|
146
|
+
| 类型选错? | 只提示不阻止;forget 后重写;--no-hint 关提示 |
|
|
147
|
+
| 私密区加密? | init 默认加密(主口令+恢复钥匙);明文库 migrate 升级 |
|
|
148
|
+
| 多智能体权限? | FACT 公共;PREF/BOUND/COMMIT 按 owner 隔离,需 key authorize / view 授权 |
|
|
149
|
+
| 记忆找不到? | config get 查位置 → reindex 重建索引 → recall/search |
|
|
150
|
+
| 忘记主口令? | 用恢复钥匙 reset-password(无私密区锁定的预期行为) |
|
|
151
|
+
| 局域网怎么连? | 引擎 lan enable + token new;客户端配 url+token |
|
|
152
|
+
| MCP 没加载? | 检查 mcpServers + 重启会话;本机直连用 CLI |
|
|
153
|
+
| 记忆库在哪? | config get;项目级 .yottamemory |
|
|
154
|
+
| 跨会话恢复? | 开工跑 context + recall |
|
|
155
|
+
| 备份迁移? | export / import |
|
|
156
|
+
|
|
142
157
|
## 与其他方案对比
|
|
143
158
|
|
|
144
159
|
> 以下按方案类型对比,不涉及具体产品名称。判断标准:数据主权、部署成本、权限边界、可审计性、跨智能体能力。
|
|
@@ -190,6 +205,42 @@ bash install.sh --list # 列出智能体 -> 默认目录
|
|
|
190
205
|
```
|
|
191
206
|
|
|
192
207
|
> 方式一走 npm 源(npmmirror / npmjs),不依赖 GitHub;方式二 / 三走 GitHub,国内无代理可能失败。
|
|
208
|
+
## 命令输出样例
|
|
209
|
+
|
|
210
|
+
> 以下为示意输出(以实际版本为准),让你知道执行命令后屏幕上会出现什么。
|
|
211
|
+
|
|
212
|
+
**init(初始化记忆库)**:
|
|
213
|
+
|
|
214
|
+
```text
|
|
215
|
+
初始化记忆库成功:D:\.yottamemory
|
|
216
|
+
主口令已设置;恢复钥匙:xxxx-xxxx-xxxx-xxxx(请妥善保存)
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
**remember(写入记忆,带 verify 回读)**:
|
|
220
|
+
|
|
221
|
+
```text
|
|
222
|
+
已记录: D:\.yottamemory\facts\2026-09-01-0001.md
|
|
223
|
+
[verify] 已写回读 OK: facts/2026-09-01-0001.md
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
**recall(检索)**:
|
|
227
|
+
|
|
228
|
+
```text
|
|
229
|
+
共 3 条记忆(前 3 条):
|
|
230
|
+
[FACT] 项目名: 描述……(D:\.yottamemory\facts\xxx.md)
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
**context(开工上下文包)**:
|
|
234
|
+
|
|
235
|
+
```text
|
|
236
|
+
# 开工上下文包(yotta-memory context)
|
|
237
|
+
## 1. 身份
|
|
238
|
+
## 2. 用户画像摘要
|
|
239
|
+
## 3. 近期记忆(按活跃度前 10 条)
|
|
240
|
+
## 4. 边界提醒(BOUND)
|
|
241
|
+
## 5. 承诺 / 锚点(COMMIT)
|
|
242
|
+
```
|
|
243
|
+
|
|
193
244
|
## 升级
|
|
194
245
|
|
|
195
246
|
两种升级方式对应两种安装方式:
|
package/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: yotta-memory
|
|
3
3
|
description: "元忆 —— 有权限边界的文件式智能体记忆。文件式、零依赖、可 diff/回滚:让任何 AI 智能体活过会话,开工 recall 恢复上下文、重要信息 remember 落盘、收工归档。类型体系 FACT(公共共享)/ PREF / BOUND / COMMIT(私密隔离)。触发:记住、别忘了、记一笔、记忆、remember、recall、跨会话、上次说到、续测、交接、归档、记忆盘、共享记忆、局域网记忆、画像、开工上下文、记忆守则、profile、context、越用越懂、语义检索、反馈、维护、蒸馏、feedback、maintain、distill、explain、自我学习、自我进化、自我提升、查看平台分页、recall 候选预过滤"
|
|
4
|
-
version: 0.8.
|
|
4
|
+
version: 0.8.7
|
|
5
5
|
license: MIT
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -73,7 +73,7 @@ license: MIT
|
|
|
73
73
|
- 三角建模:情绪(措辞 / 标点 / 长度)→ 认知(归因 / 信念 / 控制感)→ 行为(作息 / 应对 / 执行);三者冲突时优先行为与认知。
|
|
74
74
|
- 共情至少到第 3 阶段:识别 → 理解 → 回应 → 验证。
|
|
75
75
|
- 诚实声明:AI 是模式匹配非真感受,不伪装、不编造伪情感记忆。
|
|
76
|
-
-
|
|
76
|
+
- 危机识别:不评判、持续在场、温和引导现实支持;不擅自越界联系外部。
|
|
77
77
|
- 对齐:回应时让积累的理解自然影响语气与措辞(让用户感到「被记得、被懂」),而非机械引用记忆条目。
|
|
78
78
|
- 情感外包双刃剑:做增益真实生活的陪伴,不替代真实关系。
|
|
79
79
|
|
|
@@ -323,6 +323,16 @@ license: MIT
|
|
|
323
323
|
### 4.10 复用
|
|
324
324
|
- 成功后优先复用现有连接;失败(token 吊销等)再回 4.3。
|
|
325
325
|
|
|
326
|
+
## 常见问题 FAQ(速查)
|
|
327
|
+
|
|
328
|
+
常见问题与避坑见 `references/faq.md`:
|
|
329
|
+
- 类型选错 → 只提示不阻止;`forget` 后按正确类型重写;
|
|
330
|
+
- 私密区加密 → `init` 默认加密(主口令+恢复钥匙),明文库 `migrate` 升级,`view` 平台口令解锁;
|
|
331
|
+
- 多智能体权限 → FACT 公共、私密按 owner 隔离,需 `key authorize` / `view` 授权;
|
|
332
|
+
- 记忆找不到 → `config get` 查位置 → `reindex` → `recall` / `search`;
|
|
333
|
+
- 忘记主口令 → 用恢复钥匙 `reset-password`;
|
|
334
|
+
- 局域网 → 引擎 `lan enable` + `token new`,客户端配 url+token。
|
|
335
|
+
|
|
326
336
|
## 渐进披露
|
|
327
337
|
|
|
328
338
|
- 协议细节、目录结构与类型规则见 `references/protocol.md`,需要时读取,不要每次全读。
|
package/USER_GUIDE.md
CHANGED
|
@@ -77,7 +77,7 @@ yotta-memory config get # 查看记忆库位置
|
|
|
77
77
|
```bash
|
|
78
78
|
yotta-memory profile # 生成用户画像(写 private/<owner>/profile.md)
|
|
79
79
|
yotta-memory context --limit 10 --budget 1800 # 生成开工上下文包(身份+铁律+画像+近期记忆+边界+承诺,预算控 token)
|
|
80
|
-
yotta-memory iam <id> --name 元忆 --user
|
|
80
|
+
yotta-memory iam <id> --name 元忆 --user 用户 --relationship 伙伴 # 自我档案扩展显示名/用户/关系
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
- `profile` 引擎零推断:只按类型 / 主题 / 标签归组呈现原文,画像结论由 AI 内部形成,不当面贴标签。
|
package/bin/yotta-memory.js
CHANGED
|
@@ -22,7 +22,7 @@ const crypto = require('crypto');
|
|
|
22
22
|
const http = require('http');
|
|
23
23
|
const child_process = require('child_process');
|
|
24
24
|
|
|
25
|
-
const VERSION = '0.8.
|
|
25
|
+
const VERSION = '0.8.7';
|
|
26
26
|
const TYPES = ['FACT', 'PREF', 'BOUND', 'COMMIT'];
|
|
27
27
|
const TYPE_DIRS = { FACT: 'facts', PREF: 'prefs', BOUND: 'bounds', COMMIT: 'commits' };
|
|
28
28
|
const PUBLIC_DIR = 'facts';
|
|
@@ -3464,7 +3464,7 @@ async function main() {
|
|
|
3464
3464
|
}
|
|
3465
3465
|
}
|
|
3466
3466
|
|
|
3467
|
-
if (require.main === module) { main().catch(function (e) { console.error('错误: ' + (e && e.message ? e.message : String(e))); process.exit(2); }); }
|
|
3467
|
+
if (require.main === module) { main().catch(function (e) { console.error('错误: ' + (e && e.message ? e.message : String(e))); console.error('修复建议: 若与记忆库/密钥/权限有关,请检查 memory_home 路径、主口令与恢复钥匙,或运行 yotta-memory config get 确认位置;仍无法解决请把上面的错误信息反馈给开发者。'); process.exit(2); }); }
|
|
3468
3468
|
module.exports = {
|
|
3469
3469
|
VERSION: VERSION,
|
|
3470
3470
|
userRoot: userRoot,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yottameta/yotta-memory",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.7",
|
|
4
4
|
"description": "Yuanyi (元忆) — boundary-aware, file-based memory for AI agents. File-based, zero-dependency, diff/rollback-able; FACT/PREF/BOUND/COMMIT four types (public shared / private isolated), user-level + project-level storage; v0.8 semantic search + usage feedback loop + rule-layer self-organization + psychological-log distillation (self-learning/self-evolving/self-improving).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
"bin",
|
|
24
24
|
"README.zh-CN.md",
|
|
25
25
|
"NOTICE",
|
|
26
|
-
"CHANGELOG.md"
|
|
26
|
+
"CHANGELOG.md",
|
|
27
|
+
"!scripts/test_*.py"
|
|
27
28
|
],
|
|
28
29
|
"repository": {
|
|
29
30
|
"type": "git",
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 元忆 FAQ / 避坑指南
|
|
2
|
+
|
|
3
|
+
> 常见问题速查:记忆找不到、权限/加密困惑、连不上时先看这里。
|
|
4
|
+
|
|
5
|
+
## 1. 记忆类型选错了怎么办?
|
|
6
|
+
类型只在写入时提示、不阻止(FACT=公共 / PREF、BOUND、COMMIT=私密)。写错不影响已写入内容;想改类型可 `forget` 后按正确类型重写。不需要提示可用 `--no-hint`。
|
|
7
|
+
|
|
8
|
+
## 2. 私密区加密怎么用?
|
|
9
|
+
`init` 默认初始化加密库(需主口令 + 恢复钥匙,请妥善保存);明文库可用 `migrate` 升级为加密。私密区文件为 `.md.enc`,可 git 版本化。查看/授权用 `yotta-memory view`(口令解锁,浏览/授权/吊销 AI)。
|
|
10
|
+
|
|
11
|
+
## 3. 多智能体权限怎么隔离?
|
|
12
|
+
公共 FACT 所有智能体可读;PREF / BOUND / COMMIT 按 owner 物理隔离,其他智能体需显式授权(`key authorize <id>` 或 `view` 平台授权)。不授权读不到,也不会被别的智能体读到。
|
|
13
|
+
|
|
14
|
+
## 4. 记忆找不到了?
|
|
15
|
+
先 `config get` 确认 `memory_home` 指向的库;再 `reindex` 重建索引(升级后索引版本变化会自动重建);最后 `recall <关键词>` / `search <词>` 语义检索。跨项目记忆在项目级 `.yottamemory`。
|
|
16
|
+
|
|
17
|
+
## 5. 忘记主口令了?
|
|
18
|
+
用初始化时保存的**恢复钥匙**:`yotta-memory reset-password`。没有恢复钥匙则私密区无法解锁(这是加密的预期行为),公共 FACT 不受影响。
|
|
19
|
+
|
|
20
|
+
## 6. 局域网(便携记忆盘)怎么连?
|
|
21
|
+
引擎主机 `lan enable` 注册开机自启(Windows 计划任务 / Linux systemd)→ `token new --agent <id>` 生成 token;客户端配 `url: http://<主机IP>:8787/mcp` + `Authorization: Bearer <token>` + `X-Agent-Id: <id>`。`lan status` 查状态。
|
|
22
|
+
|
|
23
|
+
## 7. MCP 工具没加载?
|
|
24
|
+
检查客户端 `mcpServers` 已配置 yotta-memory(url + token);改配置后重启/重载会话。本机直连可不配 MCP,直接用 CLI。
|
|
25
|
+
|
|
26
|
+
## 8. 记忆库在哪个目录?
|
|
27
|
+
`yotta-memory config get` 查看;`config set memory_home <目录>` 改位置。项目级记忆用 `init --project`(存 `.yottamemory/` 随项目共享)。
|
|
28
|
+
|
|
29
|
+
## 9. 跨会话恢复上下文?
|
|
30
|
+
开工运行 `yotta-memory context`(身份 + 画像 + 近期记忆 + 边界 + 承诺),需要细节再 `recall <关键词>`。
|
|
31
|
+
|
|
32
|
+
## 10. 备份与迁移?
|
|
33
|
+
`export --out 文件.json` 导出全部记忆;`import <文件.json>` 恢复。公共 FACT 是明文文件可直接 git 备份;私密区用 export(需解锁)。
|