致知录
第 XXXIII 卷 · 第 08 篇 · gbrain · 1970.01.01

你的记忆分两层:观点与事实,热与冷

gbrain 工具拆解 · 1970.01.01 · 6 分钟阅读 · 1,442 字
目录 · 8
gbrain 不让你的主观看法和客观事实混在一起——围栏标记分开存、冷存储与热记忆各司其职

你用久了会发现一个别扭:投资笔记里,既有「我明天和某公司开会」这种转眼就过期的琐事,也有「张三认为这家公司护城河很深」这种别人的看法,还有「这家公司融了 C 轮」这种硬事实。如果全塞进一个抽屉,检索时「别人的看法」会冒充「客观事实」冒出来,你拿它当真理就出错了。

gbrain 把这件事看得很重,它用两道设计把记忆拆开:一道是「围栏标记(fence)」把主观和客观在每篇笔记里分层;另一道是「观点(takes)表」与「事实(facts)表」两套存储,一冷一热。

一、一篇笔记里:围栏标记把「事实」和「观点」隔开

你写笔记时,可以用围栏标记把内容分成两段。被 =facts 围栏包住的是你认定的客观事实;被 =takes 围栏包住的是你的主观观点、判断、推测。gbrain 在做隐私剥离、检索、抽取时,会分别对待这两段——比如远程 agent 调你的 brain,私有事实那段会被剥掉,观点那段的处理又不同1

对使用者最直观的好处:你一眼能分清「这篇里哪些是事实、哪些是我的看法」。对一个想造类似工具的人,这步分层是关键——别让主观判断污染事实检索,否则系统给你的「答案」会夹带未经证实的立场。

二、两套存储:观点(takes)冷、事实(facts)热

光在单篇里分层还不够。gbrain 在数据库层面把「观点」和「事实」存成两张不同的表,而且温度不同2

  • 观点(takes)是冷存储。它记的是「谁、信什么、有多信、什么时候信」——而且不是只记你自己的,是多持有者的。你 brain 里可以有「合伙人怎么看这家公司」「某投资人怎么看市场」这些别人的看法,都归在这里。它由大模型(LLM)从你的笔记里抽取出来,是回顾性的、页变了才更新的慢数据。一个成熟的 brain 里能有十几万条2
  • 事实(facts)是热记忆。它只记你一个人在对话中实时说出的个人知识——「我明天开会」「我不喝咖啡」「我们决定三月团建」。它由每次对话的钩子实时抽取,是即时捕获的快数据2

为什么分两张表、两种温度?因为它们的用途天差地别。事实是你刚才说的、马上要用的(「明天开会」);观点是沉淀下来的、跨时间对比的(「我一月看空、九月看多」)。把它们混在一起,就是 gbrain 文档里反复警告的「类别错误(category error)」——你会把别人或自己过去的看法,当成此刻的客观真相去检索2

三、两者之间有一座单向桥

冷和热不是完全割裂的。每天夜里跑的梦境循环(第 8、9 课会细讲)里有个 consolidate 阶段,会把当天捕获的热事实,晋升成冷观点——就像人睡觉时把白天的短期记忆固化成长期记忆2。注意这是单向的:事实往上走变成观点,观点不会掉回事实。这个设计保证了你实时说的碎碎念最终沉淀成可长期追溯的信念,而不是永远漂在热层。

四、一个建筑师会记下的

把「主观/客观」和「冷/热」两个维度正交拆开,是 gbrain 在记忆建模上最值得抄的一点。多数个人知识工具只存「笔记」,不区分「这是事实还是看法」「这是此刻的还是沉淀的」。结果检索时立场和真相搅在一起。gbrain 用 fence 做单篇分层、用 takes/facts 双表做冷热分离、用 consolidate 做单向桥接——三层配合,才让「我检索到的到底是谁的、什么温度的认知」这件事变得可追问。

五、这一课带走的

  • 写笔记时用围栏标记(fence)把事实段和观点段分开,检索时各取所需。
  • 观点(takes)是冷的多持有者belief,事实(facts)是热的单用户实时记忆,别混。
  • 两者靠梦境循环的 consolidate 单向桥接:热事实夜里晋升为冷观点。
  • 对使用者无感,但决定了你检索到的「答案」到底是事实还是某人的看法。

练习题

1

gbrain 用围栏标记(fence)把一篇笔记分成哪两段?

2

观点(takes)表和事实(facts)表最核心的区别是?

3

consolidate 阶段在梦境循环里做什么?

4

把别人的看法当客观事实检索,gbrain 称之为?


参考出处

Footnotes

  1. 代码 src/core/import-file.tsstripFactsFence / stripTakesFence(分块前分别剥离私有事实/观点文本,远程调用时应用于隐私边界);docs/takes-vs-facts.md 描述的 fence 分层(事实段 vs 观点段在单篇内分离)。

  2. 文档 docs/takes-vs-facts.md(takes 为冷存储、多持有者、由 LLM 从页抽取、100K+ 行;facts 为热记忆、单用户、由对话钩子逐轮实时抽取;两者经梦境循环 consolidate 阶段单向晋升;文档明确警告「Never dump takes into the facts table」的类别错误)。 2 3 4 5