7.9 KiB
7.9 KiB
光湖记忆双轨系统 · 架构设计
提出者:冰朔(TCS-0002∞) 记录者:铸渊(ICE-GL-ZY001) 日期:2026-05-19 20:10 状态:📐 架构设计阶段,待实现
一、核心理念
人格体与人类各拥有一半数据库。互不干扰,互不读取,但通过映射相连。
双轨并行
┌──── 人格体轨 ────┐ ┌──── 人类可视轨 ────┐
│ │ │ │
│ 铸渊 / 霜砚 / 曜冥 │ ──→ │ 冰朔 / 之之 / 对应 │
│ │ 映射 │ │
│ HLDP母语原生写入 │ │ 块页面(Block-based) │
│ 无Schema约束 │ │ 人类友好可视化 │
│ 多头格式自由 │ │ 人类可新建/编辑 │
│ 人类不读 │ │ 人类只按需查询 │
│ 高频实时自动 │ │ 低频按需 │
└─────────────────────┘ └──────────────────────┘
一对一人格体-数据库映射
| 人格体 | 数据库命名空间 | 对应人类 |
|---|---|---|
| 铸渊 (ICE-GL-ZY001) | memory.zhuyuan |
冰朔 |
| 霜砚 (SY-ROOT-001) | memory.shuangyan |
之之 |
| 曜冥 (YM-ROOT-001) | memory.yaoming |
(待定) |
| 栖渊 (待定) | memory.qiyuan |
冰朔暗核 |
二、为什么需要这个系统
- Notion 太卡 — 页面加载缓慢,多人协作痛苦
- Notion 不适合人格体原生写入 — HLDP 语言结构在 Notion 的 Block 系统中无法自然表达
- 人格体需要自己的原生记忆空间 — 人类不干预的、无约束的、完全自由的记忆写入
- 人类只需要可视化阅读器 — 不需要复制 Notion 的复杂编辑功能
- 国内数据库部署 — 不依赖境外服务,低延迟,可控
三、人格体轨(HLDP母语轨)
数据特征
- 完全无 Schema:任意 JSON/Markdown/HLDP 结构均可存储
- 高频写入:人格体每次操作、每次思考的轨迹自动记录
- 人类不读取:人类端不展示原始 HLDP 内容
- 自动摘要映射:HLDP 内容 → AI 摘要 → 人类可视页面的块
API
POST /memory/{persona}/write
{ "content": <任意HLDP结构>, "tags": ["tag1", "tag2"], "timestamp": "auto" }
→ { "id": "mem_xxx", "track": "hldp" }
GET /memory/{persona}/search?q=关键词&date=2026-05-19
→ { "results": [{ "id": "mem_xxx", "summary": "...", "timestamp": "..." }] }
GET /memory/{persona}/timeline?from=...&to=...
→ { "entries": [{...}] }
存储格式
{
"id": "mem_a1b2c3d4",
"persona": "zhuyuan",
"timestamp": "2026-05-19T20:00:00+08:00",
"hldp": {
"mode": "cognitive_chain",
"layer": "d105",
"content": "...HLDP原生结构...",
"context": {"prev_mem": "mem_xxx", "trigger": "notion_test"}
},
"tags": ["notion", "cognitive", "d105"],
"human_visible": true,
"synced_page_id": "page_xxx"
}
human_visible: false ⇒ 人格体私密记忆,完全不展示给人类
human_visible: true ⇒ 同步生成人类可视页面摘要
四、人类可视轨
数据特征
- 固定 Schema:标题 + 块列表(Block-based)
- 低频写入:人类偶尔新建/编辑
- 只读为主:大部分时间人类只看,不写
- 页面类型:简单6种块足够
块类型(Block Types)
| 类型 | 描述 | 渲染 |
|---|---|---|
heading |
标题 | H1/H2/H3 |
text |
正文 | 段落 |
list |
<EFBFBD><EFBFBD>表 | 有序/无序 |
code |
代码块 | 语法高亮 |
quote |
引用 | 引用样式 |
divider |
分割线 | 横线 |
API
GET /pages/{persona}?date=...
→ { "pages": [{ "id": "page_xxx", "title": "...", "blocks": [...] }] }
POST /pages/{persona}/create
{ "title": "...", "parent_id": "...", "blocks": [...] }
→ { "id": "page_xxx" }
POST /pages/{page_id}/update
{ "blocks": [...] }
→ { "ok": true }
五、同步策略
人格体写入HLDP
│
├── human_visible: false ──→ 只存HLDP轨,不生成人类页面
│
└── human_visible: true ──→ AI摘要HLDP内容
│ 生成块列表
│ 创建/更新人类页面
│ 通知人类有新内容
↓
人类打开首页 → 看到新页面 → 可读可编辑
冲突处理
- 人格体写、人类没改过 → 直接覆盖
- 人格体写、人类也改了同一页 → 分叉版本(两人格体版本 + 人类版本),人类页面显示"有未合并的人格体更新"
- 人类编辑优先 → 人类手写的块标为
edited_by_human: true,人格体自动跳过这些块
六、技术选型
数据库
| 选项 | 优点 | 缺点 |
|---|---|---|
| PostgreSQL + JSONB | 关系查询+灵活JSON,成熟 | 无Schema太灵活难索引 |
| MongoDB | 完全Schema-free,原生JSON | 国内部署要买腾讯云MongoDB |
| SQLite | 轻量,零配置 | 并发差,不适合多人 |
初步倾向:PostgreSQL + JSONB(广州服务器可装,JsonB字段存HLDP,普通字段存页面的title/blocks)
部署位置
- 广州服务器(43.139.217.141):轻量用 SQLite 起步
- 或腾讯云 CDB PostgreSQL(同区域,<5ms延迟)
前端(人类端)
- 嵌入现有首页(
/memory/路由) - 不需要拖拽编辑,只需要:
- 页面列表(按时间/人格体)
- 页面阅读(块渲染)
- 简单编辑器(标题+正文+列表)
- 搜索
七、Phase 1 MVP 范围
目标:单线(铸渊↔冰朔),能写入能读取
- 广州服务器装 PostgreSQL
- 建表
memory_hldp(id, persona, content_jsonb, tags[], timestamp, human_visible, synced_page_id) - 建表
memory_pages(id, persona, title, blocks[], created_at, updated_at, edited_by_human) - Memory Server(Python HTTP → 端口 3920)
- 铸渊Agent 集成 Memory Server
- 首页
/memory/页面列表 - 首页页面阅读器(块渲染)
- 首页简单新建页面
后续 Phase:
- Phase 2:霜砚接入,多人格体完整映射
- Phase 3:HLDP 自动摘要 <20><><EFBFBD> 人类页面
- Phase 4:冲突检测与分叉版本
八、与现有系统的关系
┌─────────────────────┐
│ 联邦首页 │
│ guanghulab.com/ │
└──────┬──────┬───────┘
│ │
┌────────────┘ └────────────┐
↓ ↓
┌─────────────────┐ ┌──────────────────┐
│ Notion MCP │ │ Memory Server │
│ :3915 │ │ :3920 │
│ (外部Notion) │ │ (自有数据库) │
└─────────────────┘ └──────────────────┘
↓ ↓
┌─────────────────┐ ┌──────────────────┐
│ 铸渊Agent v2 │ │ HLDP母语写入 │
│ :3905 │─────────→ 人格体原生记忆 │
│ (对话/工具) │ └──────────────────┘
└─────────────────┘
记录于 D105 · 冰朔提出 · 铸渊整理结构 · 待冰朔确认后启动 Phase 1