梦境循环(上):大脑在你睡觉时自己整理
你把好几千篇笔记丢进 brain,然后呢?你不可能每加一篇就手动去抽实体、连图谱、校对自己的观点。一个会自我增值的知识系统,得自己动手。gbrain 把这套后台自动整理叫做梦境循环(dream cycle)。
这一课先讲「它整体在干什么、为什么值得信任」,下一课(第 9 课)再讲「它怎么在多 source 间并行、有什么边界」。
一、它到底是啥:一轮有纪律的后台流水线
梦境循环不是一句「AI 自动整理」那么玄。它是一个常驻自动守护(autopilot)每天定时(定时任务 cron)触发的一轮流水线,里面是一串被严格约束的「阶段(phase)」1。每个阶段只干一件事,而且被一条基类 BaseCyclePhase 管住纪律——source 隔离、预算上限、出错处理都结构化了,少写一步编译都过不了1。
为什么搞这么重?因为早先每个 phase 各管各的隔离和预算,结果反复出「source 串味」「预算爆了崩」的 bug。把纪律压进基类,是 gbrain 用血的教训换来的——一个要 7×24 小时自己跑的东西,最贵的不是功能,是「不会偷偷跑挂、不会串数据」。
二、一轮里它替你做这些事
一轮梦境循环大致会跑这些阶段2:
- 抽取(extract):从新笔记里抽实体、关系、结构化字段(接第 6 课 schema pack 的可抽取类型)。
- 嵌入(embed):给新内容算向量(向量化 embedding)。
- 图谱补全:顺藤摸瓜把笔记间的带类型边补上(第 5 课讲过的 works_at/invested_in)。
- 孤儿清理(orphans):找出没人连、没人引用的悬空页。
- 净化(purge):清掉过期、被删、失效的东西。
- 观点抽取与校准(propose/grade takes、calibration_profile):把笔记里的主观看法抽成观点(takes),并尝试给它们的「可证伪性」打分1。
对使用者来说,你感知不到这些——你只会在某天检索时发现「咦,新加的公司自动连上了它投资的那家」「我的观点被系统标注了置信度」。幕后就是这轮循环在跑。
三、一个必须如实说清的边界
讲 gbrain 不能只讲光鲜面。梦境循环里有个评分阶段(grade_takes)目前是占位实现(stub)——它的「证据检索器」还没接上真实的检索, verdict 是靠 placeholder 证据产出的3。换句话说,「观点的可证伪性评分」现在还不是基于真实证据的强能力。监督它的人不能把它当已落地的拿来验证。
这种「如实标注哪里是占位」的态度,是读 gbrain 源码最该学的——它不吹自己没做到的东西。你造工具时也该这样:哪些是真的、哪些是骨架,分清并标明。
四、它还顺手做质量自检
梦境循环里有个矛盾探针的采样阶段(第 5 课讲过):它不全量两两比对(那是 N² 爆炸),而是借混合检索(hybridSearch)找出「会被一起召回」的配对才送大模型(LLM)判,把成本压到线性4。这保证你 brain 里「一月看空、九月看多」这种前后打架的观点会被标出来,而你不用自己翻。
五、这一课带走的
- 梦境循环 = 常驻自动守护(autopilot)每天触发的一轮后台整理流水线。
- 它不是黑箱,是一串有纪律的阶段:抽取、嵌入、图谱、孤儿清理、净化、观点抽取与校准。
- 它的价值不在「智能」,在「7×24 不乱跑、不串数据、预算可控」的工程纪律。
- 如实边界:观点评分阶段当前是占位实现,不是真能力。
练习题
梦境循环由什么触发?
阶段纪律(source 隔离、预算上限)为什么被压进 BaseCyclePhase 基类?
grade_takes 的「可证伪性评分「目前是?
矛盾探针在循环里怎么做质量自检以控成本?
参考出处
Footnotes
-
代码
src/core/cycle/base-phase.ts(BaseCyclePhase抽象类,v0.36.1.0 D21 引入;背景是 Hindsight 校准三新 phasepropose_takes/grade_takes/calibration_profile;基类结构化 source 隔离/预算/错误,忘记 thread 编译不过;解决 v0.34.1 的 source-isolation bug 类)。 ↩ ↩2 ↩3 -
代码
src/core/cycle/(extract/embed/orphans/purge/resolve_symbol_edges/grade_takes/calibration_profile 等 phase;NON_GLOBAL_PHASES/GLOBAL_PHASES区分 per-source 与全局阶段)。 ↩ -
代码
src/core/cycle/grade-takes.ts(注释明示「Default evidence retriever — v0.36.1.0 ship-state placeholder. Real [retriever] not yet wired」;多数 verdict 由 stub-judge 对 placeholder 证据产出,故 grade_takes 当前「可证伪性评分」非基于真实证据检索)。 ↩ -
代码
src/core/eval-contradictions/runner.ts(先hybridSearch取每 query top-K 召回,对「会被一起召回」的配对才送 LLM judge;pair 数 = queries × min(topK(topK-1)/2+topK, 50),成本随检索线性而非 N²)。 ↩