深度剖析两大模型在记忆机制上的根本差异,Hacker News 448 points 和 236 条讨论,对理解 LLM 架构设计理念有启蒙价值。
本周早些时候,我分析了 ChatGPT 的内存系统。之后,我对 Claude 进行了同样的分析,发现了一些惊人的东西:这两个领先的 AI 助手建立了完全相反的内存系统。
在这篇文章中,我首先会详细分解 Claude 的内存工作原理——它存储什么以及如何检索信息。然后我们会深入到有趣的部分。为什么这些架构差异如此之大,这告诉我们什么关于每个助手的用户,以及推动各自产品开发的哲学,以及 AI 内存设计空间有多庞大。
Claude 的内存系统有两个基本特征。首先,它在每次对话开始时都从零开始,没有任何预加载的用户档案或对话历史。内存只有在你明确调用它时才会被激活。其次,Claude 仅通过引用你的原始对话历史来回忆。没有 AI 生成的摘要或压缩档案——只是通过你实际过去的聊天进行的实时搜索。
当 Claude 通过"what did we discuss about"、"continue where we left off"或"remember when we talked about"这样的短语检测到内存调用时,它会部署两个检索工具,这些工具的工作方式类似于网络搜索或代码执行——你能看到它们实时激活,并在 Claude 搜索你的历史记录时等待。搜索完成后,Claude 合成检索到的对话来回答你的问题或继续讨论。
conversation_search 工具帮助在你整个对话历史中进行关键词和基于主题的搜索。当我问"嘿,你能回忆我们过去关于 Chandni Chowk 的对话吗?"(德里的一个历史街区)时,Claude 找到了 9 个相关的对话——从我探索它由 Princess Jahanara Begum 在 1650 年创立的时候,到我关于 Karim's 最好的 galouti kebabs 和 Paranthe Wali Gali 馅饼的查询。Claude 将这些分散的讨论合成为关于我的 Chandni Chowk 探索的连贯摘要。
当你询问多个主题时,Claude 会按顺序运行单独的搜索。在我之前作为密码学研究员的工作中,我广泛使用 Claude 作为编辑。当我问"告诉我我们就 Michelangelo、Chainflip 或 Solana 进行过的所有对话"时,Claude 运行了三个单独的搜索——一个用于我对神经网络的 Michelangelo 类比,另一个用于 Chainflip 的跨链协议工作,第三个用于 Solana 的技术架构。它在这些搜索中找到了 22 个对话,并提供了一个统一的响应,其中包含每个聊天的直接链接。
{
"description": "Search through past user conversations to find relevant context and information",
"name": "conversation_search",
"parameters": {
"properties": {
"max_results": {
"default": 5,
"description": "The number of results to return, between 1-10",
"exclusiveMinimum": 0,
"maximum": 10,
"title": "Max Results",
"type": "integer"
},
"query": {
"description": "The keywords to search with",
"title": "Query",
"type": "string"
}
},
"required": ["query"],
"title": "ConversationSearchInput",
"type": "object"
}
}
recent_chats 工具提供了对你的对话历史的基于时间的访问。当我问"你能告诉我我们在最后 10 个对话中讨论了什么吗?"时,Claude 按时间顺序检索了我最近的聊天,并给出了最近使用情况的摘要。
该工具还处理特定的时间范围。当我问"2024 年 11 月最后一周我们讨论了什么?"时,Claude 从那个确切的时期检索了 16 个对话。
{
"description": "Retrieve recent chat conversations with customizable sort order (chronological or reverse chronological), optional pagination using 'before' and 'after' datetime filters, and project filtering",
"name": "recent_chats",
"parameters": {
"properties": {
"after": {
"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}],
"default": null,
"description": "Return chats updated after this datetime (ISO format, for cursor-based pagination)",
"title": "After"
},
"before": {
"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}],
"default": null,
"description": "Return chats updated before this datetime (ISO format, for cursor-based pagination)",
"title": "Before"
},
"n": {
"default": 3,
"description": "The number of recent chats to return, between 1-20",
"exclusiveMinimum": 0,
"maximum": 20,
"title": "N",
"type": "integer"
},
"sort_order": {
"default": "desc",
"description": "Sort order for results: 'asc' for chronological, 'desc' for reverse chronological (default)",
"pattern": "^(asc|desc)$",
"title": "Sort Order",
"type": "string"
}
},
"title": "GetRecentChatsInput",
"type": "object"
}
}
一年前,ChatGPT 和 Claude 的助手应用在功能上不分伯仲——多个模型、文件附件、项目管理。从那以后,它们的路径已经大幅分歧。ChatGPT 已经进化成为一个大众市场消费产品,而 Claude 则刻意选择了不同的轨迹。Anthropic 首席产品官 Mike Krieger 承认 OpenAI 在消费者采用方面"闪电入瓶"。与其追逐这个市场,Anthropic 正专注于 Claude 最擅长的:开发者工具、编码和专业工作流。
内存实现完美地反映了这种分歧。
ChatGPT 拥有数亿周活跃用户,来自各种背景——学生、家长、爱好者——他们只是想要一个能工作并记住他们的产品,而不用思考其中的机制。每个内存组件都自动加载,在零等待时间内创建即时个性化。该系统构建详细的用户档案,学习可能最终推动定向功能或商业化的偏好和模式。这是经典的消费科技剧本:让它神奇,让它上瘾,稍后再想出不同的变现方式。
Claude 的用户代表一个完全不同的人口群体。Anthropic 的技术用户从根本上理解 LLM 如何工作。他们对每个层级的显式控制感到舒适。就像他们选择何时触发网络搜索或启用扩展思维一样,他们决定何时值得调用内存。他们理解内存调用会增加延迟,但他们会有意地做出这种权衡。内存成为他们工具库中的另一个工具,而不是始终开启的功能。这个受众既不需要也不想要详尽的用户档案——他们需要一个强大的、可预测的专业工作工具。更不用说,他们也更注重隐私。
令我惊讶的是,ChatGPT 和 Claude——两个顶级 AI 助手——已经建立了完全相反的内存系统。这仅仅表明,AI 中的内存拥有一个巨大的设计空间,没有正确答案或万能之策。你必须从你的用户是谁以及他们需要什么向后推导,然后根据第一原理进行构建。
我们处于未知的领地。这些工具不到三岁,没有人知道当某人使用同一个 AI 助手十年时会发生什么。它应该记住多少?它应该如何处理多年积累的上下文?同时,我们看到了 AI 应用的寒武纪大爆发,每个都尝试自己的内存方法,而底层模型每周都在变得更强大。没有剧本,没有既定的最佳实践——只是每个人都在尝试不同的东西,看看什么能坚持下来。
我越是深入内存研究,就越是着迷。在接下来的几周里,我将分析不同的架构、研究新的方法,并跟踪最新的研究。如果你想在这个领域不断演进时获得更新,请在下方订阅。
更新:发布后数小时,Anthropic 宣布了一项针对 Team 和 Enterprise 账户的新内存功能,看起来更接近 ChatGPT 的方法。我还没有尝试过(Max 计划上不可用),但一旦我尝试过,我会分享一个更新。