Rijul正在开发一款叫git-lrc的微型AI代码审查工具,每次代码提交都会自动运行。在他的技术博客里,他用一个简单的比喻解释了一项被越来越多AI系统采用的技术——检索记忆。
“想象一下,你的AI智能体随身背着一个背包。”他写道。这个背包里装着你的偏好设定、项目细节、过往经历和常用流程,但不会一股脑儿把所有东西都倒进每一轮对话。只有当某条信息变得有用时,智能体才会伸手进去,把它取出来。
![]()
这就是检索记忆的基本思路。
当我们与AI智能体持续对话,系统会面临一个固有限制:上下文窗口。每一轮问答、每条指令、每一段解释,都会不断挤占这个有限的空间。一旦上下文被填满,旧的信息要么被截断,要么被遗忘,模型就只能凭残存的片段给出回应。以往的做法是不断压缩、裁剪,或者直接丢掉看似不重要的内容,但这样难免会丢失关键线索。
还有一种思路,从一开始就不把所有信息都塞进活跃上下文。系统可以把信息存放到外部,只在需要时才调用。检索记忆正是沿着这条路径展开的。
它的运作流程很直接:用户提出请求后,系统会在存储的记忆中搜索,找出最相关的部分,把结果植入当前上下文,再由模型生成回答。关键在于,这些记忆不需要一直躺在上下文里占地方,它们可以安静地待在外部存储中,等到真正相关的时刻再被唤醒。
不妨看一个具体例子。假设你曾对AI助手说过:“我最喜欢的编程语言是Rust。”系统会把这条信息存成一条记忆项,比如标签为“用户偏好”的记录:最喜欢的编程语言 = Rust。几天后,你随口问:“帮我给下个项目选一门语言。”AI在生成建议时,很可能会优先推荐Rust,或者至少把它放进候选列表。有意思的是,在这两次对话之间,那条偏好信息完全不需要出现在活跃上下文中。它只是被存好了,等到合适的问题出现时才被提取出来。这就是检索记忆的工作方式——记忆并非直接固化在模型内部,而是在需要时被检索并送入上下文。
这种架构听起来很像RAG(检索增强生成)。流程也的确相似:查询、检索相关信息、添加入上下文、生成回应。但二者的主要区别在于信息来源。传统的RAG往往会从外部文档库、知识图谱、网页数据中抓取内容,而检索记忆通常是从个体层面调取信息——比如特定用户的偏好、某一智能体的历史交互记录、以及专属的项目资料。可以说,这是一种更私人、更紧扣“谁在使用”的记忆机制,而不是面向一个泛化的公共语料库。
正因如此,检索记忆能容纳的信息类型非常多样。凡是能帮助AI更好地理解具体用户或具体任务的内容,都可以放进去:某人对代码风格的喜好、项目目录结构、之前踩过的坑、反复提及的技术栈选择,甚至是一段关于合作偏好的自然语言描述。这些信息不需要被精心结构化,只要能在触发时被有效检索出来,就能显著提升智能体回答的贴合度。
当上下文窗口总是有限,而使用场景越来越强调连续、深度的协作时,这种“背包”式的记忆策略就变得格外实用。它让AI不必每次都从零开始认识你,也不必为了记住一切而把上下文撑得臃肿不堪。你只要告诉它一次,它就能在未来的关键节点上重新想起。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.