LLM 上下文记忆原理及 Claude Code 项目级持久化方案
本文目标:从注意力机制、上下文窗口、内存管理三个层面,彻底解释清楚“为什么模型昨天还记得项目细节,今天就全忘了”,并给出针对 Claude Code 等编程智能体的可落地方案,确保跨会话上下文一致且强制遵守文档规范。1. LLM 上下文记忆的本质1.1 上下文即“当前可用的全部信息”大语言模型本质是无状态函数。每次推理时,输入 = 系统提示 + 历史对话 + 当前用户消息 + 可用工具结果。这个拼接后的序列长度受上下文窗口(context window)限制。模型“记住”一切的唯一途径就是把这些信息塞进当前窗口。1.2 注意力机制的真相Transformer 的自注意力机制在窗口内是“无损”的:每个 token 可以关注到前面所有 token。但超出窗口的部分会被截断(最旧的丢弃),这是造成“遗忘”的根本原因。窗口大小从早期的 4K 发展到现在的 200K、1M,但本质仍是个有限环形缓冲区。1.3 位置编码与记忆退化RoPE 等位置编码使得距离过远的 token 间注意力分数会自然衰减,模型对“窗口中部”的信息利用最为充分,对即将溢出的旧信息依赖变弱。所以即使窗口很大,模型仍更关注近期内容——表现为“近因效应”。1.4 记忆分类瞬时记忆:当前会话上下文窗口内的全部内容。