我逆向工程了 Claude 的记忆系统,这是我的发现!• Manthan Gupta

本文翻译自一位印度工程师在博客上发布的文章:I Reverse Engineered Claude’s Memory System, and Here’s What I Found!。作者通过逆向工程深入探究了 Claude 的记忆系统,并将其与 ChatGPT 进行了详细对比。文章揭示了两者在处理记忆和上下文时的根本性架构差异,特别是 Claude 独特的“按需检索”机制。 Claude 的提示词结构 Claude 的提示词主要由以下四个部分组成: 系统提示词(System Prompt):包含静态指令、工具定义和安全限制。 用户记忆(User Memories):类似于长期记忆。 对话历史(Conversation History):当前的对话上下文。 当前消息(Current Message):用户最新发送的内容。 用户记忆(User Memories) 内容:存储关于用户的稳定事实(如姓名、职位、偏好、技术水平等)。 格式:以 XML 格式注入提示词中。 更新机制:既包含后台的隐式更新,也支持用户通过“记住这个”或“删除这个”等指令进行的显式编辑。 对话历史的处理机制 这是 Claude 与 ChatGPT 最大的不同之处,主要由三种机制协同工作: 滚动窗口(Rolling Window):针对当前对话,保留完整的消息内容(而非摘要),直到达到 Token 限制(约 190k tokens)。 conversation_search 工具:允许 Claude 根据主题或关键词搜索过去的对话。 recent_chats 工具:允许 Claude 根据时间检索最近的对话。 总结性对比 ChatGPT:依赖预计算的摘要,每次对话都自动注入,确保了轻量级的连续性,但细节较少。 Claude:依赖 conversation_search 和 recent_chats 等工具进行按需检索。这种方式更高效(不浪费 Token 在无关历史上)且更具深度,但流程上可能不如 ChatGPT 无缝,因为其依赖于模型的检索决策。 我逆向工程了 Claude 的记忆系统,这是我的发现! 2025年12月14日 · Manthan Gupta...

December 16, 2025 · 3 min · fisherdaddy

我逆向工程了 ChatGPT 的记忆系统,这是我的发现!• Manthan Gupta

本文翻译自一位印度工程师在博客上发布的文章:I Reverse Engineered ChatGPT’s Memory System, and Here’s What I Found!。作者通过逆向工程发现了 ChatGPT 的记忆系统的实现方式,与普遍猜测不同,ChatGPT 并没有使用复杂的向量数据库或针对对话历史的 RAG(检索增强生成)技术。相反,它采用了一种分层架构,主要由以下四个核心部分组成: 会话元数据 (Session Metadata) 这是在会话开始时一次性注入的临时信息,包括设备类型、浏览器信息、大致位置、订阅等级以及使用模式(如活跃频率)。 这些信息帮助模型根据用户当前的软硬件环境调整回复,但不会在会话结束后保留。 用户记忆 (User Memory) 这是一个专门用于存储长期事实的工具,例如用户的姓名、职业目标、健身习惯及个人偏好。 作者的案例中存储了 33 个事实。这些信息通常在用户明确要求(如“记住这个”)或模型检测到关键信息并获得隐含确认时被存储。 这些记忆作为一个独立的模块,会被注入到每一次未来的提示词(Prompt)中。 近期对话摘要 (Recent Conversations Summary) 系统不会检索过去对话的完整记录,而是保留一份轻量级的摘要列表。 该列表包含时间戳、对话标题以及用户消息的片段。 这种方法充当了用户近期兴趣的“粗略地图”,在避免高延迟和 Token 成本的同时,维持了跨对话的连续性。 当前会话消息 (Current Session Messages) 这是当前对话的完整历史记录,采用滑动窗口机制。 其容量基于 Token 数量限制而非消息条数。当达到限制时,旧消息会被移除,但用户记忆和对话摘要依然保留,以确保当前对话的连贯性。 传统的 RAG 系统需要对每条过去的消息进行嵌入(Embedding)和相似度搜索,成本高且延迟大。ChatGPT 的方法通过预计算轻量级摘要并直接注入,牺牲了部分历史细节,换取了更快的响应速度和更高的效率。 原文 当我问 ChatGPT 它记得关于我的什么时,它列出了从我的名字和职业目标到我目前的健身计划等 33 个事实。但它实际上是如何存储和检索这些信息的呢?为什么感觉如此无缝? 经过广泛的实验,我发现 ChatGPT 的记忆系统比我预期的要简单得多。没有向量数据库。没有基于对话历史的 RAG(检索增强生成)。相反,它使用四个不同的层:适应你环境的会话元数据、长期存储的显式事实、最近聊天的轻量级摘要以及当前对话的滑动窗口。 这篇博客详细剖析了每一层是如何工作的,以及为什么这种方法可能优于传统的检索系统。这里的所有内容都来自于通过对话对 ChatGPT 行为的逆向工程。OpenAI 并没有公布这些实现细节。 ChatGPT 的上下文结构 在理解记忆之前,重要的是要理解 ChatGPT 接收到的每条消息的完整上下文。结构如下: [0] 系统 指令 [1] 开发者 指令 [2] 会话 元数据 (临时的) [3] 用户 记忆 (长期 事实) [4] 最近 对话 摘要 (过去的 聊天, 标题 + 片段) [5] 当前 会话 消息 (本次 聊天) [6] 你的 最新 消息 前两个组件定义了高级行为和安全规则。它们不是本博客的重点。有趣的部分始于会话元数据。...

December 11, 2025 · 2 min · fisherdaddy