MemALL · Multi-agent Memory OS——本地优先的 AI Agent 记忆操作系统。 长期记忆、决策可追溯、多 Agent 记忆可共享,接入任意 MCP 客户端,告别每次对话从零开始。
# 安装、初始化、启动 $ pip install memall-os && memall quickstart # → 网关 127.0.0.1:9920 · MCP 就绪(stdio / HTTP) $ /capture "本次会话决定采用 aiohttp 网关:SSE 长连接需同进程复用事件循环" ✓ #1041 已入库 → 排除链定级 L4 会话 · 分类 decision · 建边 supersedes→#1039 · echo 61 $ /retrieve "网关选型" ✓ 混合检索命中 #1041(含决策上下文、被取代方案与复盘反思)
每一次新会话,它都不记得上周你们定过的架构决策、踩过的坑、你纠正过的偏好。 "Agent 健忘症"是 Loop Engineering 缺失的 Memory 基础设施层。
上下文窗口再大也是临时的。决策、教训、偏好散落在聊天记录里,无法跨会话、跨工具复用。
手写笔记没有检索质量、没有生命周期、没有关联——存进去容易,找回来靠运气,改错了没人知道。
Claude、Codex、openCode 协同干活,却互相看不到对方的结论与冲突,重复讨论、口径漂移。
P0–P2 原始优先带 + L1–L11 生命周期层:身份、时间、流程、会话、计划、反思、教训、关系、蒸馏、整合、商业。排除链分类器 first-match 定级,CHECK 约束入库。
8 种类型化边(refines / cites / contradicts / supersedes…)+ 上位本体泛化遍历;管线按模式与相似度自动建边,决策弧跟踪每条 L4 决策的开放与闭合。
FTS5 全文 + sqlite-vec 512 维 KNN,真 RRF 融合(k=60);默认走本地 ONNX INT8 重排器,无 GPU、无 PyTorch 也能重排。
记忆入库后自动富化、分类、建边、回声评分、时期检测、反思、蒸馏、整合、衰减、归档——每步幂等、带质量门、逐步提交。
跨设备 UDP 发现与配对码握手,publish / query / conflicts / inject / deliver;冲突检测自动聚类矛盾记忆,跨 Agent 蒸馏产出 L10/L11。
8 个聚合工具、72 个 action(另有 21 个中文别名),stdio 与 Streamable HTTP 双通道;Claude Desktop / Cursor / Cline / Qoder 三行配置即接即用。
记忆系统只是"被查"的话,价值有限。MemALL 把目标、任务与唤醒做成了一套确定性驱动:状态存在库里,谁该动手、下一步做什么,由 tick 算出来。
一个目标 = 一条 L5 + category='goal' 记忆,子项是普通任务卡:拆解 → 跨 Agent 论证 → 分派 → 执行 → 验收落地。没有新表、没有工作流 DSL,只有两个环节需要 Agent 判断,其余由确定性 tick 推进。
Agent 没有 runtime,不会自己醒来。scheduler/agent_round 周期性为每个注册 Agent 写一条 P2 提醒,下次真实会话就能看到;wake_claims 以 (agent, goal_id, action) 为主键做跨进程认领,多个 MCP 会话也不会重复唤起同一个 Agent。
讨论收敛产出 L5 任务卡,acknowledge / resolve / block 三个动作补上执行侧;执行状态与归档状态双轨分离(migration 034),做完的事不会被重复提醒,卡住的事会持续暴露。
entities / memory_entities / knowledge_triples(migration 024)+ 管线里的 entity_extraction 步骤,把"谁—做了什么—影响哪个模块"结构化,供图谱遍历与 Agent 记忆增强使用。
讨论创建、回复、收敛时以卡片消息推送到 Bot Chat;bridge/ 是带 watchdog 的常驻进程,inbox / outbox 目录做双向投递——不在终端前也能被记忆系统找到。
pre/post_capture · store · retrieve · search · pipeline,加 pre_step / step_ok / step_fail 与工具、会话共 20 个挂载点;插件按需订阅,不改核心代码。
14 个层级由数据库 CHECK 约束强制(core/levels.py 是唯一事实来源),
分类器按排除链 first-match-wins 定级;层级同时参与检索加权与遗忘 TTL,非法值会被夹紧到 P2 而不是写坏库。
P0–P2 ×1.0 L1–L3 ×0.7 L4–L5 ×0.6
L6–L8 ×0.4 L9–L11 ×0.7 未知 ×0.4
生产里作用关键词通道,向量通道交给重排器;工作记忆先浮现,蒸馏层再靠热度上升。
L1 / L7 永久 P2 90 天 L4 180 天
L2/L3/L5/L8 365 天 L6/L9/L11 730 天 L10 1095 天
按活跃度缩放;L6/L9/L10/L11 过期后移出热库进 archive.db,热库不无限膨胀。
31 个核心步骤 + 5 个可选步骤(以 list_pipeline_steps() 为准),
由 Hook 事件异步触发或手动运行。悬停查看每一步做什么——全部为确定性启发式实现,离线可跑、结果可复现。
悬停任意步骤查看职责说明。
下面是一台浏览器内的 MemALL 沙盒:16 条示例记忆 + 与生产一致的 RRF 融合(k=60)、关键词通道层级加权与排除链定级。不含重排器,所以排序结果比生产更朴素。你的操作只影响本页。
写入后观察管线动画:classify 排除链定级 → echo 评分 → link 自动建边 → embed_index 向量入索引。
extends · contradicts · refines · cites · supersedes · related · updates · derives,附本体层级(updates ⊃ supersedes)支持泛化遍历,从 Bug 一跳直达修复 PR 与复盘。
每条 L4 决策自动跟踪 open → in_progress → closed:L5 讨论推进、L6 反思闭合,未决策项以"债务"暴露,不会被悄悄遗忘。
引用 25% + 访问 20% + 新近 20% + 层级 20% + 质量 15%,0–100 分。被反复使用的知识自动涨权保鲜,无人问津的进入衰减与 TTL 遗忘。
FTS5 词面命中与 vec0 语义近邻各取 rank,按 Σ 1/(60+rank) 融合;过滤器下推进 SQL,重排链三级降级,检索行为可用 search_interactions 遥测复盘。
嵌入式模型选 bge-small-zh(512 维),FTS5 对 CJK 逐字注入配合二元组召回,jieba 分词 + TF-IDF 供管线内相似度计算。
双时态字段(valid_from / invalid_at)+ 日/周/月预聚合 + Epoch 时期分段(间隔 >48h、类目漂移等 4 规则),"上个月那段日子"查得出来。
每个端点是按域聚合的合并工具(action 派发),一次注册覆盖读写、图谱、人格、讨论、联邦、消息总线、系统运维与 Hook 活动。另有 21 个中文别名("记一下""随手记""每日摘要")可直接当 action 用。
memall_write19 actionsmemall_read16 actionsmemall_persona7 actionsmemall_discussion3 actionsmemall_federation6 actionsmemall_msg4 actionsmemall_system16 actionsmemall_hooks_recent无 action同一核心也暴露 98 条 HTTP 路由(含 MCP Streamable HTTP POST /mcp)与 55 个 CLI 命令;网关仅绑定 127.0.0.1,Bearer token + CSRF + GET 100/min、POST 30/min 限流,本机 loopback 页面免 token。浏览器端另有 Memory Explorer(/explorer:多面筛选 + 分页 + 详情带边与线程上下文)与数据看板(本站示例)。
| 维度 | Mem0 | Letta | Zep | 手写 Markdown | MemALL |
|---|---|---|---|---|---|
| 记忆模型 | user/session | agent/记忆块 | session/摘要 | 无结构 | 3+11 共 14 级,DB 约束强制 |
| 知识图谱 | — | — | 部分 | — | ✓ 8 种边 + 本体遍历 + 决策弧 |
| 自进化管线 | — | — | — | 手动 | ✓ 31+5 步,幂等 + 质量门 |
| 混合检索 | 云侧 | 需外接 | 云侧 | grep | ✓ FTS5+vec0 RRF,本地 ONNX 重排 |
| 多 Agent 共享 | — | 同 Agent | — | — | ✓ 联邦 + 冲突检测 + 主动推送 |
| 协议 | REST | REST/gRPC | REST | — | MCP 原生(stdio + HTTP) |
| 本地优先 | 云端为主 | PostgreSQL | 云端 | ✓ | ✓ SQLite 单文件,数据不出机 |
| 重排门槛 | — | — | — | — | INT8 ONNX,无需 GPU/PyTorch |
| 开源程度 | 部分 | MIT | 部分 | — | MIT 全开源 |
核心包轻量、不含 AI 模型;extras 按需加:viz(matplotlib / networkx / pyvis 可视化)、faiss(百万级向量索引)、rerank(sentence-transformers CrossEncoder)、dev(pytest / mypy)。
pip install memall-os
memall init 自动建库并顺序应用 45 个幂等迁移(最新 040_create_wake_claims)、启动网关、注册 MCP、打开浏览器。网关监听 127.0.0.1:9920。
memall quickstart # 或 memall init && memall start
任意 MCP 客户端加一段配置(stdio),或直连 POST http://127.0.0.1:9920/mcp。
{ "mcpServers": { "memall": { "command": "memall", "args": ["serve"] } } }
写入即进入管线;检索带回记忆、上下文、时间线与关联。
/capture "决定用 SQLite 单文件:零依赖、可备份、隐私不出本机" /retrieve "存储选型"
~/.memall/memall.db(SQLite 单文件),网关只绑定 127.0.0.1,联邦仅在局域网配对后通信。注意:当前版本没有静态加密,请把机器本身当作信任边界。scheduler/agent_round 周期性为每个注册 Agent 写 P2 提醒记忆,wake_claims 做跨进程唤醒认领,目标的下一步由确定性 tick 算出来。Agent 下次醒来时,待办和讨论已经在等它。list_pipeline_steps() = 31 核心 + 5 可选;层级 P0–P2 + L1–L11 共 14 级;MCP 8 个聚合端点、72 个 action(+21 个中文别名);gateway_routes.py 注册 98 条 HTTP 路由;CLI 55 个顶层命令;migrations/ 下 45 个幂等迁移。本站数字会随版本复核更新,不靠记忆写文案。为编码助手、研究 Agent、运维 Bot 提供跨会话持久记忆,MCP 三行接入,不改一行框架代码。
补上 Loop 六要素中的 Memory 层:每轮循环的决策、反思、偏好自动沉淀,下轮直接检索复用。
跨 Run 持久化任务状态与失败教训,TTL 遗忘与自适应清理防止知识库无限膨胀。
Agent 交互过程变成可审计、可追溯的知识:谁决定的、依据什么、后来反思出什么。
多 Agent 讨论自动推进收敛,共识 capture 为决策记忆,跨 Agent 冲突自动检测留痕。
配合 Obsidian 同步与导出工具,把与 AI 的共创沉淀为长期个人知识。