一江山水的随笔

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

Enjoy life!

AI智能体是怎么记住东西的?简单说,短期靠对话窗口,长期靠向量数据库

最近玩AI工具,我发现一个挺有意思的问题:这些AI智能体是怎么记住之前聊过的东西的?比如我问它“我昨天提到的项目进展如何”,它居然能回答出来。这背后其实就是记忆系统在起作用。今天我就来聊聊这个,用大白话解释一下短期记忆和长期记忆是怎么实现的,顺便给几个实际工具的例子,让你也能自己动手试试。

短期记忆:对话窗口,就像你刚聊完天还记得住

短期记忆在AI里,说白了就是对话窗口(context window)。比如你用ChatGPT,它有个固定的窗口大小(比如4096个token),这个窗口里能放最近的一段对话。AI处理时,会把整个窗口内容一起送进模型,这样它就能“看到”上下文,知道你在说什么。

举个例子,如果你问:“我昨天提到的项目进展如何?”AI会检查窗口里有没有之前的对话记录。如果有,它就能回答;如果没有,它就瞎猜或者告诉你不知道。这就像你刚跟朋友聊完天,还能记得住刚才说了啥,但过一会儿可能就忘了。

实现上很简单:

  • 工具如ChatGPT或Claude:内置了对话窗口管理,自动保留最近N条消息。
  • 代码示例(用Python模拟):
    # 假设对话窗口大小是5条消息
    context_window = []
    def add_to_context(message):
        context_window.append(message)
        if len(context_window) > 5:
            context_window.pop(0)  # 移除最旧的消息
        return context_window
    
    # 添加新消息
    add_to_context("用户:我昨天提到的项目进展如何?")
    # AI处理时,会使用整个context_window作为输入

但短期记忆有个大问题:窗口有限,聊多了就记不住。所以需要长期记忆来补。

长期记忆:向量数据库,像你的笔记本记重点

长期记忆靠的是向量数据库(vector database)。这玩意儿听起来高大上,其实原理不复杂:AI把重要信息转换成向量(一堆数字),存到数据库里,以后需要时再查出来。

关键步骤:

  • 提取关键信息:AI从对话中挑出重要内容,比如人名、日期、事件。
  • 向量化:用嵌入模型(如OpenAI的text-embedding-ada-002)把文本转成向量。
  • 存储:向量存到数据库,如Pinecone、Chroma或FAISS。
  • 检索:用户提问时,AI把问题也向量化,去数据库里找相似的向量,拿回关联信息。

实际工具例子:

  • LangChain:一个流行框架,内置了记忆模块,可以用向量数据库做长期存储。我试过,配置一下就能让AI记住跨会话的信息。
  • AutoGPT:早期项目,用向量数据库存任务历史,实现长期规划。
  • 代码片段(用LangChain和Chroma):
    from langchain.embeddings import OpenAIEmbeddings
    from langchain.vectorstores import Chroma
    from langchain.memory import VectorStoreRetrieverMemory
    
    # 初始化向量数据库
    embeddings = OpenAIEmbeddings()
    vectorstore = Chroma(embedding_function=embeddings)
    memory = VectorStoreRetrieverMemory(retriever=vectorstore.as_retriever())
    
    # 存信息
    memory.save_context({"input": "用户:我昨天提到的项目进展如何?"}, {"output": "AI:项目已完成80%。"})
    # 取信息
    retrieved = memory.load_memory_variables({"input": "项目进展"})
    print(retrieved)  # 输出相关记忆

这样,AI就能长期记住东西了,就像你写笔记一样,随时翻看。

关键信息提取:AI怎么知道该记什么?

不是所有对话都值得记,否则数据库早爆了。AI通常用这些方法提取关键信息:

  • 基于规则:比如提取实体(人名、地点),或者用关键词匹配。
  • 机器学习:训练模型识别重要句子,比如用摘要生成技术。
  • 混合方法:实际工具如LangChain,结合了多种提取器,提高准确性。

吐槽一下:这步挺难的,AI有时候会记些乱七八糟的东西,比如我开玩笑说“明天世界末日”,它可能真存进去了,导致后续回答跑偏。所以实际用的时候,得调参或加过滤。

总结:短期和长期记忆结合,AI才更智能

简单总结:

  • 短期记忆 = 对话窗口,简单但有限,适合即时上下文。
  • 长期记忆 = 向量数据库,复杂但强大,适合跨会话记忆。
  • 关键信息提取是桥梁,决定记什么、怎么记。

如果你想自己玩,我推荐:

  • 初学者:试试ChatGPT的对话窗口,感受短期记忆。
  • 进阶者:用LangChain搭个向量数据库,体验长期记忆。
  • 注意:记忆系统不是完美的,AI可能记错或遗忘,别太依赖。

总的来说,AI记忆系统还在发展中,但理解这些基础,能帮你更好地使用工具,甚至自己定制智能体。有啥问题,欢迎留言讨论!

文章配图

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

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

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

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

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

上一篇

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

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