一江山水的随笔

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

Enjoy life!

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

我最近在折腾各种AI工具,发现一个挺有意思的问题:为什么有些AI能记住之前的对话,有些却像金鱼一样只有7秒记忆?其实这背后就是记忆系统的实现方式不同。简单来说,短期记忆就是对话窗口,长期记忆则是向量数据库。下面我结合具体例子,拆解一下这俩是怎么工作的。

短期记忆:对话窗口,就是聊天记录

短期记忆的实现最简单粗暴,就是直接把最近的对话内容塞进上下文里。比如你用ChatGPT,它默认会记住最近几千个token的对话,这就是它的短期记忆窗口。

  • 怎么实现? 每次你发消息,AI会把当前消息和之前几条对话一起作为输入,这样它就能“看到”上下文。比如你问“我昨天提到的项目进展如何?”,AI需要看到昨天的对话才能回答。
  • 实际例子: 大多数聊天机器人都是这么干的。我试过Claude,它的上下文窗口有100K token,能记住很长的对话,但一旦超过这个长度,最早的内容就被“遗忘”了。
  • 吐槽点: 这方法有个硬伤——窗口大小有限。对话一长,前面内容就丢了,而且所有内容都平等对待,没有重点记忆。

长期记忆:向量数据库,存关键信息

长期记忆就高级多了,靠的是向量数据库。简单说,就是把重要信息转换成向量(一堆数字),存起来,以后需要时再检索。

  • 关键信息提取: AI不会啥都记,而是提取关键信息。比如你告诉它“我叫张三,喜欢编程,住在北京”,它会提取“姓名:张三”、“爱好:编程”、“地点:北京”这些结构化信息。
  • 向量化存储: 这些信息被转换成向量,存在数据库里。向量可以理解成信息的“指纹”,相似的信息向量也相似。
  • 检索过程: 当AI需要回忆时,它会根据当前问题生成一个向量,然后去数据库里找最相似的向量,把对应的信息拉出来用。

实际工具例子:以LangChain为例

我拿LangChain这个框架举例,因为它把记忆系统做得比较直观。

from langchain.memory import ConversationBufferMemory, VectorStoreRetrieverMemory
from langchain.vectorstores import Chroma
from langchain.embeddings import OpenAIEmbeddings

# 短期记忆:对话缓冲区
memory = ConversationBufferMemory()
memory.save_context({"input": "我叫一江山水"}, {"output": "好的,记住了"})

# 长期记忆:向量数据库
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_texts(["一江山水,技术博主,博客298.name"], embeddings)
retriever = vectorstore.as_retriever()
long_memory = VectorStoreRetrieverMemory(retriever=retriever)
long_memory.save_context({"input": "我的职业是什么?"}, {"output": "技术博主"})

这段代码里,ConversationBufferMemory就是短期记忆,存最近对话;VectorStoreRetrieverMemory是长期记忆,用Chroma向量数据库存信息。实际使用时,AI会结合两者来回答。

注意事项和总结

  • 短期记忆快但有限: 对话窗口实现简单,响应快,但受限于长度,且没有优先级。
  • 长期记忆智能但复杂: 向量数据库能存大量信息,支持语义检索,但需要额外处理(提取、向量化、检索),速度可能慢点。
  • 混合使用是趋势: 现在很多AI工具两者都用,短期记忆处理当前对话,长期记忆存用户偏好、重要事实等。
  • 隐私问题: 长期记忆可能涉及用户数据存储,得注意隐私保护,别啥都瞎存。

总之,AI记忆系统没那么神秘,短期记忆就是聊天记录滚动,长期记忆就是向量数据库存重点。作为用户,了解这些能帮你更好使用AI工具;作为开发者,可以参考这些思路自己折腾。有啥问题,欢迎来我博客298.name交流。

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

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

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

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

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