向量召回
Embedding 语义相似度召回,捕捉「说法不同但意思相同」的记忆。
RECALL四层记忆架构,知识图谱关联推理,六路混合检索。
端侧 AES-256-GCM 加密,零云端依赖——源码安装,本地运行,数据不上云。
m.add("用户说喜欢猫")
uuid a1f7c2e0… · 已加密落库
m.search("用户喜欢什么")
六路融合召回
print(result.chunks[0].content)
"用户说喜欢猫" · 相似度 0.93
一行 pip 安装,三行代码存取。本地运行,数据不上云,0.3 秒完成存储与检索。
# 1. 安装
$ git clone https://github.com/opok-ops/MindForge.git
$ cd MindForge && pip install -e .
# 2. 三行代码接入
from MindForge import MindForge
m = MindForge(db_path="./data/memory.db", encrypted=False)
m.add("用户说喜欢猫")
result = m.search("用户喜欢什么")
print(result.chunks[0].content) # 输出: 用户说喜欢猫
本地运行,数据不上云,0.3 秒完成存储与检索。
$ git clone https://github.com/opok-ops/MindForge.git
$ cd MindForge && pip install -e .
Successfully installed mindforge-memory-5.9.5
$ python
>>> from MindForge import MindForge
>>> m = MindForge(db_path="./data/memory.db")
>>> m.add("用户说喜欢猫")
'a1f7c2e0-…'
>>> result = m.search("用户喜欢什么")
>>> print(result.chunks[0].content)
用户说喜欢猫
$ MindForge add "偏好带类型提示的 Python 代码风格" \
--category preferences --importance HIGH
$ MindForge search "coding preferences"
$ MindForge consolidate
单一向量检索会漏掉关键词精确匹配,纯全文检索又抓不住语义。MindForge 把六条通路的结果融合后再精排,让「用户喜欢什么」也能召回「用户说喜欢猫」。
Embedding 语义相似度召回,捕捉「说法不同但意思相同」的记忆。
RECALLSQLite FTS5 倒排索引,精确关键词命中,术语与专名不丢失。
RECALL词频统计打分,补足短查询下的词权重信号。
RECALL编辑距离容错匹配,错别字与拼写变体照样召回。
RECALL同义词、上位词、缩写还原与拼写纠错,先把问题「问全」。
多特征融合精排模型,对候选集做语义相关性二次打分。
RERANK六条通路各自产出候选集与分数,融合层统一归并去重,保留各路的优势结果,避免单一检索策略的盲区。
Cross-Encoder 结合召回引擎的多因子评分,输出最终排序。
写这套系统的只有一个人。没有团队,没有融资——小顾一个人从第一行代码敲到 v5.9.5,每一行都是自己写的。
独立开发者 · GitHub @opok-ops · 2010-08-01
MindForge 是我一个人打磨的 AI Agent 终身记忆系统:四层记忆架构、知识图谱、六路混合检索、端侧 AES-256-GCM 加密、联邦网络,全部本地运行、数据不上云。没有名校背景,也没有大厂履历,每一行代码都是自己敲出来的。
从第一行代码到现在 v5.9.5,没有团队,没有融资,就一个人、一台电脑,一个版本一个版本往上堆。982 个测试用例全部通过,56 个 MCP 工具,15 个核心模块,GitHub Actions CI 全绿。学历不能定义一个人的上限,但代码可以证明一个人的态度。
项目进展与技术干货,抖音、小红书同步更新。有什么问题直接留言,我看到就会回。
Recall Engine 用多因子加权决定「哪条记忆此刻最该被想起」——覆盖得多不多、重不重要、常不常被访问、最近有没有用到。
模仿人类认知:信息先落在感官缓冲,被反复唤起的向上晋级,长期不用的自然衰减。遗忘不是缺陷,是让真正重要的记忆保持清晰的机制。
刚进入系统的原始输入,停留时间最短,未被强化即自然流失。
近期会话上下文,按 Ebbinghaus 曲线衰减,被反复访问则巩固升级。
通过巩固的持久记忆,进入知识图谱参与关联推理与多跳召回。
身份、偏好与不可动摇的事实,几乎不衰减,始终优先注入上下文。
未强化的记忆随时间快速衰减;经过巩固与重评估的记忆,保留率被反复拉回高位。
示意图,用于说明记忆生命周期的衰减与巩固机制,非实测数据。
从最底层的存取衰减,到人格画像、联邦共享与领域分析,MindForge 覆盖 Agent 记忆的完整生命周期。
四层级生命周期,Ebbinghaus 衰减、定期巩固、动态重评估,记忆会自己长大。
自动实体与关系提取,支持路径查找和关联推理召回,让 Agent 真正会联想。
多因子加权评分:覆盖率 40% / 重要度 20% / 访问频次 15% / 时间衰减 20% + 置顶加成。
重要度漂移分析,识别被低估与高估的记忆,并给出动态重评估建议。
Token 预算感知的上下文格式化,把该记的塞进 Prompt,不该记的别浪费额度。
按天情感分类、转换序列追踪与波动性评分,记住对话的情绪走向。
学习正式度、emoji 使用、详情层级与技术深度偏好,让回复对上用户的胃口。
多 Agent 之间的 P2P 记忆共享,配合信任等级与访问策略控制谁能看到什么。
四级隔离 PUBLIC / INTERNAL / PRIVATE / STRICT,AES-256-GCM + PBKDF2-SHA256 派生。
类型趋势、追剧粘性评分、节奏分析、角色关系与互动矩阵,一套垂直领域分析工具。
三层路由:规则正则 → 关键词加权 → LLM 兜底,覆盖 10+ 类业务意图。
反义词对、属性值不一致、时间线冲突三类检测,并施加自动衰减策略。
从记忆聚类中抽取槽位、步骤与触发词,沉淀成可复用的技能模板。
查询扩展 + Cross-Encoder 多特征融合重排,六路检索的最终形态。
滑动窗口主题聚类、焦点漂移检测与增强查询生成,让长对话不跑偏。
打造属于全球每个人的 AI 记忆知识库——打开浏览器就能连接、检索与沉淀你的长期记忆,跨设备同步、与任意 Agent 协作。当前仍为本地优先的桌面 / CLI / MCP 体验,网页端敬请期待。
多模型接入 · 深度思考 · 六路混合检索
四层记忆架构 · 跨设备同步 · 云端可追溯
MCP 工具 · API · 与任意 Agent 即插即用
让每一次思考都被记住,让灵感持续落地
网页端为规划中的产品形态,计划于 2027 年推出;当前版本坚持 100% 本地加密、数据不上云。「预览版」不内置任何示例数据——在本机运行 MindForge REST API 后,页面展示的就是你自己的真实记忆库;未连接时只显示接入引导;具体功能、上线时间与云服务形态以正式发布为准。
v6.0.0 的两个旗舰方向已经开工:多 Agent 协作与记忆引擎预览。以下能力尚未发布,接口与行为在开发期可能调整。
Multi-Agent Orchestration
让多个 Agent 共用同一份记忆底座:角色化的读写权限、共享记忆黑板、写入冲突自动仲裁,以及可回溯的协同链路。从一个人记,到一群人会记。
Next-gen Engine Preview
第六代记忆引擎的预览通道:与稳定版并行的实验分支,提前开放上下文蒸馏、增量索引与记忆可视化,让新能力先被看见、再被合并。
以上为规划中的能力,尚未在任何已发布版本中提供。想跟进进度,请关注仓库的 Milestones。
从底层存储加密到上层认知演化,每一层都能被单独替换或扩展。
存储层采用 SQLite + FTS5 并开启 WAL 模式,单文件即可携带全部记忆;加密、索引与查询引擎均可独立替换为自定义实现。
不是所有记忆都该被同等对待。四级隔离让 Agent 在共享与保密之间有明确边界,端侧加密保证磁盘上的数据本身就是密文。
无论你用的是 Agent 框架、编辑器插件还是自己的服务,MindForge 都留了口子。
面向 OpenClaw 生态的原生适配
ADAPTER命令行编码助手的记忆后端
ADAPTERCRUD / search / stats 标准端点
HTTPPython SDK 与命令行工具,含 Shell 补全
PYTHONModel Context Protocol,暴露 56 个工具
56 TOOLS
项目维护 982 个测试用例,覆盖存储、检索、加密、联邦与适配层;嵌入后端可按需切换,也支持 --no-embedding 完全关闭向量检索。
只比较有没有这一维度,不涉及任何性能或速度指标。
| 能力 | MindForge本项目 | mem0开源记忆层 | Zep记忆服务 | LangChain Memory框架内置 |
|---|---|---|---|---|
| 四层记忆生命周期(含衰减与巩固) | 支持 | 部分 | 部分 | 无 |
| 知识图谱与关联推理 | 支持 | 支持 | 支持 | 无 |
| 六路混合检索(向量 + FTS5 + TF-IDF + Fuzzy + 扩展 + 精排) | 支持 | 部分 | 部分 | 部分 |
| 库内置端侧 AES-256-GCM 加密 | 支持 | 无 | 无 | 无 |
| 四级隐私隔离(PUBLIC → STRICT) | 支持 | 部分 | 部分 | 无 |
| 联邦多 Agent 记忆共享 | 支持 | 无 | 部分 | 无 |
| 人格 / 情感画像 | 支持 | 无 | 部分 | 无 |
| MCP Server 工具集 | 33 个 | 部分 | 部分 | 无 |
| 纯本地零云端依赖运行 | 支持 | 部分 | 无 | 支持 |
| 垂直领域分析(如短剧分析) | 支持 | 无 | 无 | 无 |
上表为定性对比,仅表示能力有无(支持 / 部分支持 / 无),不代表任何性能、速度或质量优劣。信息依据各项目公开文档整理,可能随版本演进变化,请以各自官方仓库为准。
从 v5.3.3 到 v5.9.5,功能扩展、安全加固与 Bug 修复的完整轨迹(近期重点版本)。
mindforge.*,不再以顶层包名进入 site-packages;保留 MindForge.py 兼容入口。mindforge/core/version.py 一处即可发版。run_eval() 加 try/finally,跑完即 rmtree 临时数据库目录(异常也清理)。search_by_tag 精确定位 memory_id,再在 chunks 里按 id 过滤,避免同 namespace 下 prefs 串到 prefs_backup。list().content 为空(解密只在 search().chunks),改为从 tags 反解 mf_key:{key} 后逐个走 get() 解密。fed_peer_register/remove/list、fed_memory_share/revoke/list_shared、fed_search、fed_stats,把 Ed25519 对等节点管理与跨节点共享/检索暴露给 MCP 客户端。BaseStore 协议(put/get/search/delete/list),namespace tuple → category、key → tag、value → JSON;零硬依赖。ipaddress 标准判定(十进制/八进制/mapped-IPv6/CGNAT/0.0.0.0/内网 IPv6 全拦)+ 重定向逐跳复核(302 打内网直接拒绝)。List[Tuple[..]] 缺 Tuple 导入,Python 3.9-3.13 急切注解求值下 import 即崩(3.14 惰性注解掩盖)。record_experience() 把 Agent 成功任务存为 Case(任务/过程/结果/耗时/来源记忆),持久化 experience_cases 表。distill_skills() 从成功案例批量提取技能模板(聚类/槽位/步骤/触发词),UPSERT 到 experience_skills,重启自动恢复。skill_match()(触发词/标签/bigram 三重评分)+ skill_render() 参数化渲染可执行流程——Agent 越用越强。experience 子命令(8 动作)+ REST 6 端点 + MCP 5 工具(43→48)。auto_extract_graph 配置开启后 add() 自动抽取实体/关系(默认关闭,显式开启)。graph_stats / graph_related(BFS)/ graph_path,CLI graph path 子命令 + REST + MCP(40→43 工具)。benchmarks/embedding_eval.py 固定多语言数据集 + 固定种子,四路对比(hybrid / vector / FTS5 / TF-IDF)输出 Recall@5 / MRR@10 / NDCG@10,无模型环境(FakeBackend)也可复现。FakeBackend(MINDFORGE_EMBEDDING_BACKEND=fake)不依赖模型/网络,CI 与测试链路可确定性跑通,评测基线人人可复现。get_embedding_status() 返回实际后端模型名(此前固定显示默认模型)。GET /api/embedding/status 返回后端 / 模型 / 维度 / 已嵌入向量数。agent_pin(置顶冻结衰减 + 重置遗忘分 + 提升重要度)、agent_forget(软删除移入回收站并记录原因)、agent_decay_boost(标记不再重要,加速遗忘封顶 10)、expire_memory(显式关闭事实有效窗口)。reconcile_conflicts 按 suggested_action 自动失效 keep_newer / keep_higher_importance 的旧一方(Bi-temporal 失效而非删除),merge / review_needed 归入人工确认。modules/connectors.py 提供 json / csv / markdown / file / url 五类连接器与注册表,URL 连接器内置 SSRF 防护(拒绝内网/回环地址)。GET /api/connectors、POST /api/agent/forget、POST /api/conflicts/reconcile。supersede 关闭旧事实有效窗口并保留版本历史,新事实继承旧字段并建立 supersedes 关联,对齐 Zep/Graphiti 的 bi-temporal 实践。valid_at 按 valid_from / valid_to 返回当时有效的事实(CLI valid-at / API GET /api/valid-at / MCP memory_valid_at)。gdpr-report / gdpr-export-all / gdpr-erase,数据可携 + 被遗忘权(擦除前自动备份数据库与密钥文件)。memory_supersede、memory_valid_at;CLI 新增 5 条命令;旧库自动迁移补 valid_* 列。EXPERIMENTAL_HMAC_XOR 精确标志名与「降级加密」说明,导致回归测试失败;已恢复完整提示。core/version.py、pyproject.toml、CLI/MCP 兜底、README 徽章与官网全部同步,消除 v5.7.3 发布后官网停留在 v5.7.2 的漂移。X-Content-Type-Options: nosniff(防 MIME 嗅探)、X-Frame-Options: DENY(防点击劫持)、Referrer-Policy: no-referrer(不泄漏来源 URL)。ssl_certfile)时自动下发 Strict-Transport-Security;纯 HTTP 本地部署不下发,反代部署建议在代理层配置。MINDFORGE_API_KEY 少于 16 字符启动时告警;SECURITY.md 补充 API 安全基线。approximate,结果构建段对已回填明文的条目跳过重复 AES-GCM 解密。OR 连接,中文无空格仍为单短语,行为不变。rebuild_embeddings()。approximate,明文只驻留进程内存。batch_update 可改写 category 与 tags(均为全文索引列)却只提交数据库、不同步 memory_fts,改完分类或标签后搜索结果不立即反映变化。现按与 update 一致的方式在提交前同步索引。update 行为。<script> 等标签内的残留脚本文本。requests 不可用时的 urllib 降级路径此前仅单次尝试、无退避,现补齐与主路径一致的重试次数与指数退避。import os,加密初始化一进入密码分支就 NameError——新用户第一条命令即失败。已补模块级导入。/api/health 此前会把记忆条数、数据库体积、缺失索引与优化建议等完整诊断返回给未认证调用者,现公开端点只返回最小状态,详细诊断走已认证端点。MINDFORGE_MCP_REQUIRE_AUTH 开关,受管/CI 环境无密钥时拒绝启动;工具错误信息中的文件路径统一抹平。