一江山水的随笔

当前位置:首页 - 技术 - 正文

Enjoy life!

先说结论:AI智能体的记忆系统,短期靠对话窗口,长期靠向量数据库

我最近玩了不少AI智能体,发现它们有时候能记住我之前说过的话,有时候又像金鱼一样只有7秒记忆。这背后其实是短期记忆和长期记忆在起作用。简单来说,短期记忆就是对话窗口里的上下文,长期记忆则是用向量数据库存起来的“小本本”。今天我就来聊聊这是怎么实现的,用实际工具例子说明,不搞太深的理论。

短期记忆:对话窗口就是智能体的“工作记忆”

短期记忆的实现最简单直接,就是靠对话窗口的上下文。比如你用ChatGPT,它默认会记住最近几千个token的对话内容,这就是它的短期记忆。我试过,如果对话太长,它就会忘记开头说过什么,因为上下文窗口满了。

怎么实现的?

技术上,这通常是通过Transformer模型的注意力机制来实现的。模型在处理当前输入时,会“看”一下之前的对话历史,作为上下文。但受限于计算资源,这个上下文长度是有限的,比如GPT-4的上下文窗口是128K token,但实际使用中,太长的对话还是会丢失信息。

举个例子,我用Claude时,如果我说“我喜欢吃苹果”,然后隔了几十条消息再问“我刚才说喜欢吃什么?”,它大概率能回答出来,因为还在上下文窗口内。但如果对话超过窗口长度,它就记不住了。

实际工具中的短期记忆

  • ChatGPT:默认上下文窗口约128K token,短期记忆靠这个。
  • Claude:上下文窗口200K token,短期记忆更强一些。
  • 本地部署的模型:比如用Ollama跑Llama 3,上下文窗口可配置,但受硬件限制。

吐槽一下:有时候我觉得这短期记忆就像我的脑子,东西一多就乱,得靠外部工具帮忙。

长期记忆:向量数据库是智能体的“外部硬盘”

短期记忆不够用怎么办?那就得上长期记忆了。长期记忆的核心是把关键信息存起来,以后需要时再检索。这里最常用的技术就是向量数据库。

向量数据库怎么工作?

简单说,就是把文本转换成向量(一堆数字),然后存到数据库里。当智能体需要回忆时,它把当前问题也转换成向量,去数据库里找最相似的向量,对应的文本就是“记忆”。

步骤分解:

  1. 提取关键信息:从对话中识别出需要长期记住的内容,比如用户偏好、重要事实。
  2. 向量化:用嵌入模型(如OpenAI的text-embedding-ada-002)把文本转换成向量。
  3. 存储:把向量存到向量数据库,比如Pinecone、Chroma或Weaviate。
  4. 检索:当需要回忆时,检索相似向量,返回对应的文本。

实际工具例子

我最近在玩一个叫“AutoGPT”的工具,它就用到了长期记忆。我告诉它“我的项目截止日期是下周五”,它把这个信息提取出来,存到向量数据库里。之后我问“我什么时候要交项目?”,它就能从数据库里检索出来,回答“下周五”。

另一个例子是ChatGPT的“自定义指令”功能,虽然不算完整的长期记忆,但原理类似:你把个人信息存起来,它每次对话时参考这些信息。

关键信息提取:怎么决定记住什么?

智能体不是什么都记,那会撑爆数据库。关键信息提取就是决定“记什么”的环节。

常见方法

  • 规则匹配:比如检测到“我喜欢”、“我讨厌”、“我的目标是”等关键词,就提取出来。
  • AI分类:用另一个小模型判断一段文本是否重要,比如用户偏好、任务详情。
  • 手动标记:在一些工具里,用户可以主动说“记住这个”,触发存储。

以我用的一个开源智能体框架为例,它配置了这样的规则:

# 示例配置:提取包含“偏好”或“目标”的句子
memory_rules = [
    {"pattern": "偏好", "action": "store"},
    {"pattern": "目标", "action": "store"}
]

这样,当我说“我的偏好是喝黑咖啡”,它就会自动提取“喝黑咖啡”存到长期记忆里。

注意事项和总结

注意事项

  • 隐私问题:长期记忆可能存敏感信息,用的时候得小心,别泄露隐私。
  • 存储成本:向量数据库不是免费的,尤其是用云服务时,数据多了要花钱。
  • 检索准确性:向量检索不一定100%准确,有时候会“记错”,需要优化嵌入模型。

总结

AI智能体的记忆系统,短期记忆靠对话窗口上下文,长期记忆靠向量数据库存储关键信息。实现上,短期记忆简单但有限,长期记忆复杂但更强大。对于普通用户,了解这些能帮你更好使用智能体工具;对于开发者,可以参考这些思路构建自己的记忆系统。

我个人觉得,这就像人脑的记忆机制:短期记忆在“工作内存”里,长期记忆在“硬盘”里。智能体越来越像人了,虽然有时候还是笨笨的,但至少不会忘记我喝黑咖啡了。

文章配图

AI智能体记忆系统揭秘:对话窗口是短期记忆,向量数据库是长期记忆

本文来源:一江山水的随笔

本文地址:https://www.298.name/post/136.html

主要内容:AI智能体记忆系统揭秘:对话窗口是短期记忆,向量数据库是长期记忆

版权声明:如无特别注明,转载请注明本文地址!

上一篇

博主有点懒,啥也没写!
下一篇

牛刀小试
想找什么搜索会更快哦!
站点信息
  • 文章总数:132
  • 页面总数:1
  • 分类总数:4
  • 标签总数:134
  • 评论总数:61
  • 浏览总数:1534590
控制面板
您好,欢迎到访网站!
  查看权限
Top