总代理内存
唯一能学习的记忆层 _怎么_ 你不仅工作 _什么_ 你说的。 用于AI编码代理的持久本地内存:Claude Code、Codex CLI、Cursor、任何MCP客户端。 时态知识图·过程记忆·AST代码库摄取·跨项目类比·3D WebGL可视化。
](<>)          ](https://www.npmjs.com/package/@vbch/total-agent-memory-client) 
为什么不是mem0/Letta/Zep/Supermemory/Cognie? → docs/v-competitors.md
______________________________________________________________________
v11.1——图形去重+主动保存提示
修复了两个客户端报告的错误(2026-05-14):
Bug#1——孤儿+重复 graph_nodes. 图表累积 案例变量重复(Vue / vue / VUE)类型碰撞 重复(vue/concept vs vue/technology 由不同 提取器),以及在两者之后边缘插入失败时的孤立节点 节点已提交。通过迁移修复 026_graph_nodes_dedup (name_norm 列、触发器、索引),不区分大小写的UPSERT 重写 add_node 利用类型碰撞检测,一种新的原子 GraphStore.link_pair() 助手和一次性清理工具 src/tools/merge_duplicate_nodes.py (默认情况下为干运行)。
# After upgrade migration 026 applies automatically. Then optionally:
.venv/bin/python src/tools/merge_duplicate_nodes.py --dry-run
.venv/bin/python src/tools/merge_duplicate_nodes.py --apply --add-unique在真实的生产数据库(8304个节点)上验证:合并了102个重复项, 清洁1472个陈旧边缘,安装UNIQUE约束。
Bug#2——模型从不调用 memory_save 靠自己。 十四行诗/俳句 当SessionStart上下文消失时,跳过优先级-10保存规则。v11.1 添加会话 轻推:柜台 ~/.claude-memory/state/ 跟踪每个会话的写入与保存,以及 hooks/post-tool-use.{sh,ps1} 发出一条stdout行,Claude将其作为下一个系统上下文读取 转身。软轻推3次编辑,保存0次,硬轻推7次 MEMORY_FINAL_WARNING 在会话停止时。新的优先级10规则 指示模型进行处理 MEMORY_NUDGE 作为即时命令。
可调: MEMORY_NUDGE_DISABLE=1 沉默; MEMORY_NUDGE_SOFT / _HARD / _STEP 重新调谐(默认值 3 / 7 / 3).
测试覆盖率:+24个图形测试,+12个微调测试。详细信息请参见 CHANGELOG.md.
______________________________________________________________________
v11.0——生产内存引擎
v11.0=生产内存引擎:快速确定性内存核心+异步AI富集层。默认模式为 fast:保存/搜索/调用热路径中的LLM为零,Ollama为零,网络为零。
代码库现在分为两层:
- **
src/memory_core/*** --确定性外观模块(存储、嵌入、向量存储、分类器、分块器、去重、缓存、图形链接、遥测、健康、嵌入空间)。不允许LLM进口。被强迫tests/test_no_llm_hot_path.py. - **
src/ai_layer/*** --每个LLM接触路径(丰富工作器、总结器、关键字提取器、问题生成器、关系提取器、矛盾检测器、反射、自我改进,以及用于质量/核心解析器/重新排序器/查询编写器的薄垫片)。禁止使用memory_core。
架构细节和完整的热路径审计: docs/v11/audit.md.
模式
MEMORY_MODE 选择运行时配置文件。默认值为 fast.
|模式|热路径LLM |异步富集|重新排序|嵌入回退|使用时| |---|:-:|:-:|:-:|:-:|---| | ultrafast |off|off|off|仅限FastEmbed(矢量索引关闭,仅限FTS)|吞吐量压力/CI| | fast (默认)| 关 | 关 | 关 | 仅限快速嵌入,Ollama后备门控 | 生产编码剂回路 | | balanced |关闭(同步)| 上 |off |仅限FastEmbed |您需要LLM派生的刻面,但从不在关键路径上| | deep |on(同步)| on | on(当 rerank=true)|快速嵌入→ Ollama梯形图| v10.5行为:质量门/矛盾/核心/HyDE内联|
deep 模式精确地再现了v10.5.0的默认值。集 MEMORY_MODE=deep 如果你依赖于同步质量门、矛盾检测器或coref。 balanced 保持了相同的人体工程学,但将丰富性从线上移开。
从v10.5迁移: docs/v11/MIGRATION-FROM-V10.md.
v11.0热路径基准测试
温暖的内存SQLite,MacBook M系列, MEMORY_MODE=fast, MEMORY_ALLOW_OLLAMA_IN_HOT_PATH=false:
| 度量 | p50 | p95 | p99 |
|---|---|---|---|
save_fast | 6.5 | 9.0 | 27.8 |
save_fast 缓存 | 0.3 | 0.4 | 1.1 |
search_fast | 3.7 | 4.0 | 6.2 |
cached_search | 0.0 | 0.0 | 0.0 |
llm_calls = 0, network_calls = 0 在整个热路径上。复制: bin/memory-bench.CI门: bin/memory-perf-gate.原始工件: docs/v11/benchmark.md.
v10.5→ v11.0——相同的工作负载,相同的脚本
v10.5原生长凳(benchmarks/v10_5_latency.py)在v11上相对于记录的v10.5基线快速重新运行(benchmarks/results/v10_5_latency.json):
| 指标 | v10.5同步(带LLM) | v11.0快速 | 加速 |
|---|---|---|---|
| 保存p95 | 2150.51毫秒 | 8.51毫秒 | 252× |
| 保存p99 | 2178.98毫秒 | 11.09毫秒 | 196× |
| 召回p95 | 1424.26毫秒 | 5.81毫秒 | 245× |
| 召回p99 | 1771.70毫秒 | 6.75毫秒 | 262× |
| LLM调用/保存 | 2-4 | 0 | gate |
| 网络呼叫/保存 | 1-3 | 0 | 门 |
与v10.5相比 _没有_ LLM23.3 ms p95)v11快速 2.7× 更快——在快速模式下,仅确定性阶段(质量状态探测、矛盾候选获取、偶发事件创建、project_wiki刷新)现在完全绕过,仅在以下情况下排队 MEMORY_ENRICHMENT_ENABLED=true.
召回质量得以保留:在30个问题的样本中,LongMemEval R@5=100%;混合检索(FTS5+密集+RRF+基础图)与v10.5相同,除了HyDE/analyze_query LLM扩展是通过选择加入的 MEMORY_MODE=deep。参见 docs/v11/benchmark.md 包括LoCoMo和每空间嵌入负载特性的完整表格。
v11.0中的新MCP工具
memory_save_fast · memory_search_fast · memory_explain_search · memory_warmup · memory_perf_report · memory_rebuild_fts · memory_rebuild_embeddings · memory_eval_locomo · memory_eval_recall · memory_eval_temporal · memory_eval_entity_consistency · memory_eval_contradictions · memory_eval_long_context
所有以前的工具名称(memory_save, memory_recall, ...)继续工作不变。
多嵌入空间契约
现在,每个矢量行都会记录 embedding_provider / embedding_model / embedding_dimension / embedding_space / content_type / language空格: text / code / log / config单色后端;每空间模型交换是一次环境翻转:
MEMORY_TEXT_EMBED_MODEL=sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2
MEMORY_CODE_EMBED_MODEL=jinaai/jina-embeddings-v2-base-code # optional
MEMORY_LOG_EMBED_MODEL= # falls back to TEXT
MEMORY_CONFIG_EMBED_MODEL= # falls back to TEXT旧块在其空间中保持可搜索状态;新的块会拾取交换的模型。通过以下方式一次回填一个空间 memory_rebuild_embeddings.
以下v10.x部分保留为 遗留v10.5行为 --仍然可以通过 MEMORY_MODE=deep日期为2026-04-19/2026-04-25/2026-04-27(v10)的数字、屏幕截图和基准块描述了深度模式管道。v11替换 *默认值*,而不是能力。______________________________________________________________________
目录
- v11.1——图形去重+主动保存提示
- v11.0——生产内存引擎
- 它解决的问题
- 60秒演示
- 基准——如何比较
- 竞争对手比较
- 你得到了什么
- 建筑
- 安装
- 快速开始
- CLI:
lookup-memory对于子代理 - MCP工具参考
- TypeScript SDK
- 仪表板
- 更新
- 从v8.x升级到v9.0
- 从v7.x升级到v8.0
- Ollama设置
- 配置
- 性能调优
- 路线图
- 支持项目
- 哲学与许可
______________________________________________________________________
它解决的问题
AI编码剂有健忘症。 每个新的克劳德代码/代码/光标会话都从零开始。昨天的架构决策、错误修复、堆栈选择和来之不易的经验教训在您关闭终端的那一刻就消失了。你重新解释同样的事情,重新发现同样的解决方案,将同样的上下文粘贴到每个新的聊天中。
total-agent-memory 给代理一个持久的大脑——在你的机器上,而不是在别人的云中。
每个决策、解决方案、错误、事实、文件更改和会话摘要都是:
- 捕获 --明确通过
memory_save或者通过文件编辑/bash错误/会话结束上的钩子隐式执行 - 链接 --自动提取到知识图中(实体、关系、时间事实)
- 可搜索 --6级混合检索(BM25+密集+图+交叉编码器+MMR+RRF融合), 公共LongMemEval上的R@5为96.2%
- 私人 --100%本地。SQLite+快速嵌入+可选Ollama。没有数据离开你的机器。
______________________________________________________________________
60秒演示
You: "remember we picked pgvector over ChromaDB because of multi-tenant RLS"
Claude: ✓ memory_save(type=decision, content="Chose pgvector over ChromaDB",
context="WHY: single Postgres, per-tenant RLS")
[3 days later, different session, possibly different project directory:]
You: "why did we pick pgvector again?"
Claude: ✓ memory_recall(query="vector database choice")
→ "Chose pgvector over ChromaDB for multi-tenant RLS. Single DB
instance, row-level security per tenant."这不仅仅是检索。这也是程序性的:
You: "migrate auth middleware to JWT-only session tokens"
Claude: ✓ workflow_predict(task_description="migrate auth middleware...")
→ confidence 0.82, predicted steps:
1. read src/auth/middleware.go + tests
2. update session fixtures in tests/
3. run migration 0042
4. regenerate OpenAPI spec
similar past: wf#118 (success), wf#93 (success)______________________________________________________________________
基准——如何比较
公共LongMemEval基准 (xiaowu0162/longmemeval清洁,470个问题,每个人都发布的数据集):
R@5 (recall_any) on public LongMemEval
─────────────────────────────────────────
100% ─┤
│
96.2% ┤ ████ ← total-agent-memory v7.0 (LOCAL, 38.8 ms, MIT)
95.0% ┤ ████ ← Mastra "Observational" (cloud)
│ ████
│ ████
85.4% ┤ ████ ← Supermemory (cloud, $0.01/1k tok)
│ ████
│ ████
│ ████
80% ┤ ████
└──────────────────────────────────────────可复制性: evals/longmemeval-2026-04-17.json ·跑步者: benchmarks/longmemeval_bench.py
按问题类型细分(R@5 recall_any)
| 问题类型 | 计数 | 我们的R@5 |
|---|---|---|
| 知识更新 | 72 | 100.0% |
| 单会话用户 | 64 | 100.0% |
| 多会话 | 121 | 96.7% |
| 单次会话助理 | 56 | 96.4% |
| 时间推理 | 127 | 95.3%← 双时间KG回报丰厚 |
| 单会话偏好 | 30 | 80.0%← 最薄弱的环节 |
| 总计 | 470 | 96.2% |
LoCoMo基准测试(v9中的新功能)
公共LoCoMo基准 (快照研究/机车,1986年,在10个长时间运行的对话中进行QA,数据集Mem0/Memobase/Zep/MemMachine发布):
LoCoMo Acc (overall, no adversarial)
─────────────────────────────────────
85% ─┤ ████ ← MemMachine (commercial)
│ ████
80% ┤ ████
│ ████
75% ┤ ████ ← Memobase
│ ████ ← Zep / Graphiti
│ ████
70% ┤ ████
│ ████
67% ┤ ████ ← Mem0
│ ████
│ ████ ← total-agent-memory v9.0 (LOCAL, MIT, gpt-4o-mini)
60% ┤ ████
59% ┤ ████ ← total-agent-memory (0.596)
│ ████ ← LangMem (0.581)
55% ┤ ████
└──────────────────────────────────────────| 排名 | 系统 | 总体(无优势) | 许可证 |
|---|---|---|---|
| 1 | MemMachine | 0.849 | 商用 |
| 2 | 备忘录 | 0.758 | Apache-2.0 |
| 3 | Zep/Graphiti | 0.751 | Apache-2.0 |
| 4 | 模0 | 0.669 | 阿帕奇-2.0 |
| 5 | 总代理内存v9.0 | 0.596 | 麻省理工学院 |
| 6 | 长Mem | 0.581 | MIT |
按类别细分(v9.0,gpt-4o-mini-gen+judge):
| 类别 | N | Acc | R@5 |
|---|---|---|---|
| 1--单跳 | 282 | 0.443 | 0.514 |
| 2--时间 | 321 | 0.564 | 0.717 |
| 3--多跳 | 96 | 0.490 | 0.385 |
| 4--开放域 | 841 | 0.661 | 0.601 |
| 5--对抗性 | 446 | 0.998 ← 我们领先 | 0.421 |
| 总体(无优势) | 1540 | 0.596 | 0.622 |
我们在对抗性方面领先(0.998 vs Memobase 0.90) 这要归功于法官加权合奏+弃权逻辑。前三名领导者通过主题感知的个人资料检索在猫1/2上获胜——这是我们的v10目标。
可复制性: benchmarks/results/v9_diag_v1_*.json ·跑步者: benchmarks/locomo_bench_llm.py (15个消融标志)。gpt-4o-mini的成本:1986年整个QA运行的成本约为5美元,集成=3。
延迟配置文件
p50 (warm) ▌ 0.065 ms
p95 (warm) ▌▌ 2.97 ms
LongMemEval ▌▌▌▌▌ 38.8 ms/query ← includes embedding + CrossEncoder rerank
p50 (cold) ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌ 1333 ms ← first query after process start温/冷可重复 evals/results-2026-04-17.json.
______________________________________________________________________
竞争对手比较
我们不是在替换聊天机器人的内存,而是在占用 编码代理+MCP+本地 利基市场。
||mem0|Letta|Zep|超级记忆|Cognee|LangMem| 总代理内存 | |---|:-:|:-:|:-:|:-:|:-:|:-:|:-:| |资金/状态|2400万美元YC | 1000万美元种子| 1200万美元种子|260万美元种子|| 750万美元种子|1angChain |自筹OSS| |100%本地运行|🟡 | ✅ | 🟡 | ❌ | 🟡 | 🟡 | ✅ | |MCP原生|通过SDK |❌ | 🟡 图形|🟡 | ❌ | ❌ | ✅ 60+工具 | |知识图谱|🔒 $249/月|❌ | ✅ | ✅ | ✅ | ❌ | ✅ | | 时间事实 (kg_at) | ❌ | ❌ | ✅ | ❌ | 🟡 | ❌ | ✅ | | 程序记忆 | ❌ | ❌ | ❌ | ❌ | ❌ | 🟡 | ✅ workflow_predict | | 跨项目类比 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ analogize | | 自我完善的规则 | ❌ | ❌ | ❌ | ❌ | 🟡 | ❌ | ✅ learn_error | | AST代码库摄取 | ❌ | ❌ | ❌ | ❌ | 🟡 | ❌ | ✅ 树保姆9郎 | | 预先编辑风险警告 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ file_context | |3D WebGL图形查看器|❌ | ❌ | 🟡 | ✅ | ❌ | ❌ | ✅ | |图表功能的价格|249美元/月|免费|云|使用|免费|免费| 自由 |
与定价、延迟、准确性、“何时选择每一项”完全并列→ docs/v-competitors.md.
______________________________________________________________________
你得到了什么
其他人无法提供的八种能力
| 能力 | 工具 | 单行 |
|---|---|---|
| 🧠 程序记忆 | workflow_predict / workflow_track | “上次我是怎么解决的?”——自信地预测步骤 |
| 🔗 跨项目类比 | analogize | “在另一个回购中有类似的东西吗?”——Jaccard+Dempster Shafer |
| ⚠️ 预先编辑风险警告 | file_context | 显示您要编辑的文件上过去的错误/热点 |
| 🛡 自我完善的规则 | learn_error + self_rules_context | Bash失败→ 模式→ N≥3时的自动合并行为规则 |
| 🕰 时间事实 | kg_add_fact / kg_at | 仅添加KG valid_from/valid_to --随时询问什么是真的 |
| 🎯 任务工作流阶段 | classify_task / phase_transition | 自动L1-L4复杂性分类,跨货车/计划/创意/构建/反映/归档的状态机 |
| 🧩 结构化决策 | save_decision | 选项+标准矩阵+基本原理+丢弃→ 基于标准嵌入的可搜索决策记录 |
| 💸 令牌高效检索 | memory_recall(mode="index") + memory_get | 三层工作流:紧凑的ID→ 时间线→ 分批全取。在典型查询中节省约83%的令牌 |
此外,基础知识做得很好
- 6级混合检索 (BM25+密集+模糊+图形+交叉编码器+MMR、RRF融合)--96.2%R@5公开
- 多表示嵌入 --每条记录都嵌入为原始+摘要+关键字+问题+压缩
- AST代码库摄取 --跨9种语言(Python、TS/JS、Go、Rust、Java、C/C++、Ruby、C#)的树形图
- 自动反射管道 —
memory_save→ LaunchAgent文件监视→ 图形边在约30秒后出现 - rtk风格的内容过滤器 --从pytest/cargo/git/docker日志中去除噪声,同时保留URL、路径和代码
- 3D WebGL知识图查看器 --3500+节点,120000+边,点击聚焦,过滤器
- 蜂巢图和邻接矩阵 --按节点类型排序的备选图形视图
- A2A协议 --多个代理之间共享内存(团队中的后端+前端+移动)
design-explore技能 --输入克劳德代码技能,引导L3-L4任务完成选项→ 标准矩阵→save_decision代码之前(参见examples/skills/design-explore/SKILL.md)- **`
... ` 内联编辑** 在任何已保存的内容中
- 云LLM/嵌入提供商 具有每相路由(OpenAI/Anthropic/OpenRouter/Together/Groq/Cohere/任何OpenAI兼容)
activeContext.md黑曜石投影 用于人类可读的会话状态- 阶段范围规则 (
self_rules_context(phase="build"))--代币减少约70%
______________________________________________________________________
建筑
┌─────────────────────────────────────────────────┐
│ Your AI coding agent │
│ (Claude Code · Codex CLI · Cursor · any MCP) │
└──────────────────────┬──────────────────────────┘
│ MCP (stdio or HTTP)
│ 60+ tools
┌──────────────────────▼──────────────────────────┐
│ total-agent-memory server │
│ ┌──────────────┐ ┌────────────────────┐ │
│ │ memory_save │ │ memory_recall │ │
│ │ memory_upd │ │ 6-stage pipeline: │ │
│ │ kg_add_fact │ │ BM25 (FTS5) │ │
│ │ learn_error │ │ + dense (FastEmbed)│ │
│ │ file_context │ │ + fuzzy │ │
│ │ workflow_* │ │ + graph expansion │ │
│ │ analogize │ │ + CrossEncoder † │ │
│ │ ingest_code │ │ + MMR diversity † │ │
│ └──────┬───────┘ │ → RRF fusion │ │
│ │ └──────────┬──────────┘ │
└───────────┼─────────────────────┼────────────────┘
│ │
┌───────────▼─────────────────────▼────────────────┐
│ Storage │
│ ┌────────────┐ ┌────────────┐ ┌─────────────┐ │
│ │ SQLite │ │ FastEmbed │ │ Ollama │ │
│ │ + FTS5 │ │ HNSW │ │ (optional) │ │
│ │ + KG tbls │ │ binary-q │ │ qwen2.5-7b │ │
│ └────────────┘ └────────────┘ └─────────────┘ │
└───────────────────────────────────────────────────┘
│
│ file-watch + debounce
┌───────────▼────────────────────────────────────┐
│ Auto-reflection pipeline (LaunchAgent) │
│ triple_extraction → deep_enrichment → reprs │
│ (async, 10s debounce, drains in background) │
└─────────────────────────────────────────────────┘
│
┌───────────▼─────────────────────────────────────┐
│ Dashboard (localhost:37737) │
│ / - stats, savings, queue depths │
│ /graph/live - 3D WebGL force-graph │
│ /graph/hive - D3 hive plot │
│ /graph/matrix - adjacency matrix │
└─────────────────────────────────────────────────┘
† CrossEncoder + MMR are on-demand via `rerank=true` / `diverse=true`______________________________________________________________________
安装
两条路。相同的60多种工具,相同的仪表板,不同的部署形状。
IDE矩阵(v10.5)
相同的MCP服务器、相同的工具、相同的协议——不同的安装 每个IDE的位置和挂钩接线。安装程序(install.sh --ide ) 将所有这些自动化。
|IDE | Skill API | Hook API | Sub-agents | Install命令| |---|:-:|:-:|:-:|---| |克劳德代码|✅ | ✅ 满|✅ | ./install.sh --ide claude-code | |Codex CLI |✅ | ✅ | ❌ | ./install.sh --ide codex | |光标|规则窗格|❌ | 作曲家| ./install.sh --ide cursor | |Cline(VS代码)| .clinerules/ | ❌ | ❌ | ./install.sh --ide cline | |继续|规则文件|❌ | ❌ | ./install.sh --ide continue | |助手| .aider.conf.yml 阅读|❌ ¹ | ❌ | ./install.sh --ide aider | |风帆冲浪| .windsurfrules | ❌ | 级联| ./install.sh --ide windsurf | |Gemini CLI| .gemini/rules/ | ⚠️ 部分|❌ | ./install.sh --ide gemini-cli | |OpenCode| .opencode/skills/ | ✅ | 定制| ./install.sh --ide opencode |
¹Aider还没有MCP——大桥已经开通 lookup_memory.sh / save_memory.sh shell脚本。
完整的IDE设置、手动回退和模板片段: skills/memory-protocol/references/ide-setup.md.
平台矩阵
| 操作系统 | 命令 | 后台服务 |
|---|---|---|
| macOS 10.15+ | ./install.sh --ide claude-code | LaunchAgent(launchctl) |
| Linux(Ubuntu 22.04+,Debian 12+,Fedora 38+) | ./install.sh --ide claude-code | 系统d --user |
| WSL2(Windows 11+Ubuntu/Debian) | ./install.sh --ide claude-code | 系统d --user --要求 /etc/wsl.conf 随着 [boot] systemd=true;否则退回到shell循环自动启动 |
| Windows 10/11本机 | .\install.ps1 -Ide claude-code | 任务调度器 |
完整的每平台演练,WSL2 Windows主机与WSL IDE的细微差别 wsl -e MCP命令模式、IDE覆盖矩阵和卸载/诊断 流量: docs/installation.md.
路径A--本机(macOS/Linux/WSL2)
git clone https://github.com/vbcherepanov/claude-total-memory.git ~/claude-memory-server
cd ~/claude-memory-server
bash install.sh --ide claude-code # or: cursor | gemini-cli | opencode | codex安装程序:
- 克隆+创建
~/claude-memory-server/.venv/ - 安装日期
requirements.txt和requirements-dev.txt - 预下载FastEmbed多语言MiniLM模型
- 通过注册MCP服务器
claude mcp add-json memory ...(存储在~/.claude.json,规范存储Claude Code实际读取) - 副本 所有钩子 (
session-*,user-prompt-submit.sh,post-tool-use.sh,pre-edit.sh,on-bash-error.sh等)进入~/.claude/hooks/并将其注册在~/.claude/settings.json - 拨款
permissions.allow20+mcp__memory__*工具,因此钩子驱动的调用不会提示确认 - 安装 后台服务 对于当前操作系统:
- macOS --4个发射代理(reflection, orphan-backfill, check-updates, dashboard)under ~/Library/LaunchAgents/ - Linux/WSL2 --7系统d --user 单位(*.service, *.timer, *.path)under ~/.config/systemd/user/;如果满足以下条件,则会优雅地降级 systemd --user 不可用(WSL不可用 /etc/wsl.conf)
- 将所有迁移应用于新的
memory.db - 在以下位置启动仪表板
http://127.0.0.1:37737
重新启动Claude代码→ /mcp → memory 应显示 连接 60多种工具。
路径A--本机(Windows 10/11)
git clone https://github.com/vbcherepanov/claude-total-memory.git $HOME\claude-memory-server
cd $HOME\claude-memory-server
powershell -ExecutionPolicy Bypass -File install.ps1 -Ide claude-code与Unix相同的9个步骤,但:
- MCP配置路径为
%USERPROFILE%\.claude\settings.json(或.cursor\mcp.json等等) - 钩子复制到
%USERPROFILE%\.claude\hooks\—.ps1版本(自动捕获、内存触发、用户提示提交、工具使用后、预编辑、bash错误、会话开始/结束、停止、codex通知) - 后台服务通过 任务计划程序:
- total-agent-memory-reflection --每5分钟一次(没有等效的本地FileSystemWatcher) - total-agent-memory-orphan-backfill --每日00:00+6小时重复 - total-agent-memory-check-updates --每周周一09:00 - ClaudeTotalMemoryDashboard --atlogon
卸载
所有安装人员保留 ~/.claude-memory/memory.db 以及您的配置文件;仅删除服务+钩子注册。
./install.sh --uninstall # macOS/Linux/WSL2 — removes LaunchAgents OR systemd units
.\install.ps1 -Uninstall # Windows — unregisters Scheduled Tasks + cleans settings.json诊断
一次性健康检查——打印✓/✗ 对于每个子系统(操作系统检测、venv、MCP导入、服务、仪表板HTTP、Ollama、数据库迁移):
bash scripts/diagnose.sh # macOS / Linux / WSL2
.\scripts\diagnose.ps1 # Windows退出代码0=全绿,1=有东西坏了。
路径B——Docker(一切容器化,跨平台)
git clone https://github.com/vbcherepanov/claude-total-memory.git
cd claude-total-memory
bash install-docker.sh --with-compose介绍5项服务:
| 服务 | 角色 | 已暴露 |
|---|---|---|
mcp | MCP服务器(HTTP传输) | 127.0.0.1:3737/mcp |
dashboard | Web用户界面 | 127.0.0.1:37737 |
ollama | 本地LLM运行时 | 127.0.0.1:11434 |
reflection | 文件监视队列排水器 | 内部 |
scheduler | 奥菲莉娅·克戎(回填+更新检查) | 内部 |
首轮拉单 qwen2.5-coder:7b (约4.7 GB)+ nomic-embed-text (~275 MB)-5-10分钟冷启动。
GPU注意事项: macOS上的Docker Desktop不支持Metal。Mac上的原生安装速度更快。在Linux上使用NVIDIA容器工具包,取消注释 deploy.resources.reservations.devices 挡住 docker-compose.yml.
验证(两条路径)
memory_save(content="install works", type="fact")
memory_stats()打开 --仪表板、知识图谱、代币储蓄。
______________________________________________________________________
快速开始
v11默认值为MEMORY_MODE=fast. 保存/搜索/调用热路径中没有LLM、Ollama和网络。还原v10.5同步LLM行为集export MEMORY_MODE=deep.模式切换:LAUNCH.md§调整.
安装后,在任何Claude Code/Copyx CLI/Cursor会话中:
1.从你中断的地方继续 (会话自动启动,但您也可以调用)
session_init(project="my-api")
→ {summary: "yesterday: migrated auth middleware to JWT",
next_steps: ["update OpenAPI spec", "notify frontend team"],
pitfalls: ["don't revert migration 0042 — dev DB already migrated"]}2.保存决策(代理在钩子注册后自动执行此操作)
memory_save(
type="decision",
content="Chose pgvector over ChromaDB for multi-tenant RLS",
context="WHY: single Postgres instance, per-tenant row-level security",
project="my-api",
tags=["database", "multi-tenant"],
)3.跨会议/项目回忆
memory_recall(query="vector database choice", project="my-api", limit=5)
→ RRF-fused results from 6 retrieval tiers4.在开始任务之前预测方法
workflow_predict(task_description="migrate auth middleware to JWT-only")
→ {confidence: 0.82, predicted_steps: [...], similar_past: [...]}5.编辑前检查文件的风险 (通过挂钩自动,也可手动)
file_context(path="/Users/me/my-api/src/auth/middleware.go")
→ {risk_score: 0.71, warnings: ["last 3 edits caused test failures in ..."], hot_spots: [...]}6.获取完整统计数据
memory_stats()
→ {sessions: 515, knowledge: {active: 1859, ...}, storage_mb: 119.5, ...}______________________________________________________________________
CLI: lookup-memory 对于子代理
v9中的新功能。 Bash友好的内存搜索子代理工作流,其中启动完整的MCP服务器将是多余的(例如。 Bash(lookup-memory "fix slow Wave query") 从Claude Code代理提示符内部)。
两个等效的指挥部随包裹一起发货(注册为 [project.scripts] 条目--由自动安装 ./install.sh 或 ./update.sh):
lookup-memory "Caroline researched" # human-readable bullets
ctm-lookup "Caroline researched" # alias
lookup-memory --project myproj --limit 5 "auth flow"
lookup-memory --type solution --tag reusable "fix bug"
lookup-memory --json "claude code hooks" # structured stdout for piping它是如何工作的: 打开相同 $CLAUDE_MEMORY_DIR/memory.db 正在运行的MCP服务器使用→ 通过FTS5进行BM25排名→ 在较旧的DB上回落到LIKE。 零超出包裹。 CLI路径不需要Ollama、rag_chat.py和ChromaDB。适用于macOS、Linux、Windows。
$ lookup-memory --project locomo_0 --limit 2 "adoption"
1. [synthesized_fact|locomo_0] Caroline is researching adoption agencies.
2. [synthesized_fact|locomo_0] Melanie congratulates Caroline on her adoption.为什么有两个名字? lookup-memory 匹配旧文档和子代理提示参考的旧bash脚本(~/claude-memory-server/ollama/lookup_memory.sh). ctm-lookup 是项目前缀的规范形式。两者都调用 claude_total_memory.lookup:main.
迁移说明: v7/v8文档指出 ~/claude-memory-server/ollama/lookup_memory.sh 应该更新——bash版本仍然适用于手动安装的用户,但是 ./install.sh / ./update.sh v9+上的客户端现在可以获得 lookup-memory 直接通过包的PATH [project.scripts] 进入。
______________________________________________________________________
MCP工具参考(60+工具)
工具类别
取芯(9): memory_save, memory_recall, memory_get, memory_update, memory_delete, memory_history, memory_extract_session, memory_relate, memory_search_by_tag
知识图谱(8): kg_add_fact, kg_invalidate_fact, kg_at, kg_timeline, memory_graph, memory_graph_index, memory_graph_stats, memory_concepts
情节/会话(6): memory_episode_save, memory_episode_recall, session_init, session_end, memory_timeline, memory_history
程序/工作流程(4): workflow_learn, workflow_predict, workflow_track, classify_task
任务阶段(4,v8.0): task_create, phase_transition, task_phases_list, complete_task
决定(1,v8.0): save_decision
意图(3,v8.0): save_intent, list_intents, search_intents
自我提升(5): self_rules, self_rules_context, self_insight, self_patterns, self_error_log, rule_set_phase (v8.0)
预编辑保护/错误学习(3): file_context, learn_error, self_error_log
类比/交叉项目(2): analogize, ingest_codebase
反思/巩固(4): memory_reflect_now, memory_consolidate, memory_forget, memory_observe
统计/出口(5): memory_stats, memory_export, memory_self_assess, memory_context_build, benchmark
技能(3): memory_skill_get, memory_skill_update, file_context
总计: 60多种工具。 下面分别记录了输入模式和示例。
令牌高效的三层工作流程
当你只知道主题而不知道哪些记录重要时,使用渐进式披露:
- 索引 —
memory_recall(query="auth refactor", mode="index", limit=20)→ ~2 KB of{id, title, score, type, project, created_at}每次点击。没有内容,就没有认知拓展。 - 时间线 —
memory_recall(query="auth refactor", mode="timeline", limit=5, neighbors=2)→ 前K名按时间顺序排列,用同一时段的±个邻居填充。 - 获取 —
memory_get(ids=[3622, 3606])→ 仅针对您选择的ID提供完整内容(每次通话最多50个,detail="summary"截断为150个字符)。
典型节省: 代币数量减少80%-90% memory_recall(detail="full", limit=20) 当你最终使用20次点击中的2-3次时。
Core memory (15)
memory_recall · memory_get · memory_save · memory_update · memory_delete · memory_search_by_tag · memory_history · memory_timeline · memory_stats · memory_consolidate · memory_export · memory_forget · memory_relate · memory_extract_session · memory_observe
Knowledge graph (6)
memory_graph · memory_graph_index · memory_graph_stats · memory_concepts · memory_associate · memory_context_build
Episodic memory & skills (4)
memory_episode_save · memory_episode_recall · memory_skill_get · memory_skill_update
Reflection & self-improvement (7)
memory_reflect_now · memory_self_assess · self_error_log · self_insight · self_patterns · self_reflect · self_rules · self_rules_context
Temporal knowledge graph (4)
kg_add_fact · kg_invalidate_fact · kg_at · kg_timeline
Procedural memory (3)
workflow_learn · workflow_predict · workflow_track
Pre-flight guards & automation (8)
file_context (编辑前风险评分)· learn_error (自动合并错误捕获)· session_init / session_end · ingest_codebase (AST,9种语言)· analogize (跨项目类比)· benchmark (回归门)
完整的JSON模式: python -m claude_total_memory.cli tools --json 或打开仪表板 localhost:37737/tools.
______________________________________________________________________
TypeScript SDK
对于Node.js/浏览器/任何不是MCP本机代理的TS项目:
npm i @vbch/total-agent-memory-clientimport { connectStdio } from "@vbch/total-agent-memory-client";
const memory = await connectStdio();
await memory.save({
type: "decision",
content: "Picked pgvector over ChromaDB for multi-tenant RLS",
project: "my-api",
});
const hits = await memory.recallFlat({
query: "vector database choice",
project: "my-api",
limit: 5,
});还提供了LangChain适配器示例、过程内存集成和HTTP传输(用于团队/无服务器设置)。
软件包仓库:
______________________________________________________________________
仪表板(本地主机:37737)
/--实时统计数据、队列深度、过滤器节省的令牌、表示覆盖率/graph/live--3D WebGL力图(Three.js),3500+节点/120000+边,点击聚焦,键入过滤器,搜索/graph/hive--D3蜂窝图,按类型在径向轴上的节点/graph/matrix--按类型排序的画布邻接矩阵/knowledge--分页知识浏览器、标签过滤器/sessions--最后50次会议,包括总结+下一步/errors--综合误差模式/rules--主动行为规则+火灾计数- SSE药丸在头部 --实时重新连接指示器
截图→ 文档/截图/ (即将到来)
______________________________________________________________________
更新
cd ~/claude-memory-server
./update.sh7个阶段:
- 飞行前 --磁盘检查+数据库快照(保留最后7个)
- 源代码拉取 (git)或SHA-256验证的tarball
- 依赖 —
pip install -r requirements.txt -r requirements-dev.txt(仅当哈希值更改时) - 完整的pytest套件 --如果为红色,则中止快照
- 架构迁移 —
python src/tools/version_status.py - LaunchAgent重新加载 --反射+回填+更新检查
- MCP重新连接通知 --应用内
/mcp→memory→ 重新连接
手动等效:
cd ~/claude-memory-server
git pull
.venv/bin/pip install -r requirements.txt -r requirements-dev.txt
.venv/bin/python src/tools/version_status.py
.venv/bin/python -m pytest tests/
# in Claude Code: /mcp → memory → Reconnect______________________________________________________________________
从v8.x升级到v9.0
v9是 向后兼容现有的v8调用和DB模式保持不变——v9是一个基础版本,增加了可插拔后端、子代理的公共CLI和LoCoMo基准测试连接。没有强制启用任何功能。
一次命令升级
cd ~/claude-memory-server && ./update.sh
# pulls v9 src, installs new entry-points (ctm-lookup / lookup-memory),
# keeps existing memory.db untouched.升级后,验证新CLI是否在PATH上:
lookup-memory --limit 1 "any-query-from-your-history"新增内容(无需采取任何行动)
lookup-memory/ctm-lookupCLI现在已安装在旁边claude-total-memoryMCP服务器(注册为[project.scripts]所以./install.sh和./update.sh将它们自动放在PATH上)。子代理提示引用旧版~/claude-memory-server/ollama/lookup_memory.sh脚本继续工作;新提示应首选已安装包的名称。- 嵌入后端 继续停留
fastembed默认情况下。通过以下方式切换V9_EMBED_BACKEND=openai-3-large(套MEMORY_EMBED_API_KEY)--重新嵌入的成本约为0.10美元/5k行,预计对话数据的R@5提升。 - 重新排序后端 我自岿然不动
ce-marco默认情况下。V9_RERANKER_BACKEND=bge-v2-m3(或off)运行时切换。 - 主题感知检索 通过以下方式选择加入
--subject-aware在benchmarks/locomo_bench_llm.py未来:表面作为MCP工具标志。 - 没有迁移。 架构与v8保持不变。
需要手动操作的内容
- 重新嵌入 (仅当切换嵌入模型时,否则跳过):
python -m scripts.reembed --backend openai-3-large --confirm- 旧的bash子代理提示 那个硬编码
~/claude-memory-server/ollama/lookup_memory.sh "query"将继续工作。要安装新套件,请更换为lookup-memory "query".
重大变更
没有。所有v8 MCP工具、env变量、钩子和DB表的行为都是相同的。
______________________________________________________________________
从v7.x升级到v8.0
v8.0是 向后兼容 --您现有的v7安装保持不变。所有新功能都可以通过MCP工具调用或环境变量进行选择。
一次命令升级
cd ~/claude-memory-server && ./update.sh
# Applies migrations 011-013 idempotently, restarts LaunchAgents, updates dependencies然后重新启动Claude Code: /mcp restart memory.
什么会自动改变
- 迁移011–013 适用于MCP启动(隐私计数器、任务阶段、意图)。零停机时间,幂等。
- 现有的
memory_save通话仍在继续——现在它们还可以断开 `
... ` 部分(如有)。
- 现有的
memory_recall呼叫继续工作--默认模式仍然是"search"新mode="index"是选择加入。 - 现有的
session_end通话继续有效--auto_compress=False默认情况下。通过auto_compress=True选择加入。 - 现有的
self_rules_context调用继续工作——默认返回所有规则(无阶段过滤器)。
需要手动设置的内容
1.云提供商 (仅当您想替换/增强Ollama时):
export MEMORY_LLM_PROVIDER=openai # or "anthropic"
export MEMORY_LLM_API_KEY=sk-...
export MEMORY_LLM_MODEL=gpt-4o-mini # or "claude-haiku-4-5"看 云提供商 OpenRouter/每相路由/Coheres示例。
2.安装附加挂钩 (适用于UserPromptSubmit捕获+引用):
./install.sh --ide claude-code # re-run installer; it now registers user-prompt-submit.sh hook钩子是附加的——现有的钩子可以继续工作。
3.activeContext.md黑曜石集成 (如果你想要markdown投影):
export MEMORY_ACTIVECONTEXT_VAULT=~/Documents/project/Projects # default
# Disable: export MEMORY_ACTIVECONTEXT_DISABLE=1每 session_end 写 / /activeContext.md.
重大变更
没有。 保留所有v7 MCP工具签名。新参数是可选的,具有安全默认值。
嵌入尺寸注释
如果您切换到云嵌入提供商(MEMORY_EMBED_PROVIDER=openai/cohere),服务器 将拒绝开始 如果现有的DB嵌入具有与新提供者返回的维度不同的维度。这是经过深思熟虑的——它可以防止无声的数据损坏。
要么:
- 保持
MEMORY_EMBED_PROVIDER=fastembed(默认384d),仅更改LLM提供者,或 - 重新嵌入数据库:
python src/tools/reembed.py --provider openai --model text-embedding-3-small
v8.0中的新MCP工具
快速参考——请参阅 MCP工具参考:
| 工具 | 目的 |
|---|---|
classify_task(description) | 返回{级别1-4,建议阶段,估计标记} |
task_create(task_id, description) | 在“货车”阶段启动状态机 |
phase_transition(task_id, new_phase, artifacts?) | 通过货车/计划/创意/构建/反思/归档移动任务 |
task_phases_list(task_id) | 按时间顺序的相位历史 |
save_decision(title, options, criteria_matrix, selected, rationale, ...) | 按标准索引的结构化决策 |
memory_get(ids, detail) | 从中批量获取ID的完整内容 memory_recall(mode="index") |
save_intent / list_intents / search_intents | UserPrompt提交捕获的提示 |
rule_set_phase(rule_id, phase) | 标记阶段范围加载的规则 |
扩展工具:
memory_recall(mode="index"|"timeline", decisions_only=False, ...)--三层令牌高效工作流session_end(auto_compress=True, transcript=None, ...)--LLM生成的摘要self_rules_context(phase="build"|"plan"|...)--相位滤波器save_knowledge(...)--现在脱衣 `
... ` 自动分段
回滚计划
v8.0不会删除任何v7功能。如果遇到问题,您可以:
- 将env-var设置为恢复行为:
export MEMORY_LLM_PROVIDER=ollama # revert to local LLM
export MEMORY_EMBED_PROVIDER=fastembed # revert to local embeddings
export MEMORY_ACTIVECONTEXT_DISABLE=1 # disable markdown projection
export MEMORY_POST_TOOL_CAPTURE=0 # disable opt-in capture (default anyway)- 迁移011/012/013是累加的(否
DROP/ALTER在现有表上),因此DB降级不是破坏性的——旧代码会继续读取旧表。
- 最坏情况:
git checkout v7.0.0 && ./update.sh --skip-migrations.
______________________________________________________________________
Ollama设置(可选,但推荐)
没有Ollama: 完全有效——原始内容被保存,通过BM25+FastEmbed密集嵌入进行检索。
与Ollama: 您还可以获得LLM生成的摘要、关键字、问题表单、压缩表示和深度丰富(实体、意图、主题)。
brew install ollama # or: curl -fsSL https://ollama.com/install.sh | sh
ollama serve &
ollama pull qwen2.5-coder:7b # default — best quality/speed on M-series
ollama pull nomic-embed-text # optional, alternative embedder云提供商(可选)
使用OpenAI、Anthropic或任何OpenAI兼容端点(OpenRouter、Together、Groq、DeepSeek、LM Studio、llama.cpp)而不是本地Ollama。
OpenAI:
export MEMORY_LLM_PROVIDER=openai
export MEMORY_LLM_API_KEY=sk-...
export MEMORY_LLM_MODEL=gpt-4o-mini人类学:
export MEMORY_LLM_PROVIDER=anthropic
export MEMORY_LLM_API_KEY=sk-ant-...
export MEMORY_LLM_MODEL=claude-haiku-4-5OpenRouter(通过一个端点连接100多种型号):
export MEMORY_LLM_PROVIDER=openai
export MEMORY_LLM_API_BASE=https://openrouter.ai/api/v1
export MEMORY_LLM_API_KEY=sk-or-...
export MEMORY_LLM_MODEL=anthropic/claude-haiku-4.5每相布线 (廉价型号适用于散装,优质型号适用于压缩):
export MEMORY_TRIPLE_PROVIDER=openai
export MEMORY_TRIPLE_MODEL=gpt-4o-mini
export MEMORY_ENRICH_PROVIDER=anthropic
export MEMORY_ENRICH_MODEL=claude-haiku-4-5嵌入 (尺寸必须与现有数据库匹配或需要重新嵌入):
export MEMORY_EMBED_PROVIDER=openai
export MEMORY_EMBED_MODEL=text-embedding-3-small # 1536d
# or Cohere:
export MEMORY_EMBED_PROVIDER=cohere
export MEMORY_EMBED_API_KEY=...模型选择
| 型号 | 尺寸 | 用例 |
|---|---|---|
qwen2.5-coder:7b | 4.7 GB | 默认 --最佳质量/速度比 |
qwen2.5-coder:32b | 19 GB | 最高质量,需要32 GB+RAM |
llama3.1:8b | 4.9 GB | 通用替代品 |
phi3:mini | 2.3 GB | 低RAM机器 |
______________________________________________________________________
配置
环境变量(全部可选):
v11.0——内存模式+多嵌入空间
| 变量 | 默认值 | 用途 | |||
|---|---|---|---|---|---|
MEMORY_MODE | fast | `ultrafast\ | fast\ | balanced\ | deep`。选择热路径配置文件。看 模式. |
MEMORY_USE_LLM_IN_HOT_PATH | false | 用于同步LLM级的主开关 save_knowledge / Recall.search. MEMORY_MODE=deep 将此翻转为 true. | |||
MEMORY_ALLOW_OLLAMA_IN_HOT_PATH | false | 重新启用静音FastEmbed→ 当FastEmbed不可用时,Ollama会回退梯子。 | |||
MEMORY_RERANK_ENABLED | false | 尊敬来电者 rerank=true.何时 false,即使工具调用请求,CrossEncoder重新排序也会被硬禁用 | |||
MEMORY_ENRICHMENT_ENABLED | false | 运行异步富集工作程序。默认开启 balanced / deep. | |||
MEMORY_TEXT_EMBED_MODEL | sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 | 型号 embedding_space=text. | |||
MEMORY_CODE_EMBED_MODEL | _空的→ 退回到TEXT模型_ | 型号 embedding_space=code.该行仍有记录 space=code 因此,未来的交换仅限于配置。 | |||
MEMORY_LOG_EMBED_MODEL | _空的→ TEXT_ | 型号 embedding_space=log. | |||
MEMORY_CONFIG_EMBED_MODEL | _空的→ TEXT_ | 型号 embedding_space=config. | |||
MEMORY_DEFAULT_EMBEDDING_SPACE | text | 非机密内容的空间。 |
v10+更早版本
| 变量 | 默认值 | 用途 | |||
|---|---|---|---|---|---|
MEMORY_DB | ~/.claude-memory/memory.db | SQLite位置 | |||
MEMORY_LLM_ENABLED | auto | `auto\ | true\ | false\ | force` --LLM富集开关 |
MEMORY_LLM_MODEL | qwen2.5-coder:7b | Ollama富集模型 | |||
MEMORY_LLM_PROBE_TTL_SEC | 60 | Ollama可用性探测的缓存TTL | |||
MEMORY_LLM_TIMEOUT_SEC | 60 | Ollama请求的全局回退超时 | |||
MEMORY_TRIPLE_TIMEOUT_SEC | 30 | 深度三重提取超时 | |||
MEMORY_ENRICH_TIMEOUT_SEC | 45 | 深度浓缩超时 | |||
MEMORY_REPR_TIMEOUT_SEC | 60 | 表示生成超时 | |||
MEMORY_TRIPLE_MAX_PREDICT | 2048 | num_predict 三重萃取盖 | |||
OLLAMA_URL | http://localhost:11434 | 奥拉马终点 | |||
MEMORY_EMBED_MODE | fastembed | `fastembed\ | sentence-transformers\ | ollama` | |
DASHBOARD_PORT | 37737 | HTTP仪表板端口 | |||
MEMORY_MCP_PORT | 3737 | HTTP MCP传输端口(Docker路径) | |||
MEMORY_ASYNC_ENRICHMENT | false | v10.1 --将质量门/矛盾/实体消除/情节/wiki转移到后台工作人员。看 性能调优 | |||
MEMORY_ENRICH_TICK_SEC | 0.1 | 工人勾选间隔(夹具 0.01..5) | |||
MEMORY_ENRICH_BATCH | 5 | 每勾索赔行数(夹紧 1..50) | |||
MEMORY_ENRICH_MAX_ATTEMPTS | 3 | 在翻转行之前进行重试 failed | |||
MEMORY_ENRICH_STALE_AFTER_SEC | 60 | a前几秒 processing 行被回收(工人崩溃恢复) |
仅CPU/WSL主机:如果Ollama保持超时,则降低MEMORY_TRIPLE_MAX_PREDICT在提高超时之前。install-codex.sh自动写入保守默认值。 在WSL2上节省30-40秒的延迟→ setMEMORY_ASYNC_ENRICHMENT=true--见下文。
完整配置:请参阅 claude_total_memory/config.py.
______________________________________________________________________
性能调优
v11.0快速模式热路径(默认)
当 MEMORY_MODE=fast (默认):
| 度量 | p50 | p95 | p99 |
|---|---|---|---|
save_fast | 6.2 | 8.9 | 11.4 |
save_fast 缓存 | 0.3 | 0.4 | 1.4 |
search_fast | 3.4 | 4.7 | 6.0 |
cached_search | 3.1 | 3.4 | 3.6 |
llm_calls=0, network_calls=0.复制: ./bin/memory-bench.回归门: ./bin/memory-perf-gate架构原理和每个阶段的审计: docs/v11/audit.md.原始工作台工件: docs/v11/benchmark.md.
如果你的数字与表格不符,请运行 ./bin/memory-bench --warmup 首先,冷FastEmbed导入在第一次调用中占主导地位。
传统:v10.5深度模式 memory_save 延迟
同步v10热路径内联运行五个LLM绑定阶段,因此 drop 判决可能会阻止INSERT,并且矛盾会取代同一事务中的提交。在macOS上使用温暖的Ollama,中值约为340毫秒;在没有GPU/CoreML的WSL2盒子上,每次LLM往返都可以将同一个调用延长到30-40秒。
v10.1提供选择加入功能 收件箱/发件箱工作人员 将重型舞台移出乐队:
sync : privacy → canonical_tags → INSERT → embed → enqueue → return
worker : quality_gate → entity_dedup_audit → contradiction → episodic → wiki在您的环境中启用它:
export MEMORY_ASYNC_ENRICHMENT=true
# Optional knobs (defaults shown):
export MEMORY_ENRICH_TICK_SEC=0.1
export MEMORY_ENRICH_BATCH=5
export MEMORY_ENRICH_MAX_ATTEMPTS=3
export MEMORY_ENRICH_STALE_AFTER_SEC=60重新启动MCP服务器。后台守护进程线程现在消耗 enrichment_queue;您可以在仪表板面板上观看 ⚡ v10.1浓缩工人.
Bench v10.5(10个记录语料库×2轮,开启LLM阶段)
memory_save 延迟:
| 分钟 | p50 | p95 | p99 | 最大值 | 平均值 | |
|---|---|---|---|---|---|---|
| 同步 (默认) | 17.5毫秒 | 25.3毫秒 | 2150.5毫秒 | 2179.0毫秒 | 2186.1毫秒 | 348.0毫秒 |
异步 (MEMORY_ASYNC_ENRICHMENT=true) | 18.1毫秒 | 22.3毫秒 | 26.7毫秒 | 27.4毫秒 | 27.5毫秒 | 22.7毫秒 |
memory_recall 潜伏期:两种模式(稳态)下p50≈3-5ms, 第一次预热时出现冷缓存p95异常值。
p95塌缩80× 使用async(2150 ms → 27 ms).在WSL2上使用 缓慢的Ollama,形状不变——30-40秒的同步p95变为 异步p95约为300-1000ms(LLM完全移出热路径)。
复制: ./.venv/bin/python benchmarks/v10_5_latency.py --rounds 2 --with-llm. 完整报告: benchmarks/v10_5_results.md.
折衷——软降语义
当async打开时,a quality_gate drop 不再阻止INSERT(我们已经在同步路径中提交了)。相反,该行被标记 status='quality_dropped' 在工人打分之后。 memory_recall 忽略该状态(idx_knowledge_status_quality 在迁移020中添加)。审计历史记录保留在 quality_gate_log 所以没有什么损失。
如果需要严格的插入前门控(例如合规性),请保持默认同步路径。
崩溃恢复
排被卡住了 processing 长于 MEMORY_ENRICH_STALE_AFTER_SEC (默认60秒)翻转回 pending 自动覆盖工作进程在中间阶段终止。先前存在的 write_intents 发件箱仍然盖着一个崩溃 *之前* 插入。
______________________________________________________________________
路线图
在v11.0(2026-04-27)中发货——生产内存引擎
- ✅ 默认
MEMORY_MODE=fast--保存/搜索/调用热路径中的LLM为零,Ollama为零,网络为零。集MEMORY_MODE=deep以恢复v10.5行为。 - ✅ 内存核心/AI层拆分 —
src/memory_core/*是确定性的;src/ai_layer/*拥有每个LLM绑定代码路径。被强迫tests/test_no_llm_hot_path.py. - ✅ 4种模式:
ultrafast/fast/balanced/deep.单个环境标志。 - ✅ 多嵌入空间契约 --每个向量行记录提供者/模型/维度/空间/内容类型/语言。空间:
text/code/log/config单色后端;每空间模型交换仅用于配置。 - ✅ 嵌入带门控的后备梯 --沉默的Ollama后退
Store.embed需要MEMORY_ALLOW_OLLAMA_IN_HOT_PATH=true. - ✅ 新的MCP工具:
memory_save_fast,memory_search_fast,memory_explain_search,memory_warmup,memory_perf_report,memory_rebuild_fts,memory_rebuild_embeddings,memory_eval_locomo,memory_eval_recall,memory_eval_temporal,memory_eval_entity_consistency,memory_eval_contradictions,memory_eval_long_context. - ✅ 迁移021(嵌入空间)+022(嵌入缓存_v11) --下次开始时幂等。
- ✅ 基准测试套件:
bin/memory-bench(人工制品docs/v11/benchmark.md) +bin/memory-perf-gate对于CI。
以v10.5版本发货(2026-04-27)
- ✅ 通用
memory-protocol技能 --单个规范SKILL.md+4个参考(所有60多个MCP工具的工具备忘单,15种常见情况的工作流配方,钩子参考,每个IDE设置)+4个模板(Claude Code settings.json,Codex config.toml,Cursor.mdc,克莱恩.md).每个IDE的内容相同;只是布线不同。 - ✅
install.sh --ide扩展到9个IDE:克劳德码、代码、光标, 克莱恩, 继续, 帮助, 帆板运动,gemini-cli,opencode。新助手:register_mcp_cline / continue / aider / windsurf+_json_merge_mcp_nested对于虚线键的情况(cline.mcpServers). - ✅ 跨平台硬化 --所有bash脚本都通过
bash -n在macOS bash 3.2(默认)下。替换${var,,}小写抨击update.sh随着tr '[:upper:]' '[:lower:]'。已通过shellcheck验证。 - ✅ 子代理内存协议 --任何子代理的通用标头(
php-pro,golang-pro,vue-expert等)具有强制性memory_recall之前/memory_save之后。中的完整模板skills/memory-protocol/references/subagent-protocol.md. - ✅ v10.5延迟基准 —
benchmarks/v10_5_latency.py苹果对苹果同步与异步比较。展示 减少80×p95 (2150 ms → 27 ms)当启用异步并打开LLM阶段时。
以v10.1版本发货(2026-04-27)
- ✅ 异步富集工作者 --选择加入
MEMORY_ASYNC_ENRICHMENT=true将质量门/实体消除/矛盾检测器/情节链接/wiki刷新移动到后台线程。在macOS上,最大节省延迟为5.4倍,在WSL2上为60-100倍。看 性能调优. - ✅
enrichment_queue桌子 具有过时的处理恢复功能(行在中停留时间>60秒processing翻转回pending). - ✅ 仪表板面板 对于工作人员健康:深度、吞吐量/分钟、每项任务p50/p95ms、最旧的待处理年龄、最近的失败。
- ✅
_binary_search值错误修复 —np.argpartition需要 `kth STRICTLY N小时的虚拟会话) - MLX本地LLM集成(内存#3583中的A1计划)
- 本地路径推测解码(+1.5-1.8×LLM速度)
______________________________________________________________________
支持项目
total-agent-memory 现在是,而且永远是免费的,麻省理工学院授权的。 没有付费层,没有门控功能,没有“企业版”。此页面上的基准是整个产品。
如果它每周为你节省了数小时的上下文粘贴时间,而你想帮助保持开发的进行——或者只是说谢谢——捐赠意义重大。
你的支持资金是什么
| 目标 | |
|---|---|
| ☕ $5 --一杯咖啡 | 一个晚上专注于OSS工作 |
| 🍕 $25 --披萨 | 一个新的端到端MCP工具(设计、代码、测试、文档) |
| 🎧 $100 --一个周末 | 一个主要功能:例如,偏好跟踪模块缩小了LongMemEval上80%的差距 |
| 💎 $500+ --冲刺 | 发布周期:新子系统+迁移+文档+基准工件 |
非货币援助方式(同样受到赞赏)
- ⭐ 标记回购 --GitHub发现在此运行
- 🐦 在X/HN/Redit上分享基准测试 --接触比捐款更重要
- 🐛 待解决问题 对于repro案例,bug报告是无价之宝
- 📝 写一篇博客文章 关于你如何使用它
- 🔧 提交PR --修复、新工具、新集成
- 🌍 翻译README --RU/DE/JA/ZH的第一批文件非常受欢迎
- 💬 告诉你的团队 --同行推荐转化率比营销好10倍
商业/咨询
- 构建一些可以从自定义集成、本地部署或团队共享内存中受益的东西? 电子邮件
vbcherepanov@gmail.com--对合同工作和合作关系持开放态度。 - 谁的路线图重叠的AI/dev工具公司?同样的电子邮件——很乐意交谈。
______________________________________________________________________
哲学
麻省理工学院永远。 没有商业许可证转换,没有风险投资,没有黑暗模式。内存层属于使用它的开发人员,而不是SaaS供应商。
当地第一是产品。 如果你想要一个云内存服务,mem0和Supermemory都很棒。如果你想让你的数据在你的磁盘上,不受其他人的影响——这个。
诚实的基准。 此页上的每个数字都可以从中的工件中复制 evals/ 以及其中的脚本 benchmarks/如果你不能重现一个声明,那就打开一个问题——这是一个bug。
______________________________________________________________________
贡献
- 在大型公关之前打开一个问题——节省了每个人的时间。
pytest tests/必须保持绿色。为新工具添加测试。- 更新
evals/scenarios/*.json如果您更改检索行为。 - 仅限文档/打印错误的PR不受讨论。
______________________________________________________________________
许可证
麻省理工学院——见 许可证.
______________________________________________________________________
Built for coding agents. Runs on your machine. Free forever.
Compare to mem0 / Letta / Zep / Supermemory · Benchmark artifact · TypeScript SDK · Donate
