用途
cortex-plugin(代码仓库内名称为 memem)是一个面向 Claude Code 的持久化记忆插件,目标是让 Claude 跨会话记住项目相关的经验,避免每次会话都重新解释项目背景。它从对话中自动挖掘可长期保留的“教训”,包括决策、约定、Bug 修复与偏好,并把它们作为人类可读的 Markdown 存储在本地的 Obsidian 仓库中。
主要能力
- 事件触发挖掘:通过 Stop 钩子(hooks/stop-mine.sh)在每次 Claude Code Stop 事件后启动脱离的 mine_delta 子进程,从 JSONL 会话文件中读取新增对话,调用 Haiku extract_from_text 提取记忆。钩子自身开销约 50ms,提取在后台完成。
- 记忆存储:提取内容以 Markdown 写入 ~/obsidian-brain/memem/memories/,本地优先,无云端服务、无 API Key、无供应商锁定。
- 检索与呈现:使用 SQLite FTS5、BM25、余弦相似度与 RRF(Reciprocal Rank Fusion)等组合检索;active_memory_slice 返回“Active Memory Slice”工作状态,默认 runtime context 为 slice-first,同时保留显式叙事组装路径。
- 路径作用域检索:v2.9.1 激活 v2.9.0 中已内置但未启用的路径作用域检索,recall 会自动从当前会话推导 paths_context,使 paths: 加成生效;同时支持调用方手动提供 paths_context。
- 转录全文搜索:transcript_search 由 ~/.memem/transcript_fts.db 中的持久 FTS5 索引支持,每个问答对一行,index_session() 由 mine_delta 增量调用,旧版每会话单行索引自动迁移,grep 回退受大小/数量/时间上限约束。
- 写入路径:miner 会将提取候选与最近邻记忆进行批量 Haiku 比较,选择 ADD、UPDATE、SUPERSEDE 或 NOOP,并带安全护栏(保护目标、截断防护、每次 delta 最多 5 个破坏性操作等)。
- 反馈与评估:每次检索关联会话 id,miner 扫描助手文本中引用的记忆 id 并写入 citation 记录到 .recall_log.jsonl;提供 --analyze-recalls 及基准测试工具。
- 分层上下文模型:v2.8.0 起用 profiles(用户级与项目级常注入文档)、working rules(type:procedural 记忆,按引用数排序)、episode index(最多 25 条 episodic 标题索引)替代旧 L0–L3 层系统。
- 工具面精简:v2.9.0 将 MCP 工具从 14 个精简到 6 个,工具描述 schema 体积减少 57%。
使用方式
- 作为 Claude Code 插件安装并配置 Stop 钩子(hooks/stop-mine.sh)与 SessionStart 钩子。
- 记忆文件存放于 ~/obsidian-brain/memem/memories/,可用 Obsidian 直接查看。
- 会话开始时 Claude 可收到 ## Episode index 或 Working rules 等区块;主动检索可使用 memory_search、memory_get、active_memory_slice 等 MCP 工具或 CLI 路径。
- 运行 python3 -m memem.server --analyze-recalls 查看检索模式;使用 --migrate-layers 从既有仓库引导 profiles;使用 --dream --safe-auto 在每 25 个实质挖掘 delta 后自动执行 dreamer(reflection_with_citations、tense_rewrite、cluster_merge 等)。
- 相关 CLI 示例:python3 -m memem.server --purge-contaminated [--apply]。
适用场景
- 需要跨会话保持项目上下文一致性的 Claude Code 用户。
- 希望把重要决策、约定、Bug 修复以可读 Markdown 形式沉淀并可在 Obsidian 中浏览的开发者。
- 在意本地优先、不需要云服务或 API Key 的隐私敏感场景。
限制与注意事项
- 官方资料未提供具体的收费、价格信息,价格与收费情况暂未提供。
- 令牌成本:v2.1.0 起实时挖掘使每会话令牌成本约为此前 v2.0.0 会话结束批量模式的 5–20 倍。
- 依赖 Claude Code 钩子与 Haiku 调用;钩子路径、MCP 工具与 CLI 参数可能随版本发生破坏性变更(如 v2.0.0 重写 schema、active_memory_slice 从 8 参数精简为 2 参数)。
- 部分旧环境变量与模块在升级中已被移除或变为无操作(如 MEMEM_USE_LLM_JUDGE、MEMEM_USE_EMBEDDINGS、slice_daemon 等)。
- 官方资料未提供关于支持平台、数据规模上限、并发能力等方面的明确说明,这些信息暂未提供。