特工记忆:解剖

2026-05-27 1 阅读 brgsk
每个智能体记忆库都使用相同的词语:情景的、语义的、有时是程序的。它们是认知科学的词汇,被提升到 API 中。工程通常不会随着他们一起提升。图书馆可以有一个使用与语义相同的存储和检索的程序字段——一个标签,而不是一个单独的系统。更深层次的失误是单词记忆本身:这些库构建的大部分内容都比这个更窄,而更窄的术语使问题变得更加尖锐。该术语来自 Endel Tulving 1972 年的一章。 1 他认为,人们一直将记忆视为一件事的东西至少有两层:事件记忆(发生了什么、地点、时间)和事实记忆(法国首都、水的沸点)。他称它们为情节性的和语义性的。他们的行为不同,失败的方式也不同。这些图书馆所谓的“记忆”的大部分内容比这个词所暗示的要窄:不是一个完整的认知记忆系统,而是代表用户保存的关于用户的自传内容——他们住在哪里,他们正在做什么,他们做了什么决定。代理内存系统的剖析 代理内存库是由少量组件构建的。您可以通过了解各个部分来阅读任何图书馆的文档。提取器。读取对话记录并决定保留哪些内容的东西。通常是 LLM 调用,有时带有严格的提示或类型化的输出模式。它产生陈述——关于用户、世界或任务的简短、抽象的事实。提取者做出的最重要的选择是时机。每收到一条信息后,你都会急切地提取信息,然后你就会把代币花在闲聊上,但毫无结果。在会话结束时懒惰地提取,解析代词所需的上下文已经消失了。时机都没有错;每个人都失去了对方保留的东西。对于任何图书馆来说,值得一问的问题是什么被丢弃了——共指线索(“他”指的是哪个人)、时间锚点(“昨天”、“下周”)和消除当地上下文的歧义是常见的受害者。从认知角度来说,提取是从情境事件到脱离情境的事实的压缩:周二用户在喝咖啡时提到他们更喜欢 TypeScript 变成了用户更喜欢 TypeScript 。库的压缩程度是其核心设计决策之一。商店。数据库。以下一项或多项:向量索引(按语义相似性索引的条目)、关系表(按可过滤的列索引的条目)、知识图(按类型化边连接的条目)。每个语句都带有元数据——时间戳,有时是置信度分数,有时是指向原始对话的源指针。商店回答的最难的问题不是把东西放在哪里。这是当新的陈述与旧的陈述相矛盾时该怎么做。该用户在四月份之前一直住在巴黎,然后搬到了阿姆斯特丹——商店现在这两样东西都有,每样都显示为当前状态。选择是是否覆盖(一个事实,没有历史)追加(两者,将其留给检索来整理)将两者保留为旧标记为已取代。一家无法回答我上个月相信什么的商店?不是一个记忆系统。这是带有时间戳的快照。猎犬。在查询时,该组件将当前问题转变为搜索并返回最有可能相关的语句。向量相似度是基线。除此之外的关键字搜索很常见。重新排序器是标准的第三层。从结构上讲,这是 RAG;语料库是用户积累的语句而不是文档库。一些库还运行时间过滤器(不返回已知已过时的语句)和预设检查 - 检测问题本身何时假定陈旧的事实并阻止将其拉入上下文。代理内存库之间的每个差异都存在于这三个部分之一中。你可以用它们来描述任何库,但还不知道它的用途。记忆的类型 认知科学的规范分类法由四种类型组成:情景记忆、语义记忆、程序记忆和工作记忆。代理中的工作记忆是上下文窗口——与本文所讨论的机器不同的机器,值得放在一边。 2 还剩 3。添加前瞻性——它不在规范分类法中,但它指出了该领域尚未填补的空白。情景记忆。与时间和地点相关的特定事件。上周二我和亚历山大在莫斯托瓦的地方喝了咖啡。记忆是有日期的、特定的、个人的。你经历过。回忆感觉就像重新体验——你可以把自己放回场景中。代理内存库使用带有时间戳的语句表来处理此问题。用户提到他们住在柏林(2026-03-14)。每个条目都是系统观察到的单个事件。一些图书馆将原始对话片段与提取的事实一起保存。语义记忆。与任何特定事件无关的世界事实。柏林是德国的首都。在海平面上水的沸点为 100°C。你知道这些薄