-
Notifications
You must be signed in to change notification settings - Fork 2
Memory Research
AceGuru-mjh edited this page Oct 1, 2026
·
4 revisions
📑 本页目录
对标 8 个业界项目(MemGPT/Letta、Mem0、A-MEM、Zep/Graphiti、Voyager、Claude Code、OpenHands、SWE-agent), 逐条映射到
platform/cs-mem与core/agent-engine的真实代码符号。 来源:docs/memory-and-workflow-research.md、docs/cs-mem-gaps-spec.md。
PrivilegeManager.getUiTree()(无障碍三通道 Root→Shizuku→普通)
→ UiTreePruner.prune()(节点指纹 = SHA-256(cls|res|text|role|parent))
→ DifferentialIngestor.computeDelta()(只存状态跃迁,95%+ 压缩)
→ MemoryWriterActor(单协程串行 + 有界 Channel(256) 背压 + 批量 + 紧急刷盘)
→ MemoryGraphDatabase(Room v3:nodes / edges / episodes / fsm_macros / migration_map)
六大子系统:TraceDistiller(Trace → DFA 宏)、BypassExecutionEngine(0 token 回放)、
EntropyManager(衰减 + 坍缩 + 晶化)、DreamRenderer(息屏+充电+WiFi)、
TopologyMigrator(别名桥)、MemoryImmuneSystem(免疫与隔离)。
| 对象 | 已对齐(✓) | 刻意取舍(✗ 及理由) |
|---|---|---|
| MemGPT / Letta | 分层记忆 ✓(ConversationMemory 工作记忆 ↔ cs-mem 长期记忆,HybridCompressor = "换页");睡眠整理 ✓(DreamRenderer) |
记忆块自编辑 ✗:cs-mem 写入全走确定性管线,不允许 LLM 改写长期记忆 —— 理由:记忆驱动 0-token FSM 回放,错误记忆代价极高 |
| Mem0 | 增量决策 ✓(DifferentialIngestor 的 ADD / lastSeen 更新 / 移除边即"结构化版"Mem0);异步写入 ✓(MemoryWriterActor 额外解决 Android Room "Database is locked") |
冲突消解 ✗:语义冲突靠跨版本迁移而非 LLM 仲裁 |
| A-MEM(arXiv:2502.12110) | 链接生成 ✓(空间边 generateSpatialEdges + 因果边 compileFSM);记忆演化 ✓(受限,TopologyMigrator 写 migration_map) |
演化的触发面 ✗:只在"梦境"批量做 —— 移动端电量预算的节流取舍 |
| Zep / Graphiti | 事务时间 ✓(Episode startedAt/finishedAt、节点 lastSeen、宏 lastExecutedAt) |
有效时间 ✗(无 invalid_at,低能记忆物理删除)。这是与 Zep 的最大理念差异:本项目遗忘换体积,Zep 永不遗忘换审计
|
| Voyager | 技能库 ✓(FSMMacro = UI 自动化版技能);自动验证 ✓ 三处(蒸馏期 extractAnchors、回放期每步校验 toState、保鲜期梦境抽验);永久技能 ✓(晶化阈值能量≥8、成功≥10 次、成功率≥90%) |
嵌入检索 ✗:宏召回仅指纹精确匹配 + 别名桥 |
| Claude Code | W1 压缩对齐 ✓(编排器注入同一 ContextCompressor,水位 128k×80%);W5 工具白名单 ✓(AgentConfig.enabledToolIds) |
— |
| SWE-agent ACI | W2 历史收窄 ✓(BatchExecutionEngine.truncateForHistory → ToolOutputTruncator.smartTruncate:JSON 保头尾 / 列表保首尾 / 代码保头,事件流仍携带完整输出,仅对话历史收窄);护栏 ✓(CommandPolicy / TerminalInputController / TimeoutController / LoopDetector / PromptDetector);观察引擎 ✓ |
— |
| OpenHands | 事件流 ✓(TerminalEventBus / TerminalEventLog / TaskLifecycleEvent / AgentEvent);沙箱 ✓ 且更进一步(PRoot 用户态 Linux 沙箱);多模型路由 ✓(T72 ModelRoleRouter,图片走 VISION + 能力校验降级) |
— |
| # | 问题 | 修复 |
|---|---|---|
| W3 | 编排器把 LLM 正文整段缓存误当 ThinkingChunk
|
改为流式逐段 ResponseChunk;reasoningContent 透传 ThinkingChunk + ThinkingComplete 收尾 |
| W4 | OpenAI 并行工具调用流式分片:累加器键 id 优先导致首片键 call_1 与续片键 _idx_0 不一致 → 参数 JSON 被裁断 |
改为 index 优先(_idx_N,index < 0 回退 id) |
| # | 问题 | 修复 |
|---|---|---|
| M1 | 边 ID 用帧内自增 e_0, e_1… —— 帧 N 与 N+1 的 e_3 可能连不同节点 |
改 `UiTreePruner.stableEdgeId = SHA-256(源指纹 |
| M2 | 蒸馏参数与回放输入不纯 |
TraceDistiller.extractActionParams 提纯 + BypassExecutionEngine.extractInputText 三形态兼容 |
| M3 | 升级后旧宏召回不到 |
MemoryGraphStore.findMacrosViaMigration + 正向校验 resolveMigration(旧指纹) == 探测指纹(闭环缺口 #9) |
| M4 | 晶化未落库 | 新增 EdgeDao.crystallize / FSMMacroDao.crystallize(is_crystallized = 1,衰减/剪枝/删除三处跳过) |
取舍:不做完整 VF2 子图同构(计算重、易误匹配),改用轻量属性相似度;
迁移不改写旧指纹本身(指纹是 stable key,改了破坏去重与宏的初始/终止指纹),而是建 migration_map 做"指纹别名解析"。
| 特征 | 加分 |
|---|---|
resourceId 归一化(去包名前缀、转小写)相等 |
+0.5 |
textHint 包含/被包含 或 Levenshtein 相似度 > 0.8 |
+0.4 |
className 末级类名相等 |
+0.1 |
| 总分 ≥ 0.7 | 视为同胚映射 |
MigrationMapEntity(
id, oldFingerprint(唯一索引), newFingerprint,
matchScore: Float, fromVersion, toVersion, createdAt: Long
)接口:recordMigration(map) / resolveMigration(oldFingerprint): String? / getMigrationMaps()。
NodeEntity 增加 app_version 列(版本由 DreamRenderer / CsMemSessionManager 注入,Store 不依赖 PackageManager)。
- Room 升 v2 且旧库数据存活(非 destructive);
- 版本变化触发后
getMigrationMaps()非空且matchScore ≥ 0.7; - 同版本重复运行幂等(upsert 不产生重复映射);
-
DreamResult.migrationNotes含可读摘要(如"migrated 12 nodes app=com.x v1.2→v1.3")。
| 结论 | 内容 |
|---|---|
| 已对齐 | 分层记忆 + 异步写入 + 确定性回放 + 梦境巩固 + 免疫防御 + 沙箱运行时 + 事件流 + 观察引擎 |
| 差异化(调研对象无直接对应物) | ① 确定性 FSM 旁路 0-token 回放 ② 记忆中毒免疫系统 |
- 宏技能语义检索(Voyager 启发,嵌入索引);
- 记忆软删除与双时间线(Zep/Graphiti 启发:edges 加
invalid_at,pruneLowEnergy改软删); - 子代理扇出(Claude Code 启发);
- LLM 记忆仲裁(Mem0,受免疫白名单约束);
- Letta 式记忆块自编辑(远期;前置 = 免疫系统的 MLKit OCR 视觉比对)。
- cs-mem 认知记忆 · 记忆生命周期
- 路线图 · 深度文档索引
-
MCP 生态总览
新 - (沙箱 MCP · 官方 Hub · 逆向 Host · 门控语义)
- 终端运行时
- 终端 API 契约
- SDK 边界
- Termux 能力矩阵
- Ubuntu rootfs 供给
- Ubuntu 生命周期
- PRoot 二进制溯源
- VT100/ANSI 模拟器
- 终端性能
- 终端迁移
- 原生层 C++/JNI