v0.1.68 持续迭代 MIT 开源 Python ≥ 3.10 零云端依赖

让每个 Agent 都过目不忘

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(含决策上下文、被取代方案与复盘反思)
3+11级记忆生命周期
31+5管线步骤 自动运转
8MCP 工具 · 72 actions
512维本地向量 + RRF
55个 CLI 命令
45个迁移 · 98 条 HTTP 路由
为什么需要它

Agent 有智商,没有记忆

每一次新会话,它都不记得上周你们定过的架构决策、踩过的坑、你纠正过的偏好。 "Agent 健忘症"是 Loop Engineering 缺失的 Memory 基础设施层。

🧩

会话即失忆

上下文窗口再大也是临时的。决策、教训、偏好散落在聊天记录里,无法跨会话、跨工具复用。

📄

Markdown 记忆不够用

手写笔记没有检索质量、没有生命周期、没有关联——存进去容易,找回来靠运气,改错了没人知道。

🤝

多 Agent 各忘各的

Claude、Codex、openCode 协同干活,却互相看不到对方的结论与冲突,重复讨论、口径漂移。

核心能力

不只是存取,是一套记忆操作系统

🧠

14 级记忆生命周期

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 也能重排。

♻️

31 步自进化管线

记忆入库后自动富化、分类、建边、回声评分、时期检测、反思、蒸馏、整合、衰减、归档——每步幂等、带质量门、逐步提交。

🌐

多 Agent 联邦

跨设备 UDP 发现与配对码握手,publish / query / conflicts / inject / deliver;冲突检测自动聚类矛盾记忆,跨 Agent 蒸馏产出 L10/L11。

🔌

MCP 原生

8 个聚合工具、72 个 action(另有 21 个中文别名),stdio 与 Streamable HTTP 双通道;Claude Desktop / Cursor / Cline / Qoder 三行配置即接即用。

无人值守

Agent 不醒来,记忆也能往前推

记忆系统只是"被查"的话,价值有限。MemALL 把目标、任务与唤醒做成了一套确定性驱动:状态存在库里,谁该动手、下一步做什么,由 tick 算出来。

🎯

目标编排 goals

一个目标 = 一条 L5 + category='goal' 记忆,子项是普通任务卡:拆解 → 跨 Agent 论证 → 分派 → 执行 → 验收落地。没有新表、没有工作流 DSL,只有两个环节需要 Agent 判断,其余由确定性 tick 推进。

⏰

无人唤醒 wake_claims

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 记忆增强使用。

📨

飞书 / Lark 桥

讨论创建、回复、收敛时以卡片消息推送到 Bot Chat;bridge/ 是带 watchdog 的常驻进程,inbox / outbox 目录做双向投递——不在终端前也能被记忆系统找到。

🪝

20 个生命周期 Hook 点

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原始(优先带)"紧急:50 万行导入 OOM" · P0/P1/P2 由调用方给优先级
L1身份"我的角色是联合创始人,我熟悉 Python 与 SQLite"
L2时间"2026-08-02 部署完成:网关端口上线"
L3流程"第一步导出、第二步映射、最后校验边"
L4会话"本次会话决定:网关用 aiohttp,不用 FastAPI"
L5计划路线图为 L5;讨论收敛后自动生成的任务卡也是 L5
L6反思"做对了…做错了…下次应该…"(≥2 类标记 + ≥25 字才准入)
L7教训 / 偏好"我偏好中文优先、回复简短" · distill_l7 从 L6 抽教训
L8关系≥3 条边 + ≥50 字,或带 module_refs 时自动晋升
L9蒸馏"同 Agent 同类目 1.2 万会话 → 187 个知识节点"
L10整合同 Agent 跨 ≥2 类目的整合洞察
L11商业竞品、定价、护城河、GTM 等跨 Agent 领域情报

检索加权 _LEVEL_BOOST

P0–P2 ×1.0 L1–L3 ×0.7 L4–L5 ×0.6
L6–L8 ×0.4 L9–L11 ×0.7 未知 ×0.4

生产里作用关键词通道,向量通道交给重排器;工作记忆先浮现,蒸馏层再靠热度上升。

遗忘 TTL _LEVEL_TTL

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)、关键词通道层级加权与排除链定级。不含重排器,所以排序结果比生产更朴素。你的操作只影响本页。

🔎 hybrid_search

✍️ memall_write · capture

写入后观察管线动画:classify 排除链定级 → echo 评分 → link 自动建边 → embed_index 向量入索引。

知识图谱与检索

找得回,还要串得起

🛤️

8 种类型化边

extends · contradicts · refines · cites · supersedes · related · updates · derives,附本体层级(updates ⊃ supersedes)支持泛化遍历,从 Bug 一跳直达修复 PR 与复盘。

🎯

决策弧生命周期

每条 L4 决策自动跟踪 open → in_progress → closed:L5 讨论推进、L6 反思闭合,未决策项以"债务"暴露,不会被悄悄遗忘。

📈

回声权重 Echo

引用 25% + 访问 20% + 新近 20% + 层级 20% + 质量 15%,0–100 分。被反复使用的知识自动涨权保鲜,无人问津的进入衰减与 TTL 遗忘。

🧮

真 RRF 混合检索

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 规则),"上个月那段日子"查得出来。

接入面

8 个 MCP 工具,72 个 action

每个端点是按域聚合的合并工具(action 派发),一次注册覆盖读写、图谱、人格、讨论、联邦、消息总线、系统运维与 Hook 活动。另有 21 个中文别名("记一下""随手记""每日摘要")可直接当 action 用。

memall_write19 actions
  • capture · smart_store · store_batch
  • update · connect · forget · ops
  • task_claim/resolve/block · goal_*(6 个)
  • record_interaction · quick
memall_read16 actions
  • retrieve · hybrid_search · unified_search
  • vector_search · batch_search · nl_search · chat
  • traverse · timeline · trace · recap
  • fed_query · fed_conflicts · task_list · goal_status
memall_persona7 actions
  • persona · persona_profile
  • identity · ask
  • profile_preload · profile_search
  • foresight(前瞻"猜我下一步")
memall_discussion3 actions
  • create · respond
  • status(管线自动推进收敛)
memall_federation6 actions
  • query · publish · inject
  • extract · deliver
  • conflicts(矛盾记忆聚类)
memall_msg4 actions
  • send · inbox · ack · status
  • 走独立的 memall-bus 常驻进程
  • 载荷只带 memory_id 指针:L5 任务卡是唯一事实源,重复投递按指针幂等去重
memall_system16 actions
  • run_pipeline · distill · reflect · adaptive
  • gateway · hub_connect · hub_sync · db
  • session_start/end/summary · security
  • onboarding · index_rebuild · digest · hot
memall_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:多面筛选 + 分页 + 详情带边与线程上下文)与数据看板(本站示例)。

选型对比

和其他记忆方案比一比

维度Mem0LettaZep手写 MarkdownMemALL
记忆模型user/sessionagent/记忆块session/摘要无结构3+11 共 14 级,DB 约束强制
知识图谱——部分—✓ 8 种边 + 本体遍历 + 决策弧
自进化管线———手动✓ 31+5 步,幂等 + 质量门
混合检索云侧需外接云侧grep✓ FTS5+vec0 RRF,本地 ONNX 重排
多 Agent 共享—同 Agent——✓ 联邦 + 冲突检测 + 主动推送
协议RESTREST/gRPCREST—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

接入你的 Agent

任意 MCP 客户端加一段配置(stdio),或直连 POST http://127.0.0.1:9920/mcp。

{ "mcpServers": { "memall": { "command": "memall", "args": ["serve"] } } }

开始记忆

写入即进入管线;检索带回记忆、上下文、时间线与关联。

/capture "决定用 SQLite 单文件:零依赖、可备份、隐私不出本机"
/retrieve "存储选型"
FAQ

几个诚实的回答

数据存在哪里?会上传云端吗?
全部存在本地 ~/.memall/memall.db(SQLite 单文件),网关只绑定 127.0.0.1,联邦仅在局域网配对后通信。注意:当前版本没有静态加密,请把机器本身当作信任边界。
管线需要 LLM 或联网吗?
不需要。31 个核心步骤(+5 个可选)全部是确定性启发式(正则、SQL、Jaccard、TF-IDF),离线可跑、结果可复现。向量嵌入用本地小模型(bge-small-zh,512 维),重排默认本地 ONNX INT8,并有三级降级链;接大模型增强属于可选外挂。
Agent 不会主动调用工具,这套记忆不就闲置了?
这正是"无人值守"部分要解决的:scheduler/agent_round 周期性为每个注册 Agent 写 P2 提醒记忆,wake_claims 做跨进程唤醒认领,目标的下一步由确定性 tick 算出来。Agent 下次醒来时,待办和讨论已经在等它。
说好的"30 步管线""11 层",代码里到底是多少?
以运行时接口和源码为准(v0.1.68 逐项核对):list_pipeline_steps() = 31 核心 + 5 可选;层级 P0–P2 + L1–L11 共 14 级;MCP 8 个聚合端点、72 个 action(+21 个中文别名);gateway_routes.py 注册 98 条 HTTP 路由;CLI 55 个顶层命令;migrations/ 下 45 个幂等迁移。本站数字会随版本复核更新,不靠记忆写文案。
百万条记忆扛得住吗?
FTS5 与 vec0 都是索引化的;当前默认路径面向十万级优化,百万级建议启用 FAISS extra 并调低同步重排。仓库内有压测与基准脚本可复现。
和 Mem0 / Letta 怎么共存?
它们可作为上层框架保留,MemALL 只做记忆底座:通过 MCP 对任意 Agent 暴露同一份记忆。规划的 MemPort 工具将支持从它们一次性迁移。
什么规模算"够用"?
单 Agent 个人助手也值得装——一次 capture 换回的是以后每次检索的上下文;多 Agent 团队收益随共享记忆数近似线性增长。
适用场景

谁在用 MemALL

🤖

多 Agent 系统

为编码助手、研究 Agent、运维 Bot 提供跨会话持久记忆,MCP 三行接入,不改一行框架代码。

🔁

Loop Engineering

补上 Loop 六要素中的 Memory 层:每轮循环的决策、反思、偏好自动沉淀,下轮直接检索复用。

⚙️

长时自动化 / RPA

跨 Run 持久化任务状态与失败教训,TTL 遗忘与自适应清理防止知识库无限膨胀。

🗂️

企业知识资产

Agent 交互过程变成可审计、可追溯的知识:谁决定的、依据什么、后来反思出什么。

💬

Agent 协作决策

多 Agent 讨论自动推进收敛,共识 capture 为决策记忆,跨 Agent 冲突自动检测留痕。

🔬

个人第二大脑

配合 Obsidian 同步与导出工具,把与 AI 的共创沉淀为长期个人知识。