如何评价当前大语言模型的记忆机制?

AI 记忆系统的无人区:我们为什么放弃检索,造了一片「神经记忆场」

目录

  1. 一个反直觉的起点:记忆不是仓库里的货物
  2. [书童协议的哲学地基:AI 是认知校准器,不是答案机器](#书童协议的哲学地基:AI 是认知校准器,不是答案机器 "#2-%E4%B9%A6%E7%AB%A5%E5%8D%8F%E8%AE%AE%E7%9A%84%E5%93%B2%E5%AD%A6%E5%9C%B0%E5%9F%BAai-%E6%98%AF%E8%AE%A4%E7%9F%A5%E6%A0%A1%E5%87%86%E5%99%A8%E4%B8%8D%E6%98%AF%E7%AD%94%E6%A1%88%E6%9C%BA%E5%99%A8")
  3. 神经记忆场的核心隐喻:记忆是活的神经元网络
  4. 记忆域的三层架构:热、温、冷是整理状态,不是温度
  5. [回忆机制:从「查询-返回」到「入口激活 + 场扩散」](#回忆机制:从「查询-返回」到「入口激活 + 场扩散」 "#5-%E5%9B%9E%E5%BF%86%E6%9C%BA%E5%88%B6%E4%BB%8E%E6%9F%A5%E8%AF%A2-%E8%BF%94%E5%9B%9E%E5%88%B0%E5%85%A5%E5%8F%A3%E6%BF%80%E6%B4%BB--%E5%9C%BA%E6%89%A9%E6%95%A3")
  6. 认知拓扑涌现:单峰、双峰与多峰
  7. 上下文的两步走:记忆处理与扇区编排
  8. 追问的内禀化:从硬编码规则到场状态触发
  9. [Hebbian 在线塑形:每轮对话都在重写认知地形](#Hebbian 在线塑形:每轮对话都在重写认知地形 "#9-hebbian-%E5%9C%A8%E7%BA%BF%E5%A1%91%E5%BD%A2%E6%AF%8F%E8%BD%AE%E5%AF%B9%E8%AF%9D%E9%83%BD%E5%9C%A8%E9%87%8D%E5%86%99%E8%AE%A4%E7%9F%A5%E5%9C%B0%E5%BD%A2")
  10. [MVP 的工程克制:22MB 模型、纯内存、零外部依赖](#MVP 的工程克制:22MB 模型、纯内存、零外部依赖 "#10-mvp-%E7%9A%84%E5%B7%A5%E7%A8%8B%E5%85%8B%E5%88%B622mb-%E6%A8%A1%E5%9E%8B%E7%BA%AF%E5%86%85%E5%AD%98%E9%9B%B6%E5%A4%96%E9%83%A8%E4%BE%9D%E8%B5%96")
  11. 未竟之地:相似非相同,以及多峰之外的认知地形
  12. 参考文献
  13. 结语:无人区的坐标

1. 一个反直觉的起点:记忆不是仓库里的货物

现有大语言模型的记忆系统,本质上都是检索增强(RAG)的变体。无论是向量数据库、关键词索引,还是最近流行的「记忆层」API,底层逻辑完全一致:

把记忆切成块,编上号,存进仓库。需要时按相似度排序,取 Top-K,拼进 Prompt。

这套范式在问答场景里跑得通,但一旦进入长程、多轮、语义纠缠的对话,就会暴露三个结构性缺陷:

第一,检索是静态的。 记忆的「相关性」在入库那一刻就被向量固定了,后续对话再怎么演化,旧记忆的坐标不会动。人脑不是这样------同一段记忆,在今天和三个月后的激活路径完全不同。

第二,召回是局部的。 向量相似度只能找到「长得像」的记忆,找不到「语义关联但表述不同」的记忆。你三天前说「那个 JWT 方案有问题」,今天说「认证模块还是不稳」,传统系统几乎不可能把这两句连起来。

第三,上下文是粗暴拼接的。 传统系统把检索到的记忆块直接塞进上下文,不分远近、不分轻重、不处理冲突。当两段记忆互相矛盾时,系统只会把它们一起丢给 LLM 自己去打架,本身感知不到「我在拉扯」。

我们造「神经记忆场」(Neural Memory Field),就是为了跳出这个框架。


2. 书童协议的哲学地基:AI 是认知校准器,不是答案机器

在讲技术之前,必须先交代这套系统的哲学前提------它来自我们持续迭代的书童协议(shutong-protocol)。

书童协议的核心主张只有一句话:

AI 不确定的时候,应该停下来追问,而不是硬猜。

这不是用户体验优化,这是认识论立场。我们认为:

  • 概率性属于认知机制(选择走哪条记忆路径可以采样);
  • 确定性属于认知结果(一旦选中,原文必须零压缩、零失真地注入)。

主流 RAG 恰好做反了:检索阶段是确定的(余弦相似度排序),注入阶段却是失真的(截断、摘要、重排)。书童协议要求把这个逻辑颠倒过来。

神经记忆场就是这一哲学的工程落地:让记忆的选择过程充满概率与涌现,让最终注入 LLM 的信息保持绝对忠诚。


3. 神经记忆场的核心隐喻:记忆是活的神经元网络

神经记忆场的基本单元不是「文档块」,而是神经元(Neuron)。

python 复制代码
@dataclass
class Neuron:
    id: str              # 全局唯一标识
    turn: int            # 诞生轮次
    speaker: str         # "user" / "assistant"
    text: str            # 原文
    embedding: np.ndarray  # 384 维语义坐标
    activation: float = 0.0  # 当前激活度(每轮清零重算)
    threshold: float = 0.25  # 放电阈值
    tags: Set[str] = field(default_factory=set)

每个神经元都是图中的一个节点。节点与节点之间通过突触(Synapse)连接,权重表示关联强度。

python 复制代码
@dataclass
class Synapse:
    from_id: str
    to_id: str
    weight: float        # [0, 1],关联强度
    type: str = "associative"

全局记忆场就是一个有向图:

python 复制代码
G = nx.DiGraph()  # 单例,纯内存

关键区别在于:这个图不是静态索引,而是一个动力学系统。 每轮对话,能量从当前输入注入,沿着突触扩散,传遍全图。激活度高的节点「放电」,进入下游的认知流程。

记忆不是被「查出来」的,是被**「激活」**出来的。

3.1 相关工作与边界:我们站在谁的肩膀上

在展开记忆域架构之前,有必要诚实交代:「扩散激活」本身不是我们的发明。

1975 年,Collins & Loftus 在认知科学领域就提出了 Spreading Activation 框架,描述人脑语义网络中的能量传播机制。半个世纪后,这一思路被重新引入 AI 记忆系统------近期被 ACL 2026 接收的 SYNAPSE(Jiang et al., 2026)就是一个典型代表:它将记忆建模为图节点,通过离散步长的能量传播实现检索增强,并混合语义嵌入与图结构进行召回。

此外,Brown University 的 Neural Graph Memory (2025)也探索了 Hebbian 可塑性在图记忆中的应用,Schlag & Schmidhuber 的 H-Mem(NeurIPS 2020)则用 Hebbian 学习实现了异联想记忆的 one-shot 学习。

这些工作证明了「图 + 激活 + 可塑性」这条技术路线的可行性。但神经记忆场与它们之间存在三个根本性的分野:

第一,热核扩散 vs. 离散传播。 SYNAPSE 的扩散是 3 步离散传播(retention δ=0.5),本质上仍是检索增强的变体。我们的热核扩散是 15 步连续衰减(decay=0.6),能量在图上形成的是连续动力学场,而非离散的节点激活序列。

第二,场拓扑即认知状态。 已有工作将扩散激活当作「找记忆更好」的手段,但从未将扩散后的场分布本身视为认知状态的表征。单峰、双峰、多峰------这些拓扑形态不是检索质量的副产品,而是系统内禀地感知自身认知状态的方式

第三,追问的内禀化。 已有系统没有「不确定时停下来问」的机制。我们的绿黄红审查不是外部规则,而是场拓扑收敛失败的直接反应。追问不是检索失败后的 fallback,是场动力学本身的相变信号

这些差异不是工程细节上的优化,而是认识论层面的分歧:我们把记忆场当作认知地形本身 ,而不仅是检索工具。书童协议的哲学------AI 作为认知校准器、概率确定、不确定时追问------是这些技术选择的统一根基。


4. 记忆域的三层架构:热、温、冷是整理状态,不是温度

书童协议原有热 / 温 / 冷三层记忆系统。在神经记忆场的语境下,这三层不再是「温度」的隐喻,而是整理状态存储位置的区分:

层级 状态 存储位置 在神经场中的形态 特征
热层 未整理 神经场中 空白但激活的节点 上次整理后到当前轮次的原始对话内容
温层 已整理 神经场中 完整的神经元节点 有检索字段(embedding)和上下文字段(语义关键说明)
冷层 已归档 底层存储器 不在神经场中 原始记忆的归档备份,不轻易拿出

4.1 热层:空白但激活的节点

热层是当前窗口中尚未整理的内容 ------从上次整理完成到当前轮次之间的所有对话。这些内容在神经场中表现为空白但激活的节点:它们没有完整的语义编码和突触连接,但携带原始文本,在场扩散中可以被直接激活。

热层的存在解决了一个关键问题:整理不是每轮都做的。对话在流动,整理是间歇性的。热层保证了「整理间隙」中的内容不会丢失,它们以原始形态参与场扩散,直到下一次整理被提炼成温层节点。

4.2 温层:整理后的神经节点

温层是经过整理的记忆节点 。这里的「整理」不是简单的压缩或摘要,而是符合书童协议忠诚压缩原则的语义重构:

不追求压缩比,追求语义不丢失。

整理器将一段上下文对话提炼为一个或多个神经元节点。每个节点包含:

  • 检索字段:384 维语义向量,用于入口激活时的相似度匹配
  • 上下文字段:完整的原文或语义关键说明,用于扇区编排时注入 LLM
  • 元数据:轮次、说话人、标签等

温层节点是神经场的「骨架」------它们有完整的突触连接,参与场扩散,承载长期语义关联。

4.3 冷层:底层归档

冷层是原始记忆的归档备份,存储在底层存储器中,不在神经场中参与扩散。它的作用是:

  • 当温层节点需要「溯源」时,可以调取原始上下文
  • 当神经场需要「重建」或「回溯」时,冷层提供完整的历史底稿
  • 作为数据安全层,防止整理过程中的信息丢失

冷层不轻易参与日常对话,但在关键场景(如用户质疑某段记忆、系统需要深度复盘)时可以被动召回。

4.4 整理的节奏与忠诚压缩

整理不是每轮都做,而是由触发条件驱动:

  • 对话轮次达到阈值(如每 10 轮)
  • 上下文长度超过窗口限制
  • 用户主动触发「整理」指令
  • 系统检测到认知状态需要「归档」(如一段对话主题结束)

整理过程由大模型执行,但遵循严格的忠诚压缩原则

markdown 复制代码
输入:一段原始对话上下文
输出:一个或多个 Neuron 节点
约束:
  1. 语义完整性:不能丢失关键信息
  2. 因果保留:对话中的因果关系必须显式编码为突触
  3. 不追求压缩比:如果需要两个节点才能完整表达,就不硬塞进一个

整理完成后,热层内容被「吸收」进温层,热层节点清空,等待下一轮对话重新累积。


5. 回忆机制:从「查询-返回」到「入口激活 + 场扩散」

传统回忆是两次操作:编码查询向量 → 相似度排序取 Top-K。

神经记忆场的回忆是四个连续阶段:

5.1 语义编码

用户输入首先被编码为 384 维向量。MVP 使用 all-MiniLM-L6-v2(22MB,纯 CPU),失败时降级为零向量。

python 复制代码
user_emb = embedder.encode(user_input)  # 384-dim

5.2 入口激活(Entry Activation)

新输入不是去「查」旧记忆,而是作为热源 ,在图中寻找「语义距离最近」的旧节点作为入口

python 复制代码
def entry_activation(user_emb):
    for nid in G.nodes():
        # 跳过空白节点(热层未整理内容没有 embedding)
        emb = G.nodes[nid].get("embedding")
        if emb is None or np.linalg.norm(emb) == 0:
            continue
        sim = cosine_similarity(user_emb, emb)
        if sim >= MIN_SIMILARITY:  # 硬过滤下限 0.5
            candidates.append((nid, sim))
    return top_k(candidates, k=5)

这里有一个关键设计:入口节点 + 当前输入节点共同作为种子(seed_nodes) ,在后续扩散中持续注入能量。当前输入不是查完就消失的查询条件,它是整场扩散的持续热源

5.3 场扩散(Heat Kernel Diffusion)

15 步迭代,每步保留系数 decay = 0.6

python 复制代码
for _ in range(15):
    for nid in G.nodes():
        retention = decay * G.nodes[nid]["activation"]
        incoming = sum(
            G.nodes[pre]["activation"] * G[pre][nid]["weight"]
            for pre in G.predecessors(nid)
        )
        G.nodes[nid]["activation"] = min(1.0, retention + incoming)

能量沿着突触流动,强关联的节点互相「共振」,弱关联的节点逐渐沉寂。15 步之后,全场的激活分布就是当前认知状态的拓扑表征

5.4 放电选择(Top-K 排名)

不再使用绝对阈值(早期能量过低会导致全场静默),而是直接取激活度最高的 Top-15 节点:

python 复制代码
firing = sorted(G.nodes(), key=lambda n: G.nodes[n]["activation"], reverse=True)[:15]

这些放电节点进入审查和扇区编排,最终组装成 LLM 的上下文。


6. 认知拓扑涌现:单峰、双峰与多峰

这是神经记忆场最反直觉、也最有野心的部分。

传统系统用离散状态机管理「认知状态」:比如「正常回答」「需要追问」「信息冲突」等状态,由硬编码规则切换。

神经记忆场认为:认知状态不是被规则判定的,是从场拓扑中自然涌现的。

6.1 单峰:认知收敛

如果扩散后,场上只有一个明显的能量峰值,其余节点激活度平缓衰减,说明当前输入与历史记忆形成了单一、连贯的认知焦点。系统可以直接回答,无需追问。

6.2 双峰:认知冲突

如果场上出现两个能量接近的峰值 ,且它们之间没有强突触连接,说明两段记忆被同时激活,但彼此「不认账」。这就是认知冲突的场表征

比如:第 3 轮你说「用 JWT 做认证」,第 12 轮你说「JWT 有安全隐患,改用 Session」。今天你再提「认证方案」,场上可能同时激活第 3 轮和第 12 轮的神经元,形成双峰。

双峰不是 bug,是系统内禀地感知到了「我在拉扯」。这种感知不需要任何硬编码的冲突检测规则------它是图动力学的自然结果。

6.3 多峰:更复杂的认知地形

双峰只是简单情况。真实对话中,场上可能出现三个、四个甚至更多能量峰值,形成复杂的「认知地形」:

  • 一个峰值关于技术方案 A
  • 一个峰值关于技术方案 B
  • 一个峰值关于你之前说过的约束条件
  • 还有一个峰值关于某段看似无关、但语义上藕断丝连的旧对话

多峰意味着当前输入触发了多个语义簇,它们之间的关系不明朗 。这时系统的最优策略不是强行选一个,而是追问------让用户提供更多信号,帮助场重新收敛。

注意:多峰分析目前只是理论推演。MVP 阶段我们只验证双峰场景的追问触发,多峰的精细处理是 v0.3 的目标。


7. 上下文的两步走:记忆处理与扇区编排

传统系统的上下文组装是一步完成的:检索记忆 → 拼进 Prompt → 发给 LLM。神经记忆场将这个过程拆分为两步走

7.1 第一步:记忆系统处理

以前直接发给 LLM 的原始上下文,现在先经过记忆系统处理:

markdown 复制代码
原始对话上下文 → 整理器 → 记忆节点(温层)
                    ↓
              热层内容(未整理)
                    ↓
              神经场扩散 → 放电节点

这一步的核心产出是放电节点------经过场扩散筛选、排序、赋予权重的「认知焦点」。

7.2 第二步:带着记忆发送给 LLM

放电节点选出后,不是简单拼接,而是按时间位阶差异化注入。当前窗口的上下文包含两部分:

  • 温层记忆:已整理成神经节点的历史记忆,按时间距离分桶
  • 热层记忆:当前窗口中尚未整理的原始对话,原文完整保留
python 复制代码
current_turn = max(G.nodes[n]["turn"] for n in G.nodes())

# 分桶(仅针对温层节点)
near = [n for n in firing if G.nodes[n].get("embedding") is not None 
        and current_turn - G.nodes[n]["turn"] <= 5]
mid  = [n for n in firing if G.nodes[n].get("embedding") is not None 
        and 5 < current_turn - G.nodes[n]["turn"] <= 50]
far  = [n for n in firing if G.nodes[n].get("embedding") is not None 
        and current_turn - G.nodes[n]["turn"] > 50]

# 热层内容:原文完整保留
hot_txt = "\n".join([G.nodes[n]["text"] for n in firing 
                     if G.nodes[n].get("embedding") is None])

# 温层格式化:越远越薄
near_txt = "\n".join([G.nodes[n]["text"] for n in near])
mid_txt  = "\n".join([f"[早前] {G.nodes[n]['text'][:80]}..." for n in mid[:5]])
far_txt  = "\n".join([f"[历史] {G.nodes[n]['text'][:40]}..." for n in far[:3]])

7.3 位阶组装:远 → 中 → 近 → 热 → 当前

python 复制代码
prompt = (
    "你是书童。当前审查状态:" + light + "\n"
    "【长期背景】\n" + far_txt + "\n"
    "【相关历史】\n" + mid_txt + "\n"
    "【最近对话】\n" + near_txt + "\n"
    "【当前窗口】\n" + hot_txt + "\n"
    "用户:" + user_input + "\n请回答:"
)

这个顺序不是随意的。它对应书童协议「上下文编排器」的五层注意力位阶:

位阶 内容 作用
长期背景 远场温层记忆 建立坐标系
相关历史 中场温层记忆 填充细节
最近对话 近场温层记忆 提供上下文
当前窗口 热层未整理内容 保留原始语义
当前输入 用户本轮输入 焦点

越远的内容越薄,不是因为不重要,而是因为场已经替我们做了筛选------能活到远场放电的节点,必然是通过了多轮扩散的强关联记忆,它不需要完整文本,只需要一个「锚点」就能唤醒 LLM 的语义联想。

7.4 为什么两步走?

两步走的本质是解耦

  • 第一步解决「记忆是什么」的问题------通过神经场扩散,让系统内禀地感知哪些记忆是相关的、哪些是冲突的
  • 第二步解决「怎么告诉 LLM」的问题------通过扇区编排,将经过场筛选的记忆以最优结构注入上下文

这种解耦让系统可以在第一步做复杂的认知计算 (场扩散、拓扑分析、冲突检测),在第二步做简洁的信息传递(差异化注入、忠诚压缩)。

7.5 关于上下文窗口的思考

有人可能会问:既然 LLM 的上下文窗口越来越长,为什么还要做这么复杂的记忆系统?

答案是:窗口长度 ≠ 信息处理能力。

在注意力机制下,即使窗口无限长,模型的信息处理能力也是有限的。当一次性注入的信息过多时,模型会出现「注意力稀释」------所有 token 都被看到了,但没有被真正「理解」。

神经记忆场的价值在于:不是减少信息量,而是优化信息结构。 通过场扩散筛选出真正相关的记忆,通过扇区编排让不同距离的记忆以不同「音量」呈现,我们让 LLM 的注意力集中在该集中的地方。

未来,当上下文窗口进一步扩展时,这套系统的角色会从「减少注入量」转变为**「配合大模型进行思考过程」**------将大量信息先经过记忆系统整理吸收,再发送给 LLM。整理成神经节点的过程,本质上就是一次「预思考」。


8. 追问的内禀化:从硬编码规则到场状态触发

书童协议的交互范式是:不确定 → 停 → 问 → 记 → 编 → 答。

在神经记忆场中,「不确定」不再由规则判断,而是由场状态判断。

我们设计了一个极简审查机制(绿 / 黄 / 红):

python 复制代码
def safe_llm_review(user_input, firing_nodes):
    # LLM 基于放电节点和当前输入,输出 GREEN / YELLOW / RED
    # GREEN: 记忆充足,直接回答
    # YELLOW: 能回答但有缺口,回答时附带提醒
    # RED: 记忆不足或矛盾,必须追问

审查的输入不是原始记忆库,而是场扩散后的放电节点------也就是已经被场筛选、排序、赋予权重的「认知焦点」。LLM 审查的不是「有没有相关文档」,而是**「这些被激活的记忆是否足够支撑一个确定的回答」**。

当双峰或多峰出现时,审查大概率返回 RED。此时系统生成追问,而不是硬答。

这就是追问的内禀化:追问不是外部规则触发的,是场拓扑本身的收敛失败触发的。


9. Hebbian 在线塑形:语义单元之间的认知地形重写

每轮对话结束后,系统执行 Hebbian 学习:

一起放电的语义单元,连在一起。

但这里有一个关键前提:Hebbian 塑形的对象不是「单轮对话」或「单条消息」,而是「整理后的语义单元」。

9.1 语义单元 vs. 单轮消息

传统思路会把每一轮用户输入和 AI 回复都当成独立神经元,Hebbian 在它们之间建立连接。这样做的结果是:一张由碎片化语句构成的「语句关联网」。

问题是:用户和 AI 的对话本身是一个完整的语义环境。比如:

用户:「JWT 方案有问题」 AI:「具体是哪个环节?」 用户:「签名验证的时候 token 解析失败」 AI:「可能是算法不匹配,你用的是 RS256 还是 HS256?」

这四句话如果拆成四个独立节点,Hebbian 只能捕捉到「问题→追问→回答→追问」的表层链式结构。但这段对话的真正认知价值是:「JWT 签名验证算法不匹配的诊断场景」------这是一个完整的语义单元,包含问题、排查过程、关键线索。把它拆碎,记忆就丢失了「场景感」。

因此,神经记忆场的 Hebbian 塑形遵循一个原则:

节点是整理后的语义单元,不是原始消息。

9.2 整理后的语义单元作为塑形对象

热层的原始对话经过整理器提炼后,形成温层的语义单元节点。每个节点内部保持完整的语义环境:

python 复制代码
@dataclass
class SemanticUnit(Neuron):
    # 继承 Neuron 的所有字段
    # 但 text 字段不再是单条消息,而是整理后的场景描述
    text: str  # 例如:「用户报告 JWT 签名验证失败,经排查为算法不匹配(RS256 vs HS256)」
    source_turns: List[int]  # 该语义单元来源于哪些原始轮次
    source_speakers: List[str]  # 涉及的说话人序列
    causal_chain: str  # 因果链摘要(可选)

Hebbian 塑形发生在这些语义单元之间:

python 复制代码
def hebbian_plasticity(active_units: List[str], lr: float = 0.1):
    """
    active_units: 本轮场扩散中放电的语义单元 ID 列表
    包含:
      - 当前输入对应的语义单元(如果本轮已整理)
      - 入口激活召回的旧语义单元
      - AI 回复生成的语义单元(整理后)
    """
    for i, a in enumerate(active_units):
        for b in active_units[i+1:]:
            if not G.has_edge(a, b):
                G.add_edge(a, b, weight=lr)
            else:
                G[a][b]["weight"] = min(1.0, G[a][b]["weight"] + lr)

9.3 语义环境的完整性

为什么必须保持语义单元的完整性?

因为记忆的价值在于「场景复现」,不是「关键词匹配」。当你一个月后再次提到「JWT」,系统应该召回的是「算法不匹配的诊断场景」这个完整认知单元,而不是零散地想起「签名验证」「token 解析失败」「RS256」这几个孤立词汇。

语义单元内部的完整性由整理器保证:

  • 不追求压缩比:如果一个场景需要 200 字才能完整表达,就不硬塞进 50 字
  • 因果保留:对话中的追问-回答链必须显式编码在语义单元内部
  • 角色标记:谁说了什么、谁提出了关键线索,必须保留

Hebbian 连接的是场景与场景之间的关联:

  • 「JWT 算法不匹配」→「OAuth2 流程设计」
  • 「数据库连接池溢出」→「高并发架构优化」

这些连接构成了认知地形------不是平铺的关键词索引,而是有地形起伏的语义地貌。高频共现的场景之间形成「山脉」(强突触),偶尔关联的场景之间形成「河谷」(弱突触),无关场景之间是「平原」(无连接)。

9.4 塑形的时间窗口

不是所有放电的语义单元都参与 Hebbian 塑形。我们只选择本轮场扩散中激活度最高的 Top-K 语义单元(而非所有放电节点),避免噪声关联。

python 复制代码
# 从放电节点中筛选出「语义单元」(排除热层空白节点)
active_units = [
    nid for nid in firing_nodes 
    if G.nodes[nid].get("embedding") is not None  # 温层节点才有 embedding
][:HEBBIAN_TOP_K]

hebbian_plasticity(active_units, lr=0.1)

下一轮再遇到类似语境,能量会沿着这些新建立的突触更快传播。记忆不是死的档案,是在对话中实时生长的认知地形

10. MVP 的工程克制:22MB 模型、纯内存、零外部依赖

理论再漂亮,跑不起来就是玄学。v0.2 MVP 的工程选择体现了极强的克制:

组件 选择 理由
图引擎 networkx 纯内存 不引入图数据库,先验证假设
向量模型 all-MiniLM-L6-v2(22MB) 本地 CPU 可跑,零 API 依赖
扩散步数 15 步 足够传遍 200 节点规模的全图
放电机制 Top-K 排名 避免绝对阈值导致的早期静默
异常降级 完整链条 embedding 失败 → 零向量;LLM 失败 → 重试 + 降级;首轮空图 → 直接 GREEN
持久化 纯内存,会话结束即销毁

我们刻意避开了:向量数据库、异步框架、Rust 重写、缓存系统、多线程并发。这些不是不重要,而是在验证核心假设之前,它们都是噪声

监控台每轮输出场状态快照:

json 复制代码
{
  "round": 7,
  "review_light": "YELLOW",
  "graph": { "nodes": 14, "edges": 23 },
  "field": {
    "max_activation": 0.847,
    "mean_activation": 0.12,
    "firing_count": 15
  },
  "top5": [...]
}

跑起来的那一刻,看着能量在图上流动、突触在对话中生长,你会有一种奇怪的感觉:这不是我在查记忆,这是记忆自己在说话。


11. 未竟之地:相似非相同,以及多峰之外的认知地形

神经记忆场目前只验证了「冲突型」认知拓扑(双峰 / 多峰)。但记忆的纠缠远不止冲突一种模式。

还有一种更微妙、更常见的状态:相似非相同

第 5 轮你讨论「JWT 的过期策略」,第 18 轮你讨论「Refresh Token 的轮换机制」。两者语义高度相关,但并非同一概念,也不矛盾。传统系统要么把它们当同一件事合并,要么完全分开处理。

在场语言中,这对应一种**「粘连峰」------两个峰值能量接近、突触连接较强,但语义重心有细微偏移。系统应该感知到「这两件事有关,但不一样」,并在回答中区分引用**,而不是混为一谈。

如何处理「相似非相同」,目前还没有成熟方案。它是 v0.3 的核心攻关方向之一。

此外,以下模块仍在理论阶段:

  • 情绪感知与调制:当前固定物理参数,未引入情绪增益
  • 参数自适应:Hebbian 学习率、扩散衰减系数固定,未随对话演化
  • 主动心跳:当前纯被动对话,未实现时间提醒与主动推送
  • 多用户隔离:MVP 单会话单用户
  • 预思考整理:大量信息先经过记忆系统整理成节点,再发送给 LLM

12. 参考文献

  1. Collins, A. M., & Loftus, E. F. (1975). A spreading-activation theory of semantic processing. Psychological Review, 82(6), 407-428.

  2. Jiang, Y., Chen, Y., Li, Y., et al. (2026). SYNAPSE: Episodic and Semantic Memory with Spreading Activation for LLM Agents. In Proceedings of ACL 2026 (Findings). arXiv:2601.02744.

  3. Neural Graph Memory. (2025). Brown University. Zenodo preprint.

  4. Schlag, I., & Schmidhuber, J. (2020). H-Mem: Holographic Memory. In Advances in Neural Information Processing Systems 33 (NeurIPS 2020).

  5. Krotov, D., & Hopfield, J. J. (2016). Dense associative memory for pattern recognition. Advances in Neural Information Processing Systems, 29.

  6. Vaswani, A., Shazeer, N., Parmar, N., et al. (2017). Attention is all you need. Advances in Neural Information Processing Systems, 30.


13. 结语:无人区的坐标

神经记忆场不是对 RAG 的优化,是对「AI 如何记忆」这一问题的重新提问。

它试图回答一个更底层的问题:如果记忆不是被检索的,而是被激活的;如果认知状态不是被规则判定的,而是被场拓扑涌现的;如果追问不是外部干预,而是内禀收敛失败的自然反应------那么 AI 的记忆系统应该长什么样?

书童协议的第一个验证 Demo(V0.1)已经跑通。神经记忆场是第二个。

我们很清楚,这片领域是无人区。没有论文可以直接抄,没有开源项目可以直接 fork。每一步都是假设 → 实现 → 观测 → 修正的闭环。

但正是这种无人区的探索,才让「AI 作为认知校准器」的愿景有了工程上的落脚点。

如果你也在思考记忆系统的下一代形态,欢迎评论探讨或者来 GitHub 围观(或拍砖):

shutong-protocol : github.com/VZIQAQ/shut...


本文基于书童协议神经记忆场 MVP v0.2 技术方案撰写。所有架构决策、参数选择与异常策略均来自实际工程实现,而非理论推演。

相关推荐
神奇小汤圆2 小时前
为什么 AQS 成为 Java 并发的基石?
后端
ARM+FPGA+AI工业主板定制专家2 小时前
国产化RK3576+FPGA架构|晶圆传输机器人高速定位+AI瑕疵检测一体化方案
fpga开发·架构·机器人·嵌入式·fpga·工控·机器人运控
星栈2 小时前
MCP 从 stdio 迁到 SSE,踩了 5 个传输层坑
人工智能·后端·架构
Conan在掘金2 小时前
鸿蒙报错速查:struct 里嵌 enum 声明就炸,根因 + 真解法
后端
写代码的强哥3 小时前
云原生数据库与传统数据库相比“新”在哪里
数据库·云原生·架构
想你依然心痛3 小时前
系统存储机制深度剖析:从Win11临时文件夹设计看微软存储架构演进
microsoft·架构
回家路上绕了弯3 小时前
Java双数据源实战全指南:Spring Boot多数据源配置、原理与踩坑避坑
后端
神奇小汤圆3 小时前
Redis主从切换后,旧主恢复竟触发全量同步?——我猜错了,原因比想象中更严谨
后端
JoyT3 小时前
滚动MAD与孤立森林在时序异常检测中的协同应用
后端