服务以透明代理的方式坐在客户端和模型之间。你照常对话,它在旁边把值得留下的东西留下来。
每一轮真实对话原样入库(L0)。工具调用的中间往返、客户端自己发的起标题请求都会被识别并跳过,不污染记录。
对话结束后异步交给小模型,从中挑出稳定可复用的事实(L1):偏好、身份、习惯、项目背景。一次性的寒暄不留。
新会话开始时,按关键词命中相关记忆并注入 system prompt。命中不足时回退到最近记忆,交给模型自己判断。
Codex 说 OpenAI Responses,Claude Code 说 Anthropic Messages。服务同时听懂两种, 写进的是同一个记忆库——所以它们之间才谈得上"协同"。 Claude Code 用原生账号时不走代理:改地址等于把订阅和原生模型一起换掉, 所以它只把召回和入库交给服务,对话仍旧直连自己的账号。
写代码时说的每一句话,本来就是在某个仓库里说的。所以对话和事实都带上项目, 事后按这条轴回看,而不是在一条越来越长的时间线里翻。
客户端上报工作目录,从 cwd 向上找最近的 .git——在子目录里开的会话仍然算同一个仓库,不会旁边再冒出一个项目。
后台顶部选一个项目,记忆、会话、统计一起跟着走。分开筛两次的话,两边说的就不是同一件事了。
历史对话重跑一次回填就补上项目。历史记忆没记下自己从哪一轮来,只能按时间就近推断——所以后台只给建议,连依据那一轮一起摆出来给你看。
目前项目只是"存"和"看"的维度:召回仍然是全库一起竞争注入名额, 后台的召回调试台因此也不受项目筛选影响——它要是跟着筛,就不再是真实情况了。
Codex 改个地址就行。Claude Code 用的是原生账号,改地址等于把订阅赔进去, 所以换成装两个钩子——账号、模型、订阅全都不动。
团队级的记忆系统要 Docker、Redis、管理面板和多租户模型。个人场景不需要那些。
纯 Node.js,不装任何 npm 包。JSON 文件存储,数据能直接打开、备份、迁走。
跑在你自己的服务器上。记忆库是一个 JSON 文件,随时可查可删,没有第三方经手。
服务端指定模型后,所有电脑、所有工具自动跟着走,不用逐台改配置。