recollect · agent-native memory · 2026

一个可追溯的
agent 记忆基座

中心负责存原始对话、跑抽取、发快照;每台机器上有个节点跟着同步,断了网也能自己继续整理; 各种 agent 通过固定入口,把该记的读进上下文。多台设备、多个 agent 共用一份, 默认只在可信的私有网络里跑。原始对话是唯一的事实源,记忆只是指向它的索引。

召回即自然语言 单个可执行文件 多机多 agent 共用 任意会话导入 可溯源撤销
0模块
Rust 工作区
契约、存储、网络、使用入口各自成箱
0测试
测试函数
不看「成功」开关,看真的写了几行
0表
正式记忆表(第 6 版结构)
身份、来源、审计各占一张表
0工具
13 个共享记忆工具 + 28 个私有工具
其余留给运维与调试

以上数字取自 2026-11-09 的仓库实测。

召回长这样 · view=brief 读时不生成

你们在 10-22 讨论过部署脚本,结论是统一走 build-release.sh[1]; x86 与 ARM 两套产物各自带 SHA256SUMS[2]; 冷启动读数在 docs 目录里的那篇记录,不在记忆正文里[3]。

对 LLM 来说,读一句组织好的话,比解析一堆碎片省力;碎片越零散,越容易自己补全。

整句有上下文碎片和字段串没有被组织成上下文,模型容易自己补全;完整句子把人和事、时间、因果说清楚,更不容易读偏。
读时不调模型句子由程序按模板拼;读侧不生成内容,也就不会在读取时编,还少一次往返。
要证据再伸手每个 [n] 都是句柄,按它取回原话,全文不塞进上下文。
同一批候选,也可以读 JSON、卡片或证据链。 看四种读法
01

三条主张,决定了其余一切

这不是一份功能清单,而是一套取舍。下面每一条都对应代码里的一个约束; 读过这三条,再看后面的每条管线都会有依据。

0 / 1

程序做定位,
LLM 做语义

序号、时间、谁说的、工具调用、提到了谁、去重、出处,全由程序算; 实体、事实、关系、情绪、歧义怎么判,才交给模型。一次只问模型一个问题。

0 / 2

原始记录是事实源,
记忆是索引

记忆只存「一句结论 + 指向原文的编号 + 出处」。完整对话、工具输出、代码和日志留在原始层, 要看时按编号翻回去,不在记忆里重抄一遍原文。

0 / 3

身份稳定,
位置可变

身份是一个算出来的哈希:换台机器、重新导入一次,都还是同一条; seq 只是给人看的序号,不是身份。中心搬到哪,编号所指的还是它。

02

两种 agent,重点不一样

同一套库、同一套管线。差别只在:接进来的是谁,它最需要什么在眼前。

companion

陪伴型

聊了三个礼拜,第二天还能接上:你是谁、你当时什么心情、那事后来怎么了。

人格 画像 情绪 事件 因果 小本本
常驻简报 · 情绪与状态 · 事件与因果 · 小本本
看场景
engineering

工程型

项目跨三周,换个人接手也能接上:谁改的、为什么改、下一步归谁。

事件线 小本本 交接条 闭环 可核对
事件线 · 小本本 · 交接条 · 闭环 · 原话
看场景
大肥鱼(鲸鱼娘)形象
SOLO · 一台设备

只有一台电脑,一个陪伴角色,也成立

本机就是中心;配对、复制和跨机读取留在抽屉里。看看哪些会跑,哪些根本不用开。

看单机怎么跑 大肥鱼(鲸鱼娘)· 社区二创,非官方
04

从一条会话,到一次可展开的召回

写入与读取是两条独立的路径,中间只隔一层可重建的记忆。 抽取失败、提示词改版、模型换掉,原始会话都不会丢。

01 / INGEST

导入

各家 agent 自己的转换器把会话写进统一格式;入库检查不过就改转换器,核心不认任何私有格式。

02 / EXTRACT

抽取

程序先定位,LLM 再接语义任务。每条输出只带 seq 与逐字引文,别的字段不给。

03 / REVIEW

审核

先用程序把能机械检查的查一遍;再让模型单独审一次,只挑问题,不改写、不重抽。退回的草稿会带上原因。

04 / COMMIT

落地

结论、编号、出处进记忆层;原文留在原始对话里。测试看真的写了几行——写零行等于错误。

05 / RECALL

召回

默认给一句带句柄的简报——句柄就是行首那个 [1],拿着它能换回那条记忆;记忆里的 turn 指针再用 recollect_turn 取回原话。程序读 json,核对的人用 expand 看证据链。

06

为什么这么设计

每一条都对着一个真踩过的坑,不是为了复杂而复杂。

对话一关,上下文就没了
→
原文永远留着,凭指针随时能找到
模型会编,尤其在时间和数字上
→
程序做定位,模型只判断语义
结论跟出处对不上,错也不知道错在哪
→
每条都带原文位置和时间,能撤销、能替换
换个模型就得重来一遍
→
记忆只存结论,原文不动,重跑一遍即可
小机器上,向量模型太重
→
先用关键词精确召回;要向量再加可选表,不进核心
一个人维护不动一堆服务
→
单文件、只用 SQLite、没有消息队列
一个可执行文件没有外部服务、没有控制台窗口,拷过去就能跑。
一台机器就是中心没有中心时,本机就是中心;有了中心,它也只是多一个角色。
只用 SQLite不引入消息队列、缓存和搜索集群;出了问题能直接打开看。
断网也能继续断一天就在本地接着整理,断五天先自己当中心;网回来按固定顺序并回去。

记忆应该是地基,
不是插件的副产品。

从架构开始 9 页 · 可交互 · 可离线打开