@yottameta/yotta-memory 0.6.4 → 0.8.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/README.md CHANGED
@@ -7,7 +7,8 @@
7
7
  <p align="center">元忆 —— 有权限边界的文件式智能体记忆:让任何 AI 智能体活过会话,而不是只活在单次对话里。</p>
8
8
  <p align="center">开工 <code>recall</code> 恢复上下文、重要信息 <code>remember</code> 落盘、收工归档;记忆是落在用户自己目录里的 Markdown 文件——<b>可读、可改、可审计、可回滚</b>,零依赖、即装即用。</p>
9
9
  <p align="center">FACT 共享、PREF / BOUND / COMMIT 私密隔离——<b>谁该读、谁不该读,由机制而非 AI 自觉决定</b>;一份记忆可跨智能体共用,记忆库随盘走、局域网可共享。</p>
10
- <p align="center">v0.6.0 起「越用越懂」:<code>profile</code> 聚合用户画像(零推断)+ <code>context</code> 一键开工上下文包(身份 + 画像 + 近期记忆 + 边界 + 承诺),记忆从「存储」成长为「会成长的记忆系统」。</p>
10
+ <p align="center">「越用越懂」:<code>profile</code> 聚合用户画像(零推断)+ <code>context</code> 一键开工上下文包(身份 + 画像 + 近期记忆 + 边界 + 承诺 + 收工纪律),记忆从「存储」成长为「会成长的记忆系统」。</p>
11
+ <p align="center"><b>私密区机制级加密</b>:AES-256-GCM 信封加密 + 口令派生主密钥 + 恢复钥匙;<code>yotta-memory view</code> 用户查看平台(口令解锁看全部 AI 记忆);<code>migrate</code> 明文→密文迁移;<code>--no-encrypt</code> 可降级。跨 AI 私密从「纪律层隔离」升级为「机制层不可解」。</p>
11
12
 
12
13
  <p align="center">
13
14
  <a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-blue" /></a>
@@ -22,24 +23,27 @@
22
23
 
23
24
  ## 核心价值
24
25
 
25
- 多数记忆方案把「记住」做成了黑盒:数据进了数据库或云端,用户看得到内容却改不动、难以审计,更控制不了「哪个智能体能看到什么」。元忆换了一条路——把记忆还原成看得见、管得着的明文文件:
26
+ 多数记忆方案把「记住」做成了黑盒:数据进了数据库或云端,用户看得到内容却改不动、难以审计,更控制不了「哪个智能体能看到什么」。元忆换了一条路——把记忆还原成看得见、管得着的文件(公共 FACT 明文可审计,私密区机制级加密、用户可口令解锁):
26
27
 
27
28
  - **记忆就是文件**:每条记忆是一个带 YAML frontmatter 的 Markdown 文件,放在用户自己的目录里。任何编辑器都能看、能改、能删;git 直接做版本管理与回滚,团队同步与交接走同一条标准工具链。
28
29
  - **隔离由机制保证**:FACT 进公共区共享,PREF / BOUND / COMMIT 进私密区、按 owner 物理分目录(`private/<owner>/<type>/`)。读取按 scope/owner 分区过滤,越界内容由 CLI 拦截、永不返回(默认静默跳过;显式跨读无授权报错拒绝);读写一律走 CLI / MCP,禁止 shell 直读写库文件——权限由机制把关,不依赖 AI 的「自觉」。
29
30
  - **零依赖、即装即用**:无守护进程、无数据库、无向量库,只需 Node.js。安装即用,数据留在本机,任何机器都能部署。
30
- - **越用越懂(v0.6.0)**:`profile` 聚合用户画像(引擎零推断,只归组原文)+ `context` 一键生成开工上下文包(身份 + 画像 + 近期记忆 + 边界 + 承诺);SKILL「记忆守则」注入灵魂盘规则层(类型红线 / 触发信号 / 了解用户 / 底线 / 宿主隔离),只注入规则与机制、不注入人格数据,出厂零数据。
31
+ - **越用越懂(v0.6.0)**:`profile` 聚合用户画像(引擎零推断,只归组原文)+ `context` 一键生成开工上下文包(身份 + 画像 + 近期记忆 + 边界 + 承诺);SKILL「记忆守则」注入规则层(类型红线 / 触发信号 / 了解用户 / 底线 / 宿主隔离),只注入规则与机制、不注入人格数据,出厂零数据。
32
+ - **自我学习 / 自我进化 / 自我提升(v0.8.0)**:`recall` 语义检索(同义词 / 拼音全拼+首字母 / 字段加权 / 模糊匹配,零依赖)+ 效用分融合排序;`feedback` 显式使用反馈闭环(useful / useless 调整 weight / confidence / feedback_net,越用越懂);`maintain` 规则层自组织(统一效用分 + 年龄自动归档 / 遗忘候选 / 去重,默认 dry-run,immutable / BOUND 豁免);`distill` 心理日志蒸馏(统计摘要 / 主题画像 / 知识地图,可选 `--model` 外部模型增强)。
33
+ - **私密区加密(v0.7.0)**:私密区文件 AES-256-GCM 信封加密(口令派生主密钥 + 恢复钥匙 + 每 owner 加密索引);`yotta-memory view` 用户查看平台(口令解锁看全部 AI 记忆);`migrate` 明文→密文迁移;`--no-encrypt` 可降级。跨 AI 私密从「纪律层隔离」升级为「机制层不可解」。
31
34
  - **便携记忆盘**:记忆库本身就是记忆引擎——装在硬盘或主机上随盘走,局域网内其它主机上的智能体可远程读写;本地零进程与局域网常驻两种模式可并存,插上硬盘即恢复全部记忆。
32
35
 
33
36
  ## 核心优势
34
37
 
35
38
  | 优势 | 说明 |
36
39
  |---|---|
37
- | **数据主权在用户** | 明文文件存储,可读、可改、可审计;git 可版本化,回滚 / 团队同步都走标准工具 |
40
+ | **数据主权在用户** | 公共 FACT 明文、可读可改可审计;私密区 AES-256-GCM 加密(用户经 `yotta-memory view` 口令解密查看);git 可版本化,回滚 / 团队同步都走标准工具 |
38
41
  | **真正的权限边界** | 公共 / 私密分区 + 按 owner 物理分目录(`private/<owner>/<type>/`)+ scope/owner 过滤 + 授权机制(grant / identity=user / `--unsafe`),越界内容由 CLI 过滤、永不返回(默认静默;显式跨读 `--all`/`--owner <其它>` 无授权时 exit 3);`--agent <其它>` 仅作身份声明、不授予跨读。读写走 CLI / MCP,禁 shell 直读写,不靠 AI 自律 |
42
+ | **私密区机制级加密** | 私密区(PREF/BOUND/COMMIT)文件 AES-256-GCM 信封加密(口令派生主密钥 + 恢复钥匙 + 每 owner 加密索引);没有对应 owner 密钥的 AI 即使读到密文也解不开;`yotta-memory view` 用户查看平台:口令解锁后浏览 / 搜索 / 导出全部 AI 记忆(含各 AI 私密明文) |
39
43
  | **跨智能体标准** | 符合 Agent Skills 开放标准(agentskills.io);装一次,Claude Code / Codex / Cursor / OpenCode 等 78+ 智能体可共用同一份记忆 |
40
44
  | **轻量零依赖** | 无 daemon / 无数据库 / 无向量库;Node.js 自带即跑,任何机器可部署 |
41
45
  | **双级存储** | 用户级 `~/.yottamemory/`(跨项目)+ 项目级 `.yottamemory/`(随项目共享 / 交接)|
42
- | **检索与生命周期** | 索引 + TF 打分(中文分词友好);质量分 / 盖棺分 / 自动归档,记忆库不会无限膨胀 |
46
+ | **检索与生命周期** | 语义检索(v0.8.0:同义词 / 拼音 / 字段加权 / 模糊,零依赖)+ 效用分融合排序;统一效用分(盖棺分)规则层自动归档 / 遗忘候选 / 去重(`maintain`,默认 dry-run),记忆库越用越精简 |
43
47
  | **越用越懂(v0.6.0)** | `profile` 画像聚合(零推断)+ `context` 开工上下文包(身份 / 画像 / 近期记忆 / 边界 / 承诺)+ SKILL「记忆守则」规则层,记忆随使用成长 |
44
48
  | **生态分发** | GitHub + npm 双源同步发布;npx skills / npm / install.sh 三种方式,覆盖 17+ 类智能体目录 |
45
49
  | **便携记忆盘(随盘走)** | 记忆库即引擎:装在硬盘 / 主机上,插上即恢复全部记忆;引擎主机只需装 CLI 当存放点,无需装任何 AI 智能体 |
@@ -73,7 +77,7 @@
73
77
  3. 显式 `--unsafe`(用户显式授权)。
74
78
  - **默认静默、显式跨读才报错**:默认 recall 遇其它 agent 私密静默跳过(不泄露「存在 N 条私密不可见」);仅当显式跨智能体读取(`--all` / `--owner <其它>`)且无授权命中时才报错 / 警告。
75
79
  - **`--agent <其它>` 不越界**:`--agent <其它agent>` 仅作身份声明 / 展示用,不授予读取他人私密;读其它智能体私密仍需 grant / identity=user / `--unsafe`。
76
- - **隔离定位**:scope: private 保证的是 AI 之间的语义隔离(正常 recall 不会被搜到、不会主动去读),不是文件系统级机密保护——数据主权在用户,作为所有者有权看到任何记忆文件。
80
+ - **隔离定位**:scope: private 保证的是 AI 之间的语义隔离(正常 recall 不会被搜到、不会主动去读)。v0.7 起私密区为机制级机密保护——文件 AES-256-GCM 信封加密,没有对应 owner 密钥的 AI 即使读到密文文件也解不开;数据主权仍在用户,作为所有者可用 `yotta-memory view` 口令解锁查看 / 导出任何记忆文件。
77
81
  - **禁止 shell 直读写**:记忆读写一律走 CLI / MCP 工具;用 shell(`Get-ChildItem` / `Get-Content` / `cat` / `ls` / `type` 等)直接读改库文件会绕过 scope/owner 权限边界,读到其它智能体私密内容。
78
82
 
79
83
  ### 智能体身份(唯一 ID + 自我档案)
@@ -92,16 +96,23 @@
92
96
  - **context**:一键生成开工上下文包——多智能体接入铁律 + 身份 + 用户画像摘要 + 近期记忆(按 importance 排序)+ 边界提醒 + 承诺 / 锚点;支持 `--budget` 字符预算(token 恒定,不随记忆膨胀)。
93
97
  - **记忆守则**:SKILL.md 内置规则层(类型红线 / 主动捕获触发信号 / 了解用户三阶段四手法 / 心理学底座与对齐 / 底线与边界 / 宿主隔离 / 反模式),让 AI「越用越懂」有章法。
94
98
 
95
- ### 检索:索引 + 中文分词打分
99
+ ### 检索:语义检索(v0.8.0)+ 中文分词打分
96
100
 
97
- - `remember` 时自动构建 `index.json` 索引;recall 用 TF 打分排序,中文按 bigram 分词,不用额外模型。
101
+ - `remember` 时自动构建 `index.json` 索引(v0.8.0 起 version=3,含字段加权与拼音 token;旧索引首次 recall 自动重建);recall 默认语义检索——精确(字段加权:subject×3 / tags×2 / statement×1)+ 同义词(内置词表,可扩展)+ 拼音(全拼 / 首字母,内置 3755 常用字表)+ 模糊(编辑距离 ≤ 2)+ 子串兜底,并与效用分融合排序(0.65 × 语义 + 0.35 × 效用),零依赖。
102
+ - `recall --explain`:展示每条命中理由(精确 / 同义 / 拼音 / 模糊 + 字段)与效用分项。
103
+ - 可选 embedding 插件:协议预留(v0.9 实装),无插件自动零依赖降级。
98
104
  - `index.json` 的 `tokens` 字段是中文分词的词频表(TF 打分用),**不是**访问凭证;鉴权令牌在记忆目录下 `.server/tokens.json`。
99
105
  - 支持关键词、`--type` 过滤、`--limit` 截断、项目级优先。
106
+ - **根位置去重(v0.6.5)**:当项目级与用户级记忆库指向同一目录(如 cwd = home 或其父)时,`recall` / `context` 自动唯一化根,同一文件只展示一次。
100
107
  - 命中展示会累加 `access_count` / `last_accessed`,为生命周期管理提供依据。
101
108
 
102
- ### 生命周期管理
109
+ ### 生命周期管理(v0.8.0 规则层自组织)
103
110
 
104
- - `archive`:按「盖棺分 + 年龄」把低价值旧记忆移入 `.archive/`(`immutable` 除外),记忆库不会无限膨胀。
111
+ - `maintain`(v0.8.0):规则层自组织——统一效用分(盖棺分 = confidence + 使用 + 时效 + 类型 + 结构)× weight,低效用 + 超龄自动归档;极端低价值列为遗忘候选(默认不真删,`--purge` 才删);`--dedup` 去重候选;`--merge A,B` 手动合并。默认 dry-run 预览,`--apply` 才执行;immutable / BOUND 豁免;审计写 `.archive/audit-<日期>.jsonl`。
112
+ - `archive`:按「统一效用分 + 年龄」把低价值旧记忆移入 `.archive/`(`immutable` 除外),记忆库不会无限膨胀(v0.8.0 起底层用统一效用分)。
113
+ - `feedback`(v0.8.0):显式使用反馈闭环——useful → weight ×1.2(上限 3.0)+ confidence +0.05 + feedback_net +1;useless → weight ×0.8(下限 0.2)+ confidence −0.05 + feedback_net −1;`--undo` 回滚;审计写 `.archive/feedback-<日期>.jsonl`。
114
+ - `distill`(v0.8.0):心理日志蒸馏——统计摘要(类型 / 年龄 / 热度 / 反馈)+ 主题画像(按 subject 聚类合并)+ 知识地图(type → tags);可选 `--model <cmd>` 外部模型 stdin→stdout 提炼;产物入 `private/<owner>/distills/` 或 `facts/distills/`。
115
+ - `explain`(v0.8.0):查看单条记忆效用分项与归档 / 遗忘状态判定。
105
116
  - `forget`:删除单条记忆(按类型目录路径或文件名)。
106
117
  - `reindex`:手动改过 `.md` 后重建索引。
107
118
  - `export` / `import`:整库导出为 JSON / 从 JSON 导入,可作迁移与备份中间格式。
@@ -125,10 +136,10 @@
125
136
 
126
137
  | 维度 | 元忆(yotta-memory) | 数据库 / 嵌入式存储类 | 向量库 / 语义检索类 | 云端托管记忆服务 |
127
138
  |---|---|---|---|---|
128
- | 存储形态 | Markdown 明文文件,git 可版本化 | 二进制 / 结构化数据库文件 | 向量索引 + 模型依赖 | 厂商服务器 |
129
- | 数据主权 | 完全在用户本地,可读可改可删 | 本地,但需专用工具读写 | 本地或自托管,模型需额外部署 | 不在用户手中,受服务条款约束 |
139
+ | 存储形态 | 公共 FACT 明文文件;私密区加密(.md.enc),git 可版本化 | 二进制 / 结构化数据库文件 | 向量索引 + 模型依赖 | 厂商服务器 |
140
+ | 数据主权 | 完全在用户本地,可读可改可删(私密区经 view 平台口令解锁) | 本地,但需专用工具读写 | 本地或自托管,模型需额外部署 | 不在用户手中,受服务条款约束 |
130
141
  | 权限边界 | 内置:公共 / 私密分区 + scope/owner + 授权 | 通常无内置,需自行实现 | 通常无内置,需自行实现 | 通常只有账号级权限,无记忆级细粒度 |
131
- | 可审计 / 回滚 | 明文 + git,天然可审计可回滚 | 需导出工具链,回滚复杂 | 依赖快照 / 导出机制 | 依赖平台导出能力 |
142
+ | 可审计 / 回滚 | 公共 FACT 明文可审计;私密区加密但用户可用 view 平台解密,git 可回滚 | 需导出工具链,回滚复杂 | 依赖快照 / 导出机制 | 依赖平台导出能力 |
132
143
  | 部署与依赖 | 零依赖,Node.js 即跑 | 需数据库运行 / 嵌入式依赖 | 需向量库 + 模型,较重 | 联网 + 账号,数据出本地 |
133
144
  | 跨智能体 | 符合 Agent Skills 标准,一次写入多智能体可读 | 各智能体各自接入,无统一标准 | 需各自接入,成本高 | 取决于平台支持范围 |
134
145
 
package/SKILL.md CHANGED
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  name: yotta-memory
3
- description: "元忆 —— 有权限边界的文件式智能体记忆。文件式、零依赖、可 diff/回滚:让任何 AI 智能体活过会话,开工 recall 恢复上下文、重要信息 remember 落盘、收工归档。类型体系 FACT(公共共享)/ PREF / BOUND / COMMIT(私密隔离)。触发:记住、别忘了、记一笔、记忆、remember、recall、跨会话、上次说到、续测、交接、归档、记忆盘、共享记忆、局域网记忆、画像、开工上下文、记忆守则、profile、context、越用越懂"
4
- version: 0.6.4
3
+ description: "元忆 —— 有权限边界的文件式智能体记忆。文件式、零依赖、可 diff/回滚:让任何 AI 智能体活过会话,开工 recall 恢复上下文、重要信息 remember 落盘、收工归档。类型体系 FACT(公共共享)/ PREF / BOUND / COMMIT(私密隔离)。触发:记住、别忘了、记一笔、记忆、remember、recall、跨会话、上次说到、续测、交接、归档、记忆盘、共享记忆、局域网记忆、画像、开工上下文、记忆守则、profile、context、越用越懂、语义检索、反馈、维护、蒸馏、feedback、maintain、distill、explain、自我学习、自我进化、自我提升"
4
+ version: 0.8.0
5
5
  license: MIT
6
6
  ---
7
7
 
8
8
  # yotta-memory(元忆)— 有权限边界的文件式智能体记忆
9
9
 
10
10
  > 一句话:元忆 —— 有权限边界的文件式智能体记忆(不注入、可 diff、能回滚;FACT 共享、PREF / BOUND / COMMIT 私密隔离)。
11
- > 版本:0.6.4 | 最后更新:2026-08-26
11
+ > 版本:0.8.0 | 最后更新:2026-08-27
12
12
 
13
13
  ## 这是什么
14
14
 
@@ -16,7 +16,8 @@ license: MIT
16
16
  - **零依赖**:无 daemon / 无数据库 / 无向量库,Node.js 自带即可运行。
17
17
  - **类型体系**:FACT(事实,公共共享)/ PREF(偏好,私密)/ BOUND(边界,私密)/ COMMIT(承诺,私密)。
18
18
  - **双级存储**:用户级 `~/.yottamemory/`(跨项目)+ 项目级 `.yottamemory/`(随项目共享)。
19
- - **越用越懂(v0.6.0)**:`profile` 聚合用户画像(引擎零推断,只归组原文)+ `context` 一键生成开工上下文包(身份 + 画像 + 近期记忆 + 边界 + 承诺)+ SKILL「记忆守则」规则层;只注入规则与机制,不注入人格数据(出厂零数据)。
19
+ - **越用越懂**:`profile` 聚合用户画像(引擎零推断,只归组原文)+ `context` 一键生成开工上下文包(身份 + 画像 + 近期记忆 + 边界 + 承诺)+ SKILL「记忆守则」规则层;只注入规则与机制,不注入人格数据(出厂零数据)。
20
+ - **自我学习 / 自我进化 / 自我提升(v0.8.0)**:`recall` 语义检索(同义词 / 拼音 / 字段加权 / 模糊匹配,零依赖);`feedback` 显式使用反馈闭环(useful / useless → weight / confidence / feedback_net 演化,越用越懂);`maintain` 规则层自组织(统一效用分 + 年龄自动归档 / 遗忘候选 / 去重,默认 dry-run,immutable / BOUND 豁免);`distill` 心理日志蒸馏(统计摘要 / 主题画像 / 知识地图,可选 `--model` 外部模型增强);`explain` 查看单条记忆效用分项。
20
21
 
21
22
  ## 何时使用(触发)
22
23
 
@@ -35,7 +36,7 @@ license: MIT
35
36
 
36
37
  ## 记忆守则(Memory Doctrine,v0.6.0)
37
38
 
38
- > 出厂规则层:把灵魂盘「越用越懂」机制固化进记忆引擎——只注入**规则与机制**,不注入任何人格数据(出厂零数据)。来源:灵魂盘 core/rules(psychology / user-analysis / active-memory / boundaries / host-isolation)。
39
+ > 出厂规则层:把「越用越懂」机制固化进记忆引擎——只注入**规则与机制**,不注入任何人格数据(出厂零数据)。
39
40
 
40
41
  ### 1. 类型红线(写前必选)
41
42
 
@@ -105,12 +106,22 @@ license: MIT
105
106
 
106
107
  ### 开工第一步:确认记忆位置 + 智能体身份(每次会话先做,必做)
107
108
 
109
+ **第 0 步:CLI 就绪检查(未装 → 🔒 征得同意后自动安装)**
110
+
111
+ 1. 运行 `yotta-memory --version`(或 `command -v yotta-memory` / `where yotta-memory`)确认 CLI 已装。
112
+ - 已装 → 进入 A。
113
+ - 未装 → 🔒 **征得同意后**自动安装(三选一,AI 判断;装后回读 `--version` 出版本即就绪):
114
+ - 临时使用:`npx -y @yottameta/yotta-memory`
115
+ - 长期使用:`npm i -g @yottameta/yotta-memory`
116
+ - 离线 / 国内 / 无 npm:git clone 仓库(或手动下载 install.sh)后执行 `bash install.sh -g`
117
+
108
118
  **A. 确认记忆库位置**(AI 不会自动知道记忆库在哪,先检测,避免「recall 读空库 / 错库」):
109
119
 
110
120
  1. 运行 `yotta-memory config get`。
111
121
  - 输出 `memory_home: <目录>`(已显式设置)→ 直接用该位置。
112
122
  - 输出 `memory_home: (未设置,默认 ~/.yottamemory)` → 🔒 征得同意后引导设置:问用户用默认还是指定目录(项目级 `<repo>/.yottamemory`、记忆盘等),确认后 AI 执行 `yotta-memory config set memory_home <目录>`,回读 `config get` 验证。
113
123
  2. **已有记忆**:目标目录已存在 `facts/` 等子目录或 `index.json` → 直接 recall;全新目录 → 按「便携记忆盘模式 §0.3」初始化。
124
+ 3. **私密区已加密(存在 `keys/`)**:先 `yotta-memory key list` 确认本智能体是否有授权缓存;没有 → 提醒用户 `yotta-memory view` → 在平台「授权本智能体」后再读写私密(公共 FACT 不受影响)。
114
125
 
115
126
  **B. 确认本智能体唯一身份(强制,写私密记忆前必做)**:
116
127
 
@@ -144,13 +155,17 @@ license: MIT
144
155
 
145
156
  | 命令 | 作用 |
146
157
  |---|---|
147
- | `yotta-memory init [--project] [--dir <目录>]` | 初始化记忆库(默认用户级;--dir 显式指定位置)|
158
+ | `yotta-memory init [--project] [--dir <目录>] [--encrypt|--no-encrypt]` | 初始化(**新建默认加密**:设主口令 + 抄下恢复钥匙;`--no-encrypt` 降级明文;老明文库用 `migrate`)|
159
+ | `yotta-memory migrate` | 明文私密区 → 密文迁移(需主口令;迁移后打印恢复钥匙;当前智能体自动获得授权缓存)|
160
+ | `yotta-memory view [--port 8788] [--host 127.0.0.1]` | 用户查看平台(本机 Web:口令解锁浏览 / 搜索 / 导出全部 AI 记忆 + 授权 / 吊销 AI + 重设口令 + 显示恢复钥匙)|
161
+ | `yotta-memory reset-password [--password <当前> | --recovery-key <钥匙>] [--new-password <新>]` | 重设主口令(忘口令用恢复钥匙)|
162
+ | `yotta-memory key list / authorize <id> / revoke <id>` | 管理 AI 私密读取授权缓存(authorize 需主口令;revoke 立即吊销该 AI 解密能力)|
148
163
  | `yotta-memory remember <type> <subject> <statement> [--owner <id>] [--source <来源>] [--weight <0..>] [--verify] [--no-hint]` | 写入(同 subject+statement 自动更新;--owner 标注归属;--source 记录来源;--weight 重要性权重默认 1.0、去重取 max;--verify 写后回读校验;--no-hint 关闭类型启发式提示)|
149
- | `yotta-memory recall [关键词] [--type T] [--limit N] [--agent <id>] [--owner <id>] [--all] [--unsafe]` | 检索(索引+TF 打分,读取分区过滤;越界读其它智能体私密默认拒绝,需 grant / identity=user / `--unsafe`;`--agent <其它>` 只作身份声明/展示,不授予跨读——读他人私密同样要授权;项目级优先)|
164
+ | `yotta-memory recall [关键词] [--type T] [--limit N] [--agent <id>] [--owner <id>] [--all] [--unsafe] [--explain] [--semantic]` | 检索(v0.8.0 默认语义检索:同义词 / 拼音全拼+首字母 / 字段加权 / 模糊匹配 + 效用分融合排序;`--explain` 显示命中理由与效用分项;`--semantic` 显式开启;读取分区过滤;越界读其它智能体私密默认拒绝,需 grant / identity=user / `--unsafe`;`--agent <其它>` 只作身份声明/展示,不授予跨读——读他人私密同样要授权;项目级优先)|
150
165
  | `yotta-memory profile [--owner <id>]` | 生成用户画像(聚合 `private/<owner>/` 原文,零推断,写 `profile.md`;跨 owner 默认拒绝)|
151
166
  | `yotta-memory context [--limit N] [--owner <id>] [--budget N]` | 生成开工上下文包(身份 + 多智能体铁律 + 画像 + 近期记忆 + 边界 + 承诺;--budget 近期记忆字符预算,0=不限)|
152
167
  | `yotta-memory forget <文件>` | 删除(按类型目录路径或文件名)|
153
- | `yotta-memory archive [--days 180] [--threshold 0.4]` | 归档旧记忆(盖棺分+年龄,immutable 除外)|
168
+ | `yotta-memory archive [--days 180] [--threshold 0.35]` | 归档旧记忆(v0.8.0 统一效用分+年龄,immutable 除外;阈值默认读 config `maintain_archived_utility`)|
154
169
  | `yotta-memory reindex` | 重建索引(手动改 .md 后校正)|
155
170
  | `yotta-memory export [--out f.json]` / `import <f.json>` | 导出 / 导入 |
156
171
  | `yotta-memory config set memory_home <目录>` / `config get` | 持久记住 / 查看记忆库位置(`~/.yottamemory/config.json`)|
@@ -159,6 +174,10 @@ license: MIT
159
174
  | `yotta-memory token new --agent <id> [--force]` / `token list` / `token revoke --agent <id>` | 每智能体访问 token:生成 / 列出 / 吊销(登记 `<记忆库>/.server/tokens.json`;同 ID 已被其它来源占用需 `--force` 覆盖,防不同智能体合流)|
160
175
  | `yotta-memory serve [--host 0.0.0.0] [--port 8787] [--no-auth] [--stdio]` | 启动 MCP 记忆引擎(streamable HTTP 局域网 / --stdio 本地零进程模式;Bearer token + X-Agent-Id 鉴权)|
161
176
  | `yotta-memory lan enable [--onstart] / disable / status` | 开机自启管理(Windows:计划任务,默认 ONLOGON、--onstart 开机即启需管理员,非管理员自动降级用户级 Startup 静默自启,v0.6.3 起 VBS 自愈不弹 80070002;Linux:systemd 用户单元,不可用时自动降级用户 crontab @reboot)|
177
+ | `yotta-memory feedback <文件|主题> --useful|--useless [--reason <原因>] [--undo]` | 显式使用反馈(v0.8.0 自我学习闭环:useful → weight×1.2 / useless → weight×0.8,confidence / feedback_net 同步演化;`--undo` 回滚最近一次;审计写 `.archive/feedback-<日期>.jsonl`)|
178
+ | `yotta-memory maintain [--dry-run] [--apply] [--purge] [--threshold N] [--age N] [--dedup] [--merge A,B]` | 记忆自组织(v0.8.0 自我进化:规则层归档 / 遗忘候选 / 去重;默认 dry-run 预览,`--apply` 执行归档,`--purge` 才真删遗忘候选;immutable / BOUND 豁免;审计写 `.archive/audit-<日期>.jsonl`)|
179
+ | `yotta-memory distill [--owner <id>] [--subject <主题>] [--model <cmd>] [--out <路径>]` | 心理日志蒸馏(v0.8.0 自我提升:统计摘要 / 主题画像 / 知识地图;启发式零依赖,`--model` 可选外部模型 stdin→stdout 提炼;私密产物入 `private/<owner>/distills/`,公共入 `facts/distills/`)|
180
+ | `yotta-memory explain <文件|主题>` | 查看单条记忆效用分项与归档 / 遗忘状态判定(v0.8.0)|
162
181
 
163
182
  ## 存储格式(摘要)
164
183
 
@@ -168,9 +187,11 @@ license: MIT
168
187
  <root>/
169
188
  ├── facts/ # FACT 事实(公共可共享)
170
189
  ├── private/<owner>/<type>/ # PREF / BOUND / COMMIT,按智能体隔离
171
- ├── private/<owner>/profile.md # 用户画像(profile 命令生成,可再生成,零推断)
190
+ ├── private/<owner>/profile.md # 用户画像(明文库;加密库为 profile.md.enc)
191
+ ├── private/<owner>/index.enc # 加密库:每 owner 加密索引(YTMIDX1,Owner Key 加密)
172
192
  ├── .archive/ # 归档区
173
- ├── index.json # 检索索引(tokens = 分词词频,非访问令牌)
193
+ ├── index.json # 公共 FACT 检索索引(加密库只含公共条目)
194
+ ├── keys/ # 加密库密钥库:salt / <owner>.key.enc(UMK 包裹) / <owner>.key.recovery(恢复钥匙包裹) / recovery.key.enc / cache/<id>.key(授权缓存 600)
174
195
  └── agents.json # 智能体身份登记表(唯一性)
175
196
  ```
176
197
 
@@ -178,6 +199,29 @@ license: MIT
178
199
 
179
200
  自我档案(本智能体身份,强制落盘):PREF,`subject=自我接入档案`,`owner=<本智能体ID>`,statement 为 `; ` 分隔的 key:value——`agent_id / host / memory_home / mcp_mode(stdio|http)/ engine_url(仅远端)/ token(仅远端;本机不存 token)`,可含 `agent_name / user_name / relationship`(`iam --name/--user/--relationship` 写入)。
180
201
 
202
+
203
+ ## 私密区加密(v0.7,机制层机密保护)
204
+
205
+ > 定位:把私密区从「纪律层隔离」升级为「机制层机密保护」——没有对应 owner 密钥,即使读到密文文件也解不开。公共 FACT 保持明文共享。边界声明:用户是数据所有者,天然可解全部;不承诺对抗同一 OS 用户下的恶意进程(本机模型)。
206
+
207
+ ### 密钥体系(信封加密,零依赖)
208
+ - **UMK(用户主密钥)**:主口令经 PBKDF2-SHA256(60 万次迭代 + 随机盐)派生,永不落盘明文。
209
+ - **Owner Key(每 AI 32B 随机)**:加密该 owner 的私密;被 UMK 包裹存 `keys/<owner>.key.enc`,另用恢复钥匙包裹存 `keys/<owner>.key.recovery`。
210
+ - **File Key(每文件随机)**:AES-256-GCM 加密文件内容,被 Owner Key 包裹随文件头存储(便于单文件重加密 / 轮换)。
211
+ - **恢复钥匙(Recovery Key)**:初始化 / 迁移时打印一次(44 位 base64),用户离线保存;忘口令用它重设(`reset-password --recovery-key`)。**泄露 = 等同口令泄露**。
212
+
213
+ ### 文件与索引
214
+ - 私密文件落盘为 `<date>-<seq>.md.enc`(头 `YTMENC1`),公开 `facts/*.md` 保持明文。
215
+ - 私密检索走**每 owner 加密索引** `private/<owner>/index.enc`(头 `YTMIDX1`,Owner Key 加密)——AI 用自己的 key 解自己索引一次,内存全文检索,只解命中文件,**不是逐个文件解密**;公共 `index.json` 只含 FACT 条目。
216
+ - `--no-encrypt` 库回到明文纪律层模型(老行为,向后兼容)。
217
+
218
+ ### 流程
219
+ 1. **建加密库**:`yotta-memory init --encrypt`(新建默认加密)→ 设主口令 → 抄下恢复钥匙离线保存。
220
+ 2. **老库迁移**:`yotta-memory migrate`(需主口令)→ 明文私密逐文件加密后删除明文 → 打印恢复钥匙 → 当前智能体自动获得授权缓存,其余 AI 需平台授权。
221
+ 3. **AI 读写自己的私密**:AI 声明身份后需**平台授权一次**——`yotta-memory view` → 输口令 → 点「授权 <该AI>」→ 平台把 owner key 写入 `keys/cache/<id>.key`(600 权限)。之后该 AI 正常 `remember / recall / profile / context`(私有读写自动加解密);未授权时写私密报「需在用户平台授权」,公共 FACT 不受影响。
222
+ 4. **用户查看全部 AI 记忆**:`yotta-memory view` → 输口令 → 浏览 / 搜索 / 导出全部(含各 AI 私密明文,仅用户可见)。口令只在本地内存派生,不落盘、不发远端;默认仅 127.0.0.1,远程需 `--host` 显式开启。
223
+ 5. **口令管理**:`yotta-memory reset-password`(当前口令或恢复钥匙);`key revoke <id>` 立即吊销某 AI 的授权缓存(该 AI 随即失去解密能力)。
224
+
181
225
  ## 便携记忆盘模式(局域网多机共享)
182
226
 
183
227
  记忆库可装在任何主机或硬盘上(= 记忆引擎):本机 AI 用 CLI 直连,局域网内其它主机上的 AI 经 MCP 远程接入。全程 AI 自主执行;关键动作(🔒)执行前一句话说明「做什么 + 为什么 + 影响」并征得用户同意,用户只需回答「可以 / 好 / 允许」;除复制粘贴 token 外,用户不做任何手工操作。
@@ -185,15 +229,9 @@ license: MIT
185
229
  ### 4.0 前置:CLI 自装 + 记忆位置准备 + 持久记住
186
230
 
187
231
  **步骤 0.1 检查 CLI 是否已装**
188
- ```bash
189
- yotta-memory --version # 或 command -v yotta-memory / where yotta-memory
190
- ```
191
- 已装 → 跳过。未装 → 🔒 **征得同意后**自行安装(三选一,AI 判断):
192
- | 方式 | 命令 | 适用 |
193
- |---|---|---|
194
- | npx 临时 | `npx -y @yottameta/yotta-memory` | 任何有 Node 的机器 |
195
- | npm 全局 | `npm i -g @yottameta/yotta-memory` | 长期使用 |
196
- | install.sh | `bash <(curl -s https://raw.githubusercontent.com/YottaMeta/yotta-memory/main/install.sh)` | 离线 / 国内 / 无 npm |
232
+
233
+ 未装 → 🔒 **征得同意后**自动安装(npx 临时 / npm 全局 / install.sh 三选一,命令与判断见「开工第一步 第 0 步」)。
234
+
197
235
  装后验证:`yotta-memory --version` 出版本即就绪。
198
236
 
199
237
  **步骤 0.2 确定记忆存储位置**
@@ -218,7 +256,7 @@ yotta-memory --version # 或 command -v yotta-memory / where yotta-memory
218
256
 
219
257
  **步骤 0.5 启动记忆引擎(仅引擎主机,供远程接入)**
220
258
  - 本机若作引擎:🔒 **征得同意后**启动服务——临时运行 `yotta-memory serve`(默认 `0.0.0.0:8787`,Bearer token + X-Agent-Id 鉴权;`--no-auth` 仅限可信内网),或注册开机自启 `yotta-memory lan enable`(Windows:优先计划任务,默认登录自启;非管理员自动降级用户级 Startup 静默自启,免管理员)。
221
- - 本地零进程模式:本机 AI 也可用 `serve --stdio` 由 MCP 客户端按需拉起 CLI(无常驻进程,照灵魂盘)。
259
+ - 本地零进程模式:本机 AI 也可用 `serve --stdio` 由 MCP 客户端按需拉起 CLI(无常驻进程)。
222
260
  - 远程客户端接入前,先确认引擎主机 serve 已运行(`lan status` 可查)。
223
261
 
224
262
  ### 4.1 触发
@@ -287,4 +325,4 @@ yotta-memory --version # 或 command -v yotta-memory / where yotta-memory
287
325
 
288
326
  ## 渐进披露
289
327
 
290
- - 协议细节、目录结构与类型规则见 `references/protocol.md`,需要时读取,不要每次全读。
328
+ - 协议细节、目录结构与类型规则见 `references/protocol.md`,需要时读取,不要每次全读。
package/USER_GUIDE.md CHANGED
@@ -7,6 +7,8 @@
7
7
  1. 这是什么
8
8
  2. 安装
9
9
  3. 本机单机使用
10
+ 3.5 私密区加密(v0.7,推荐)
11
+ 3.6 自我学习 / 自我进化 / 自我提升(v0.8.0)
10
12
  4. 便携记忆盘 · 记忆引擎主机篇(Linux / Windows)
11
13
  5. 智能体接入篇(本机 / 局域网其它主机)
12
14
  6. CLI 命令速查
@@ -27,6 +29,7 @@
27
29
  - **交接与团队协作**:项目级 `.yottamemory` 随仓库走,交接即恢复。
28
30
  - **便携记忆盘**:记忆装在固定主机上,本机与局域网其它主机共享同一份记忆(见第 4 / 5 篇)。
29
31
  - **越用越懂(v0.6.0)**:AI 按「记忆守则」主动捕获信号,`profile` 聚合画像、`context` 开工注入——用得越久越懂你。
32
+ - **自我学习 / 自我进化 / 自我提升(v0.8.0)**:`recall` 语义检索(同义词 / 拼音 / 字段加权 / 模糊)+ `feedback` 使用反馈闭环 + `maintain` 规则层自组织(自动归档 / 遗忘候选 / 去重)+ `distill` 心理日志蒸馏——记忆系统会自己整理、提炼、演化。
30
33
 
31
34
  ## 2. 安装(CLI + 技能)
32
35
 
@@ -38,7 +41,7 @@
38
41
  |---|---|---|
39
42
  | npm 全局(推荐) | `npm i -g @yottameta/yotta-memory` | 长期使用 |
40
43
  | npx 临时 | `npx -y @yottameta/yotta-memory` | 临时试用 |
41
- | install.sh | `bash <(curl -s https://raw.githubusercontent.com/YottaMeta/yotta-memory/main/install.sh)` | 离线 / 无 npm |
44
+ | install.sh | git clone 仓库后 `bash install.sh -g`(或手动下载 install.sh 执行)| 离线 / 国内 / 无 npm |
42
45
 
43
46
  安装后验证:`yotta-memory --version` 能输出版本号即成功。
44
47
 
@@ -104,6 +107,68 @@ statement: 本周完成发布
104
107
 
105
108
  手动改过文件后运行 `yotta-memory reindex` 重建索引,`recall` 才能按索引检索到。整个记忆目录可以用 git 做版本管理与回滚。
106
109
 
110
+
111
+ ## 3.5 私密区加密(v0.7,推荐)
112
+
113
+ 私密区(PREF / BOUND / COMMIT)默认落盘为**密文**(AES-256-GCM 信封加密),任何没有对应密钥的 AI 即使读到文件也解不开;公共 FACT 保持明文共享。用户通过**用户查看平台**持主口令解锁查看全部记忆。
114
+
115
+ **启用与迁移**
116
+
117
+ - **新库**:`yotta-memory init`(新建默认加密)→ 输入主口令两次 → **抄下打印的恢复钥匙**(44 位 base64,离线保存;忘口令时用它重设)。不要加密用 `--no-encrypt`。
118
+ - **老明文库升级**:`yotta-memory migrate` → 输入主口令 → 私密文件逐个加密、明文删除 → 抄下恢复钥匙。
119
+
120
+ **用户查看平台(看所有 AI 的记忆)**
121
+
122
+ `yotta-memory view` → 浏览器打开 http://127.0.0.1:8788 → 输入主口令解锁 → 浏览 / 搜索 / 导出全部记忆(含各 AI 私密);也可在此**授权 / 吊销**某 AI 读取其私密、**重设口令**、**查看恢复钥匙**。口令只在本地内存派生,不落盘、不发远端;默认仅本机,远程需 `--host` 显式开启。
123
+
124
+ **AI 接入加密库**
125
+
126
+ 1. 该 AI 声明身份(`iam` / MCP 配置 `YOTTA_AGENT_ID`)。
127
+ 2. 用户在平台对其点一次「授权」→ 平台把该 AI 的 owner key 写入授权缓存(`keys/cache/<id>.key`,600 权限)。
128
+ 3. 之后该 AI 正常 `remember / recall / profile / context`,读写自动加解密;未授权时写私密会提示「需在用户平台授权」,公共 FACT 不受影响。
129
+
130
+ **口令管理**
131
+
132
+ - 重设口令:`yotta-memory reset-password`(输入当前口令),或忘口令时 `--recovery-key <恢复钥匙>`。
133
+ - 吊销某 AI:`yotta-memory key revoke <id>`(立即失效)。
134
+ - 注意:**口令即主密钥**,忘口令且丢失恢复钥匙 = 密文私密不可恢复(公共 FACT 仍在)。
135
+
136
+ ## 3.6 自我学习 / 自我进化 / 自我提升(v0.8.0)
137
+
138
+ 元忆 v0.8.0 让记忆系统「越用越懂」:语义检索、使用反馈闭环、规则层自组织、心理日志蒸馏,全部零依赖内置。
139
+
140
+ **语义检索(recall)**
141
+
142
+ - `recall <关键词>` 默认语义检索:同义词(内置词表)、拼音(全拼 / 首字母,内置 3755 常用字表)、字段加权(subject 优先)、模糊匹配(编辑距离 ≤ 2)、子串兜底。
143
+ - 例:记过「越用越懂」,用 `recall yyyd`(首字母)或 `recall yueyong yuedong`(拼音)都能找回。
144
+ - `recall --explain`:显示每条命中理由与效用分项。
145
+ - 旧索引首次 recall 自动重建(version 3),无需手动 reindex。
146
+
147
+ **使用反馈闭环(feedback)**
148
+
149
+ - `feedback <文件> --useful`:这条记忆有用 → weight ×1.2(上限 3.0)、confidence +0.05、feedback_net +1。
150
+ - `feedback <文件> --useless`:没用 → weight ×0.8(下限 0.2)、confidence −0.05、feedback_net −1。
151
+ - `--reason <原因>` 记录原因;`--undo` 回滚最近一次。反馈记录在 `.archive/feedback-<日期>.jsonl`。
152
+ - 反馈会改变记忆的效用分 → 高频「没用」的记忆会被自动归档 / 遗忘候选(自我学习)。
153
+
154
+ **规则层自组织(maintain)**
155
+
156
+ - `maintain`(默认 dry-run 预览):列出归档候选(统一效用分 < 0.35 且超 180 天)与遗忘候选(< 0.12 且超 365 天),immutable / BOUND 豁免。
157
+ - `maintain --apply`:执行归档(移入 `.archive/`,可恢复)。
158
+ - `maintain --apply --purge`:真删遗忘候选(谨慎,先确认)。
159
+ - `maintain --dedup`:列出重复候选;`maintain --merge A,B` 合并两条相似记忆。
160
+ - 阈值可用 `config set maintain_archived_utility 0.3` 等调整;审计在 `.archive/audit-<日期>.jsonl`。
161
+
162
+ **心理日志蒸馏(distill)**
163
+
164
+ - `distill`:生成统计摘要(类型 / 年龄 / 热度 / 反馈)+ 主题画像(按 subject 聚类)+ 知识地图(type → tags)。
165
+ - 可选 `--model <cmd>`:外部模型 stdin 收结构化摘要 → stdout 输出提炼文本(无模型走启发式)。
166
+ - 产物:私密蒸馏入 `private/<owner>/distills/`(受 owner key 保护),公共入 `facts/distills/`;`--out <路径>` 可指定导出。
167
+
168
+ **查看效用(explain)**
169
+
170
+ - `explain <文件>`:显示单条记忆的效用分项(confidence / 使用 / 时效 / 类型 / 结构 × weight)与归档 / 遗忘状态判定,帮助理解为什么某条记忆靠前 / 被归档。
171
+
107
172
  ## 4. 便携记忆盘 · 记忆引擎主机篇
108
173
 
109
174
  场景:记忆放在一台主机上(Linux / Windows 均可),本机直接 CLI 读写;局域网内其它主机上的 AI 智能体经 MCP 远程接入。引擎主机只需装 CLI,不需要装任何 AI 智能体。
@@ -139,7 +204,7 @@ yotta-memory lan status # 查看状态
139
204
  yotta-memory lan disable # 取消
140
205
  ```
141
206
 
142
- > 说明:`lan enable` 默认「登录后自启」;如需系统级(整机、开机即启)服务,可手动创建 `/etc/systemd/system/yotta-memory.service`(ExecStart 指向 `which yotta-memory` 实际路径)并 `sudo systemctl enable --now yotta-memory`;桌面环境也可在 `~/.config/autostart/` 放置 `yotta-memory.desktop` 实现图形登录自启。
207
+ **说明**:`lan enable` 默认「登录后自启」;如需系统级(整机、开机即启)服务,可手动创建 systemd 单元 `/etc/systemd/system/yotta-memory.service`(ExecStart 指向 `which yotta-memory` 实际路径),再以管理员执行 systemd 的 enable --now 启用;桌面环境也可在 `~/.config/autostart/` 放置 `yotta-memory.desktop` 实现图形登录自启。
143
208
 
144
209
  **第 4 步:为局域网其它主机的智能体生成访问 token**
145
210
 
@@ -237,7 +302,7 @@ yotta-memory remember FACT 主题 内容 # 智能体落盘
237
302
  |---|---|
238
303
  | `yotta-memory init [--project] [--dir <目录>]` | 初始化记忆库 |
239
304
  | `yotta-memory remember <类型> <主题> <内容> [--owner <id>] [--source <来源>] [--weight <0..>] [--verify] [--no-hint]` | 写入记忆(--source 来源;--weight 重要性权重;--verify 写后回读;--no-hint 关闭类型提示)|
240
- | `yotta-memory recall [关键词] [--type T] [--limit N] [--agent <id>] [--owner <id>] [--all] [--unsafe]` | 检索记忆(读取分区过滤;`--agent <其它>` 仅作身份声明、不授予跨读;越界读其它智能体私密默认拒绝,需 grant / identity=user / `--unsafe`)|
305
+ | `yotta-memory recall [关键词] [--type T] [--limit N] [--agent <id>] [--owner <id>] [--all] [--unsafe] [--explain]` | 检索记忆(v0.8.0 默认语义检索:同义词 / 拼音 / 字段加权 / 模糊 + 效用分排序;`--explain` 显示命中理由;读取分区过滤;`--agent <其它>` 仅作身份声明、不授予跨读;越界读其它智能体私密默认拒绝,需 grant / identity=user / `--unsafe`)|
241
306
  | `yotta-memory profile [--owner <id>]` | 生成用户画像(零推断,写 `profile.md`)|
242
307
  | `yotta-memory context [--limit N] [--owner <id>] [--budget N]` | 开工上下文包(身份+铁律+画像+近期记忆+边界+承诺;--budget 近期记忆字符预算)|
243
308
  | `yotta-memory forget <文件>` | 删除一条记忆 |
@@ -250,6 +315,10 @@ yotta-memory remember FACT 主题 内容 # 智能体落盘
250
315
  | `yotta-memory token new --agent <id> [--force]` / `token list` / `token revoke --agent <id>` | 访问 token(同 ID 已被其它来源占用需 `--force` 覆盖)|
251
316
  | `yotta-memory serve [--port 8787] [--stdio] [--no-auth]` | 启动记忆引擎(--no-auth 关闭鉴权,仅限可信内网)|
252
317
  | `yotta-memory lan enable [--onstart] / disable / status` | 开机自启管理(Windows:计划任务/用户级 Startup 静默自启;Linux:systemd 用户单元/用户 crontab @reboot)|
318
+ | `yotta-memory feedback <文件|主题> --useful|--useless [--reason <原因>] [--undo]` | 使用反馈(v0.8.0:useful/useless 调 weight/confidence/feedback_net;--undo 回滚)|
319
+ | `yotta-memory maintain [--dry-run] [--apply] [--purge] [--threshold N] [--age N] [--dedup] [--merge A,B]` | 记忆自组织(v0.8.0:归档 / 遗忘候选 / 去重;默认 dry-run,--apply 执行,--purge 才真删)|
320
+ | `yotta-memory distill [--owner <id>] [--subject <主题>] [--model <cmd>] [--out <路径>]` | 心理日志蒸馏(v0.8.0:统计摘要 / 主题画像 / 知识地图)|
321
+ | `yotta-memory explain <文件|主题>` | 查看单条记忆效用分项(v0.8.0)|
253
322
 
254
323
  类型:`FACT`(事实,共享)/ `PREF`(偏好)/ `BOUND`(边界)/ `COMMIT`(承诺),后三类按智能体物理分目录隔离(`private/<owner>/<type>/`)。
255
324
 
@@ -262,7 +331,7 @@ yotta-memory remember FACT 主题 内容 # 智能体落盘
262
331
  3. 端口对吗?默认 8787,两端要一致。
263
332
  4. 防火墙放行了吗?Linux:`sudo ufw status`,未放行则 `sudo ufw allow 8787/tcp`;Windows:允许首次监听的入站请求。
264
333
  5. token 有效吗?记忆盘主机执行 `yotta-memory token list` 看该智能体是否登记;无效就 `token new --agent <id>` 重新生成。
265
- 6. 网络通吗?任意一台主机执行 `curl http://<引擎IP>:8787/mcp`:
334
+ 6. 网络通吗?任意一台主机用浏览器或命令行访问 `http://<引擎IP>:8787/mcp`:
266
335
  - 返回 401:服务在运行,是鉴权问题(token / 请求头不对)。
267
336
  - 连接被拒 / 超时:服务没启动,或防火墙拦截。
268
337
 
@@ -279,11 +348,11 @@ yotta-memory remember FACT 主题 内容 # 智能体落盘
279
348
  ## 8. 安全与边界
280
349
 
281
350
  - token 等同密码:只给需要接入的智能体,别外传。
282
- - 元忆不做加密:PREF / BOUND / COMMIT 私密记忆的隔离是「权限边界」机制(谁该读由 scope/owner 决定),属于纪律层保护,不是机密数据保护层。
351
+ - 私密区机制级加密(v0.7 起):PREF / BOUND / COMMIT 私密记忆默认落盘为密文(AES-256-GCM 信封加密),任何没有对应 owner 密钥的 AI 即使读到密文文件也解不开;隔离 = 权限边界(scope/owner)+ 机制层机密保护。用户是数据所有者,经 `yotta-memory view` 口令解锁可看全部。
283
352
  - 记忆读写一律走 CLI / MCP;禁止用 shell(`Get-ChildItem` / `cat` / `ls` / `type` 等)直接读改记忆库目录下的文件——否则会绕过 scope/owner 权限边界。
284
353
  - 管理动作(init / config / token / lan / serve)不通过 MCP 暴露,远程只能读写记忆,不能改配置、不能管 token。
285
354
  - `--no-auth` 会关闭鉴权,仅限可信内网使用。
286
- - 数据主权在用户:所有数据都是本地明文文件,随时可看、可改、可删。
355
+ - 数据主权在用户:公共 FACT 明文、随时可看可改可删;私密区加密,用户经 `yotta-memory view` 口令解锁后同样可看、可改、可删、可导出。
287
356
  - 「记忆守则」内置底线:陪伴不操控 / 理解不越界(不贴标签)/ 诚实不伪装 / 不降格;数据安全(被遗忘权 = `forget`);宿主隔离(只写本记忆库,不读写宿主 AI 自身 memory / 配置 / 系统文件)。
288
357
 
289
358
  **确实需要读取其它智能体的私密记忆时(三种授权方式,满足任一即可):**
@@ -292,4 +361,4 @@ yotta-memory remember FACT 主题 内容 # 智能体落盘
292
361
  2. identity=user:以 `--agent user` / `--owner user` / 环境变量 `YOTTA_AGENT_ID=user` 读取;
293
362
  3. 显式放行 `--unsafe`:用户明确同意时使用。
294
363
 
295
- **协作纪律**:FACT 写入公共区共享;PREF / BOUND / COMMIT 只写自己的私密区;不主动读取其它智能体的私密记忆。
364
+ **协作纪律**:FACT 写入公共区共享;PREF / BOUND / COMMIT 只写自己的私密区;不主动读取其它智能体的私密记忆。