Replace EverMemOS with EverOS backend
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
# 通用 Memory Gateway 方案与 POC 骨架
|
||||
|
||||
本文基于当前仓库的轻量 FastAPI + MCP + OpenViking + Obsidian 能力扩展,不把系统设计成重平台。第一阶段目标是先跑通多用户隔离、namespace routing、记忆检索、写入、session commit 和人工 review 草稿,后续再替换持久化、向量索引和 EverMemOS worker。
|
||||
本文基于当前仓库的轻量 FastAPI + MCP + OpenViking + Obsidian 能力扩展,不把系统设计成重平台。第一阶段目标是先跑通多用户隔离、namespace routing、记忆检索、写入、session commit 和人工 review 草稿,后续再替换持久化、向量索引和 EverOS worker。
|
||||
|
||||
## A. 总体架构图
|
||||
|
||||
@ -43,7 +43,7 @@ flowchart TB
|
||||
OVWorkspace[workspace]
|
||||
end
|
||||
|
||||
subgraph EverMemOS["EverMemOS"]
|
||||
subgraph EverOS["EverOS"]
|
||||
LTE[long-term extraction]
|
||||
Consolidation[consolidation]
|
||||
Decay[decay]
|
||||
@ -79,7 +79,7 @@ flowchart TB
|
||||
Retrieval --> Skills
|
||||
Writeback --> Skills
|
||||
Skills --> OpenViking
|
||||
Skills --> EverMemOS
|
||||
Skills --> EverOS
|
||||
Skills --> Obsidian
|
||||
|
||||
Gateway --> DB
|
||||
@ -88,8 +88,8 @@ flowchart TB
|
||||
OpenViking --> DB
|
||||
OpenViking --> Vector
|
||||
Obsidian --> Files
|
||||
EverMemOS --> DB
|
||||
EverMemOS --> Vector
|
||||
EverOS --> DB
|
||||
EverOS --> Vector
|
||||
```
|
||||
|
||||
## B. 核心数据模型
|
||||
@ -510,13 +510,13 @@ Response:
|
||||
| Skill | 功能 | 输入 | 输出 | 触发时机 | 组件 | 写长期记忆 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| `ingest_skill` | 标准化对话、文件、任务事件 | raw text/file/events | normalized payload | agent 写入 episode 前 | Gateway, file storage | 否 |
|
||||
| `extract_memory_skill` | 从 episode/session 抽取候选记忆 | episode/session content | memory candidates | session commit / worker 定时 | LLM, EverMemOS | 否 |
|
||||
| `extract_memory_skill` | 从 episode/session 抽取候选记忆 | episode/session content | memory candidates | session commit / worker 定时 | LLM, EverOS | 否 |
|
||||
| `classify_memory_skill` | 判断 memory_type、visibility、namespace | candidate memory | classification | 写入前 | ACL, namespace router | 否 |
|
||||
| `retrieve_context_skill` | 聚合用户、agent、workspace 上下文 | query + context ids | ranked contexts | agent 调用前 | OpenViking, vector index | 否 |
|
||||
| `commit_memory_skill` | 写入长期记忆 | MemoryRecord | stored record | 人工确认或 commit 通过 | DB, OpenViking | 是 |
|
||||
| `summarize_episode_skill` | 压缩 episode | episode content | summary | session commit | LLM | 否 |
|
||||
| `merge_memory_skill` | 合并重复或相近记忆 | memory ids | merged memory | EverMemOS 整理 | DB, vector index | 是 |
|
||||
| `prune_memory_skill` | 衰减、归档、删除低质记忆 | policy + memory ids | archived/deleted list | 定时 worker | EverMemOS | 是 |
|
||||
| `merge_memory_skill` | 合并重复或相近记忆 | memory ids | merged memory | EverOS 整理 | DB, vector index | 是 |
|
||||
| `prune_memory_skill` | 衰减、归档、删除低质记忆 | policy + memory ids | archived/deleted list | 定时 worker | EverOS | 是 |
|
||||
| `export_to_obsidian_skill` | 生成 Obsidian review draft | high-value memory | markdown draft | 高价值或需人工确认 | Obsidian | 否 |
|
||||
| `import_from_obsidian_skill` | 从人工维护笔记导入记忆 | markdown path | MemoryRecord | vault sync | Obsidian, OpenViking | 是 |
|
||||
|
||||
@ -551,7 +551,7 @@ obsidian-vault/
|
||||
|
||||
- 人工可维护 profile、preferences、长期总结。
|
||||
- 高价值 workspace 知识、项目决策、复用经验。
|
||||
- EverMemOS 标记为 `needs_review` 的长期记忆草稿。
|
||||
- EverOS 标记为 `needs_review` 的长期记忆草稿。
|
||||
|
||||
不进入 Obsidian 的内容:
|
||||
|
||||
@ -571,7 +571,7 @@ obsidian-vault/
|
||||
#memory/review
|
||||
#memory/conflict
|
||||
#memory/deprecated
|
||||
#source/evermemos
|
||||
#source/everos
|
||||
#source/manual
|
||||
#visibility/private
|
||||
#visibility/workspace-shared
|
||||
@ -605,10 +605,10 @@ viking://skills/memory-gateway/{skill_name}
|
||||
同步:
|
||||
|
||||
- Obsidian accepted note 通过 `import_from_obsidian_skill` 写回 Gateway,再同步 OpenViking resource。
|
||||
- EverMemOS consolidation 后写入 `user/{user_id}/long_term` 或 `workspace/{workspace_id}/shared`。
|
||||
- EverOS consolidation 后写入 `user/{user_id}/long_term` 或 `workspace/{workspace_id}/shared`。
|
||||
- Gateway 保存 `source_ref`,避免 OpenViking 与 Obsidian 互相重复导入。
|
||||
|
||||
## H. EverMemOS 设计
|
||||
## H. EverOS 设计
|
||||
|
||||
输入来源:
|
||||
|
||||
@ -662,10 +662,10 @@ memory-gateway/
|
||||
│ │ └── import_from_obsidian_skill.py
|
||||
│ ├── adapters/
|
||||
│ │ ├── openviking.py
|
||||
│ │ ├── evermemos.py
|
||||
│ │ ├── everos.py
|
||||
│ │ └── obsidian.py
|
||||
│ └── workers/
|
||||
│ └── evermemos_worker.py
|
||||
│ └── everos_worker.py
|
||||
├── obsidian-vault/
|
||||
├── integrations/
|
||||
│ ├── nanobot/
|
||||
@ -692,7 +692,7 @@ memory-gateway/
|
||||
|
||||
第三周:
|
||||
|
||||
- 加 EverMemOS worker 原型:session commit、candidate extraction、dedup、merge。
|
||||
- 加 EverOS worker 原型:session commit、candidate extraction、dedup、merge。
|
||||
- 增加 feedback 流程:incorrect、duplicate、outdated 影响 prune/merge。
|
||||
- 生成 Obsidian review draft,而不是直接写入最终知识库。
|
||||
|
||||
@ -728,7 +728,7 @@ POC 成功指标:
|
||||
- 存储使用 SQLite metadata + 本地文件存 object;当前代码先用 in-memory repo 验证接口。
|
||||
- 搜索先用 OpenViking search + 简单 lexical fallback;向量索引第二阶段引入。
|
||||
- Obsidian 只保存人工可读的高价值长期记忆和 review draft。
|
||||
- EverMemOS 第一阶段不做独立大系统,只做 worker 模块:extract、dedup、merge、prune、profile update。
|
||||
- EverOS 第一阶段不做独立大系统,只做 worker 模块:extract、dedup、merge、prune、profile update。
|
||||
|
||||
第一阶段实现 API:
|
||||
|
||||
@ -757,11 +757,11 @@ POC 成功指标:
|
||||
- `merge_memory_skill`
|
||||
- `prune_memory_skill`
|
||||
- `import_from_obsidian_skill`
|
||||
- 更完整的 EverMemOS consolidation 和 profile evolution。
|
||||
- 更完整的 EverOS consolidation 和 profile evolution。
|
||||
|
||||
角色分工:
|
||||
|
||||
- Obsidian 第一阶段:review draft、人类确认 profile/长期知识。第二阶段:双向同步。
|
||||
- OpenViking 第一阶段:统一 context/resource 检索入口。第二阶段:承载多 namespace context filesystem 和 skill registry。
|
||||
- EverMemOS 第一阶段:session commit worker。第二阶段:长期记忆治理、衰减、冲突检测、profile evolution。
|
||||
- EverOS 第一阶段:session commit worker。第二阶段:长期记忆治理、衰减、冲突检测、profile evolution。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user