继上次的探讨。其实会发现,虽然现在好似各种AI概念层出不穷。但追溯它们要解决的问题,会发现仍然非常朴素,抓住这个问题再去看各个概念,会发现它们都是在此长出的枝叶。Agent Memory始终在面对的问题是: 如何把合适的内容塞入AI有限的上下文? 也就是, 如何召回?和存入什么? 的问题。
这边刻意不去讨论模型上下文的问题,意在我们可以把注意力集中在各种层出不穷的,可谓是新基建问题的Agent Memory这一概念上。作为非专业人士,我的论述可能不是很全面,佬友们有问题的欢迎指出。
在这一问题的受限度在于,其实我们能采用的召回手段相当有限,这也是我在自己做项目的时候,发现的一大痛点。召回的方法大致可以用以下内容来概括:
-
稀疏文本检索。也就是关键词、BM25、SQLite FTS、OpenSearch、Lucene 这一套。它非常像是我们打开搜索引擎,输入我们想要去查找的内容时,所经历的一切。好处在于,可解释、便宜、稳定、对于精确实体/术语/代码/时间很强。而问题也出在,语义的跳跃性、多语言等方面,效果就不是很好。所以它往往依赖于更好的写入、存储结构。像是从翻书进化到查字典进化到查百度(有了摘要和排序逻辑)等等。
-
稠密向量检索 + 重排序。这也就是非常传统的RAG路线(所以说RAG已死么?其实只是被别的概念囊括进去了罢)。Embedding 先粗召回,cross-encoder 或 LLM 再 rerank。它的优点是语义召回强,在同义表达、隐式表述、跨段落相似等方面做的就更好。但问题在于,成本高、黑箱、面对冲突问题不是很可靠,以及可能把“语义相似”误当作“任务相关”。比如:“我喜欢用Python来实现项目”,不等同于我在进行项目的时候,就要用Python来完成。
在这两种手段的基础上,我们可以很快的推导出以下可用的方法逻辑。
- 语义理解我们可以不交给嵌入式模型、重排序模型。我们直接让Agent自己去查,然后把查到的结果返回不就好了嘛?恭喜你,发明了Agentic retrieval / progressive retrieval。也就是让 LLM 自己把查询拆开,多轮调用检索工具,逐步扩大范围、修正搜索词、检查证据。需要注意的是,其实这一方法还是没有办法避免幻觉、腐化和成本经济性问题。
- 这两种查询为什么不可以都用呢?以及那我是不是造一个好的检索系统就好了?恭喜你,这里就可以自然延伸出,图结构(其实就像是系统推送一样,就是根据各种关系推断出相关的内容。AI出现与否,抖音都是如此收割大家的Attention的)或者说结构化。召回可以不只是按相似度,可以按实体、关系、事件、时间线、因果链、任务状态去走路径。就像是Map一样,我告诉AI,怎么走可以到达要去的地方。(这里的嵌入/重排序模型可以用于范围的粗筛,结果的精选等等)
所以,一个记忆系统好用与否的上限,往往不是由检索方式单独决定的。而是由写入时,或者说存储的记忆形式决定的。这么听起来挺泄气的。好像折腾来去听起来非常容易被取代。我的观点是,不是说未来会出现汽车,所以马车和马车的各个轴承等的研发就没有意义了。恰恰相反,功不唐捐。至于说以指数形式跃进故而很多东西都会失去价值的加速主义派别,我只能说,首先,我上一期说的第二个问题我觉得还是不能解决。其次,我个人觉得这样的判断,是非现实的。而关于控制器的技术,其实好像不论技术怎么发展,都是不可避免的热门问题。原因就在于,人本身的匮乏导致,我们其实不能接受,不能由我们主观掌握的东西存在。
回归整体,所以存入什么也可以这么划分为两大类。(我这个划分方法主要是便于理解,但是并非很准确的概念划分。)
- 对象。对象可以是原始对话、用户原话、文档片段、工具输出、代码 diff、网页来源、邮件内容、运行日志等等。以及从中抽象出的,类似用户偏好、任务状态、事实性断言、程序性记忆/方法记忆(类似于skills和工作流,其实表征的是在具体工作场景下,固定的SOP)等等。也就是说,可以是原始内容、从原始内容中提取的经验描述(正面经验 eg:偏好、负面经验 eg:问题、固定模式 eg:skills)以及对原始内容的结构化表达和索引。
- 关系。可以细分为对象、对象之间的关系、事件之间的因果或时序。在某种意义上来说,对原始内容的结构化表达和索引也可以被放在这里。它是把“谁和谁有关”“什么属于什么”“什么依赖什么”“什么冲突什么”这些单靠只存储对象没有办法解决的语言之外的指向性,去明白的写出来。比如昨天我在写Agent Memory相关的代码,那我今天就一定在写么?不一定,但是存在关系。如果只靠对象,那就是单点式的,而关系把隐式的逻辑给表征出来了,所以对象和对象相互连接,也就成为了图。
但需要知道的是,再怎么细的去划分,如果停留在这里,其实也只是目录学的范畴。控制的含义可以更深一步,前面的我们其实可以理解为,让AI知道什么。而往下,其实就进入到很火的harness的范畴,也就是,让AI能做什么。以下是一些有代表性的研究,大家可以去看一下。
timeline
title Agent Memory 与 Context Management 演化时间线
2021 : RETRO
2022 : Memorizing Transformers
: Recurrent Memory Transformer
2023 : Generative Agents
: Reflexion
: Voyager
: MemGPT
: LongMem
: MemoryBank
2024 : LoCoMo
: LongMemEval
: Infini-attention
: AriGraph
2025 : RMM
: MemInsight
: A-Mem
: MemoryOS
: Mem0
: Zep
: MemoryAgentBench
2026 : H-Mem
: LightMem
: AMA-Bench
: MemoryArena
: MemGUI-Bench
: LongMemEval-V2
: Memora
这里也开出几个我自己不成熟的关于技术的思考:1. 所以从本质上看,其实skills也好,tools也好,其实都是归到上下文管理。 2. 知道其实和能做是不是一回事?如果AI不知道一个工具,那么它不就不能做么?只不过我们是为了防止AI原生的世界知识的影响,越过了我们划分的知道的边界,创造出一个有限的沙盒去承载它。3. 认为LLM可以通向AGI的,前提思想是不是就是,智能可以从对世界规律的压缩、预测、建模和行动反馈中涌现出来。但从中我觉得可以进一步推到其实世界是虚拟的幻象?因为概率的潮落和聚集如果可以发挥不可匹敌的能动作用,就说明,我们自认为的“我”在,也只不过是概率的聚集罢了。
1 个帖子 - 1 位参与者