你的 AI 记得你,也记得你已经改变。

让 AI 记得你,
也记得你已经 改变。

MindBridge 为 Codex 等 AI 工具提供一层可追溯的长期记忆:operational T3 记住怎样更好地和你工作,reflective T3 只保存你确认过的模式与身份假设。每次召回都带来源和时间,Memory Core 默认在本地运行。

先看见产品,再理解架构

一张卡片记录今天;一条时间轴解释变化。

MindBridge 把零散对话整理成可以回看、召回和审计的记忆,而不是把整段聊天永久塞回上下文。

2026-08-04 · 周二自动生成

今日记忆卡

  • 在 Codex 里过了 3 道 Graph 题,卡在拓扑排序。
  • 用 FastAPI 搭好 /retrieve 雏形,修掉 3 个 500。
  • 凌晨 1:12 还在改架构,比前一天晚了两小时。

新增偏好

Python 用 uv周末不排会议回答要直接

今天你自己没写一个字。

来自 38 个项目 · 243 份 transcript

每晚一次,自动写好。

记忆时间轴

Python 项目优先用 uv

created_at 2026-08-04 · 刚写入

周末不排会议

created_at 2026-07-28 · valid_at 未关闭

周六早上健身

created_at 2026-07-19

周末可以加班

已被 2026-07-28 那条取代

没被提起的记忆会自己变淡。

已接入真实客户端

不只展示页面。MindBridge 已经跑在 Codex 和 Claude Code 里。

Codex 与 Claude Code 都通过本地 STDIO MCP 调用同一个 MemoryService;两边的本地 JSONL 也增量写入同一个 T1/T2 store。查询可以直接执行,长期写入需要用户确认。

2026-08-20 本机验证:全新 Claude Code 会话真实调用 get_daily_review 并收到四层结果;三类本地日志进入同一个 Postgres,source_key 重复数为 0。查看完整安装与使用指南
Codex + Claude Code × MindBridge本地已验证
01把下面的安装指令粘贴进 Codex 或 Claude Code
02安装完成后,在对应客户端新开一个会话
03先分开查看 T2 / T3,再按需确认长期写入
Read https://mindbridge.liangyue.site/install.md to install MindBridge locally, connect Codex and Claude Code, and ingest both local transcript sources.
调用 MindBridge 的 get_daily_card 读取最新 T2,再用 review_long_term_memory 读取最新 3 条 T3。分开回答并标注 ids,不要写入。本机验证,不是公网托管服务;需要本地数据层运行。公开 Companion Loop 使用合成数据。

在 Codex / Claude Code 里的六步用法

先看今天,再区分工作偏好与关于自己的假设。

Daily Review 同时显示 T2、operational T3、reflective T3 与待确认 Pattern Candidate。推断必须先留在候选层;只有用户确认后才能进入 reflective T3。

01 · 回顾今天(T2)

读取按天生成的事实、行为观察与未完成事项,不把它们自动当成长期性格。

调用 get_daily_review 读取最新日报,分开显示 T2、两条 T3 和待确认候选。

02 · 审计长期记忆(T3)

完整查看当前和已失效的长期记忆,而不是只看语义搜索命中的几条。

分别用 namespace=operational 和 namespace=reflective 调用 review_long_term_memory,标注 ids。

03 · 带着记忆工作

只召回与当前任务有关的 T3,让 Codex 使用偏好时同时交代来源。

先用 temporal_query 查询我的写作偏好,引用 memory ids,然后再修改这篇文章。

04 · 先提出 Pattern Candidate

至少三条证据、跨两个日期,同时展示反例;候选不是人格事实。

调用 propose_pattern 提出一个关于我如何处理范围不确定性的候选,但不要写入 T3。

05 · 用户确认后再进入 Reflective T3

确认、改写或拒绝都会留下 receipt;只有确认/改写会创建长期记忆。

先让我查看候选;得到明确决定后再调用 resolve_pattern。

06 · Memory Garden 精修

按 memory id 审核某条 T3,再决定是否改写或归档,旧版本仍可追溯。

调用 get_memory_record(42);确认后调用 edit_memory(42, ...) 或 archive_memory(42)。

11 个工具分别能做什么

读取类可以直接调用;写入类都需要你确认。括号里是常用参数。

读 · 回顾

get_daily_card
读某一天的 T2 卡片,看那天到底做了什么。
get_daily_review
一次看全:当天 T2、两条 T3 通道,以及待确认的模式候选。
review_long_term_memory
按 namespace 列出长期记忆,不做语义排序,用于完整审计。
temporal_query
按问题召回相关偏好,越近的权重越高。

写 · 需你确认

upsert_preference
存一条持久事实;写入前先和已有记忆去重。

模式 · 先候选再确认

propose_pattern
提出一个关于你的假设,先放在 T3 之外的候选层。
review_pattern_candidates
查看候选和它们的证据,不改动 T3。
resolve_pattern
把你的确认 / 改写 / 拒绝落到候选上,只有前两者会进 T3。

维护 · Memory Garden

get_memory_record
按 id 精确读一条 T3,用于引用和核对。
edit_memory
用你确认过的措辞替换一条记忆,旧版本仍可追溯。
archive_memory
关闭一条记忆,不删历史。

为什么这种记忆更可信

每次召回,都回答三个问题。

01 · SOURCE

它从哪里来?

返回 memory id 与来源记录,你能追到原始证据。

02 · TIME

它何时成立?

created_at 说明写入时间,valid_at 说明它是否仍有效。

03 · CHANGE

后来发生了什么?

新偏好会取代冲突记录;旧历史保留,但不再代表现在。

两条捕获路径

一条不用你动手,一条让模型自己来。两条写进同一个记忆层。

被动日志解析路径 A已可用

不需要你做任何事。增量解析本地结构化日志,按天算出真正发生了什么;写入前先遮蔽疑似密钥。

~/.claude/projects/**/*.jsonl~/.codex/sessions/** + archived_sessions/
主动 MCP 读写路径 B已可用

挂成标准 MCP server,模型在对话里自己决定何时写入、何时召回;记忆写入有用户确认,支持按 id 精修与归档。

get_daily_cardget_daily_reviewreview_long_term_memorytemporal_queryupsert_preferencepropose_patternreview_pattern_candidatesresolve_patternget_memory_recordarchive_memoryedit_memoryCodex · Claude Desktop · Claude Code · Cursor · VS Code
看这 11 个工具分别能做什么
MindBridge 记忆层T1会话缓冲区 — 今天的原始轮次T2滚动摘要 — 按天归档的记忆卡T3operational 工作偏好 + 用户确认的 reflective 模式
每日记忆卡
不用主动写,翻回上个月也能看见自己的变化。
跨客户端召回
在 Claude 里说过的习惯,Cursor 里立刻生效。

解析与存储都在本机:读你自己机器上的 transcript,写本地 Postgres。

覆盖范围说清楚:路径 A 只对有本地结构化日志的工具成立(Claude Code、Codex CLI);路径 B 对任意 MCP 客户端成立。ChatGPT 与网页版 Claude 的历史没有 API,只能手动导出,不在自动范围内。

技术架构

每一层都标了它跑在哪里、由什么产生。规则计数与模型撰写分开标注,因为两者的可信度不同。

一条转录记录,从磁盘到可召回的记忆

  1. 01来源本机

    本机磁盘

    • ~/.claude/projects/**/*.jsonl
    • ~/.codex/archived_sessions/
  2. 02Path A · 增量解析本机

    本机 · 纯 Python,无模型

    • 字节游标断点续读
    • 合并同 message.id(修正 2.5x token 重复计数)
    • 密钥脱敏后才落库
  3. 03T1 会话缓冲本机

    Postgres

    • 原始轮次 + project / git 分支 / 工具名
  4. 04T2 每日卡本机

    本机 · 规则计算

    • 从 T1 按整天重建,不依赖增量
    • 计数、时间跨度、工具统计——可复现
  5. 05M2 抽取会出本机

    生成式模型(可选)

    • 散文叙述 + 结构化偏好 JSON
    • Pydantic 校验失败即带错误重试
    • 唯一会把内容发出本机的一步
  6. 06T3 长期记忆本机

    pgvector · 本地 embedding

    • 写入前余弦去重(阈值 0.80)
    • operational / reflective 双通道
    • 召回按 cosine × e^(-λΔt) 时间衰减
MCP 客户端Claude Code / Cursor / VS Code 直接读写同一份记忆
日记界面/demo 读同一个 API,连不上时降级为示例数据并标明
Pattern 循环模式候选 → 你确认 → 才写入 reflective 记忆

信任边界

本地优先,不等于含糊其辞。

我们把默认行为、可选的外部处理和暂未支持的范围放在同一个地方说明。

默认留在本机

transcript 解析、Postgres / pgvector、Redis 与检索都在你的设备上运行。

外部抽取需显式开启

托管模型只用于可选的训练数据生成;不传 --send-to-provider 就不会发送摘录。

公开演示不含真实数据

Companion Loop 使用合成数据;本机验证结果与公开 demo 明确分开。

Codex 原生 Memories 尚未合并

当前通过 MCP 连接。若要形成单一事实源,需要另做可审计迁移,而不是直接改 ~/.codex/memories/。

可复现实验

只展示能复跑、能解释的结果。

所有数字来自仓库中的 eval 脚本与 results.json。样本小的结果会明确标成 pilot;没有安全阈值的功能就保持关闭。

100%时间衰减打分正确性
100%失效记忆隔离正确性
86.7%偏好抽取 JSON 合规率
18.8s本机 MLX 抽取延迟
实测不安全 · 已关闭语义近邻缓存
查看评测脚本与原始结果

把它接进你的工作流

下一次打开 Codex 或 Claude Code,让它先问问:你现在还是这样吗?

按安装指南启动本地 Memory Core、连接 MCP,然后用一条带 memory ids 的查询检查它记住了什么。