当前位置: 首页 > news >正文

Agent记忆框架(三)

概述

AI、LLM、Agent实在是太火爆,关于为LLM增加记忆能力的研究也层出不穷。参考:

  • Agent记忆理论与实现:Mem0、MemU、MemOS
  • Agent记忆框架(二):Memvid、Memary、MemoryOS

本文继续搜集整理一些项目。

Zep

论文,官网,GitHub,3.7K Star,549 Fork。

Graphiti

GitHub,19.5K Star,1.8K Fork。官方文档

Graphiti是Zep的核心组件,支持对接多家模型提供商。本身不是一个图存储,需集成三方图数据库,如Neo4j或FalkorDB。

核心

  • Instant updates:新数据即时更新
  • Bi-temporal tracking:既知道事情发生的时间,也知道被记录的时间
  • Hybrid retrieval:融合Semantic Search(语义)、Keyword Search(关键词)和Graph Traversal(图遍历,关系结构)

安装:

pip install graphiti-core
uv add graphiti-core

示例

from graphiti_core import Graphiti
from graphiti_core.driver.neo4j_driver import Neo4jDriverdriver = Neo4jDriver(uri="bolt://localhost:7687",user="neo4j",password="password",database="graphiti_demo"
)
graphiti = Graphiti(graph_driver=driver)
episode = {"event": "purchase","user": "johnny","item": "Adidas","timestamp": "2025-10-16T09:00:00Z"
}
graphiti.add_episode(episode)results = graphiti.search("Who bought Adidas?")
print(results)

FalkorDB

官网,GitHub。

MIRIX

论文,GitHub,2.2K Star,225 Fork,官网。

模块化的多智能体记忆系统(Multi-Agent Memory System),MIRIX突破文本的限制,融入丰富的视觉和多模态体验,使记忆在现实场景中真正变得有用。

MIRIX由六种不同的经过精心设计的记忆类型组成,并搭配多智能体框架,能够动态控制和协调更新与检索。使智能体能够大规模地持久保存、推理并准确检索多样化、长期的用户数据。
在这里插入图片描述

  • Core:核心记忆,存储始终对智能体可见的高优先级、持久信息,分为人格和人类两个模块。
  • Episodic:情景记忆,存储时间戳事件和基于时间的交互,类似于结构化的日志或日历。
  • Semantic:语义记忆,存储与特定时间或事件无关的抽象知识和事实信息;以树状结构展示,适合层级关系等
  • Procedural:程序记忆,存储结构化的、目标导向的过程,如操作流程和交互脚本。以列表形式展示,适合任务步骤等
  • Resource:资源记忆,处理用户正在积极参与的文档、转录或多媒体文件。
  • Knowledge Vault:知识库,知识库作为敏感信息(如凭证、地址、联系信息和API密钥)的安全存储库。

检索设计:MIRIX支持多种检索功能,包括嵌入匹配、BM25匹配和字符串匹配,并正在扩展更多多样化的检索策略。

记忆更新工作流
在这里插入图片描述
接收到用户请求后,首先在记忆库中进行搜索,然后将检索到的信息和用户输入传递给元记忆管理器,由其分析内容并确定相关记忆组件,将输入路由到相应的记忆管理器进行并行更新。
在这里插入图片描述
测评

  • ScreenshotVQA:包含近2w张高分辨率计算机屏幕截图的多模态基准测试,需要深度的上下文理解能力;
  • LOCOMO:一个单模态文本输入的长篇对话基准测试

Memobase

官网,GitHub,2.3K Star,167 Fork,官方文档。

基于用户档案的AI记忆系统,提供一套全面的特性,专为实用、生产就绪的AI记忆设计:

特性描述
档案记忆结构化表示用户偏好、人口统计信息、兴趣等
事件记忆基于时间的用户重要经历和活动的记录
批量处理高效处理批量对话,而非实时处理
多语言SDK原生支持Python、TS/JS和Go
热门集成提供与OpenAI、Ollama、LiveKit等的现成集成
自托管或云服务运行您自己的实例或使用Memobase Cloud的免费层级

以用户为中心的设计,区别于其他智能体记忆解决方案。
在这里插入图片描述
工作流程:

  • 捕获数据:应用将对话历史或其他用户数据作为数据块发送到Memobase
  • 处理记忆:Memobase分析这些数据以提取有意义的用户信息
  • 构建档案:信息被组织成结构化、可查询的用户档案
  • 访问上下文:应用在需要时检索相关用户详细信息
  • 创建体验:使用这些记忆来提供个性化互动

内存管理系统,处理、存储和检索用户交互,以随时间构建丰富、持久的用户画像。由多个相互连接的组件组成,旨在为AI应用创建一个有效的内存系统。
在这里插入图片描述

实战

官方playground体验,左侧边栏如下,主要是超链接和
在这里插入图片描述
中间是一个聊天对话框:
在这里插入图片描述
右侧会近实时展示记忆内容:
在这里插入图片描述

安装:pip install memobase

以Python为例:

from memobase import MemoBaseClient, ChatBlobclient = MemoBaseClient(project_url="http://localhost:8019",  # 或使用Memobase Cloudapi_key="xxx",
)
user_id = client.add_user()
# 对话记录
messages = [{"role": "user", "content": "你好,我是来自西雅图的亚历克斯"},{"role": "assistant", "content": "很高兴见到你,亚历克斯!"},
]
blob = ChatBlob(messages=messages)
user = client.get_user(user_id)
blob_id = user.insert(blob)
# 处理数据到记忆
user.flush(sync=True)
# 检索用户档案
profile = user.profile(need_json=True)
print(profile)

JS SDK安装:npm install @memobase/memobase

或通过JSR安装:npx jsr add @memobase/memobase

GO SDK安装:go get github.com/memodb-io/memobase/src/client/memobase-go

此外,还可通过源码或Docker Compose安装。

Memobase为不同用例提供多个预配置模板:

模板描述用例
profile_for_assistant优化用于AI助手通用AI助手
profile_for_education专注于学习相关属性教育应用
profile_for_companion优化用于伴侣式交互AI伴侣和聊天机器人
event_tag启用时间属性跟踪需要时间感知记忆的应用
only_strict_profile仅收集明确设计的档案注重隐私的应用
jina_embedding使用Jina嵌入进行事件搜索OpenAI嵌入的替代方案

LightMem

论文,GitHub,233 Star。

LightMem和其他框架的对比
在这里插入图片描述
Atkinson-Shiffrin模型把记忆分为:

阶段功能对应LLM痛点
感觉记忆毫秒级过滤无关刺激冗余Token
短期记忆秒-分钟级主题整合语义混杂
长期记忆睡眠时离线巩固实时更新延迟

转换示意图
在这里插入图片描述
Atkinson-Shiffrin模型:

  • 维基百科
  • 百度百科-多贮存模型

搜索该记忆模型时,发现多年前还有一篇高引用的论文XMem: Long-Term Video Object Segmentation with an Atkinson-Shiffrin Memory Model,提出一种长视频对象分割方法。

在这里插入图片描述
三个阶段:

  • Light1:预压缩 + 主题分段
  • Light2:主题级短期记忆
  • Light3:睡眠期离线合并
    • 在线阶段只做追加写,零延迟
    • 离线阶段并行执行读-改-写:每条记忆维护一个更新队列Q(ei)Q(e_i)Q(ei),仅与更高时间戳的条目合并,可批量并行,总延迟从O(N)O(N)O(N)O(1)O(1)O(1)

LangMem

LangChain官方开源(GitHub,1.1K Star,131 Fork)的智能体记忆系统,官方文档。

记忆类型

记忆类型目的代理示例人类示例典型存储方式
语义记忆知识与事实用户偏好、知识三元组知道Python是一种编程语言配置文件或集合
事件(情节)记忆过去经历少量示例、过去对话的总结记得第一天上班的情景集合
程序记忆系统行为核心个性和响应模式知道如何骑自行车提示规则或集合

实战

安装:pip install -U langmem

实例

from langgraph.prebuilt import create_react_agent
from langgraph.store.memory import InMemoryStore
from langmem import create_manage_memory_tool, create_search_memory_tool# 设置存储
store = InMemoryStore(index={"dims": 1536,"embed": "openai:text-embedding-3-small",}
)
agent = create_react_agent("anthropic:claude-3-5-sonnet-latest",tools=[# 使用LangGraph的BaseStore进行持久化create_manage_memory_tool(namespace=("memories",)),create_search_memory_tool(namespace=("memories",)),],store=store,
)
agent.invoke({"messages": [{"role": "user", "content": "记住我喜欢深色模式。"}]}
)
response = agent.invoke({"messages": [{"role": "user", "content": "我的照明偏好是什么?"}]}
)
print(response["messages"][-1].content)

A-MEM

论文,对应的开源地址是个人GitHub,或AGI-Research-GitHub,两者仓库地址不一样,但代码文件和README几乎一样;没有一行行对比,没有必要,因为作者也在往后面这个仓库提交代码。后者最后更新时间更靠前。

借鉴著名的卡片盒笔记法 (Zettelkasten,一种知识管理技术),强调创建相互关联的笔记网络,而非孤立的信息孤岛。

架构
在这里插入图片描述
主要特性

  • 动态记忆组织:与静态记忆系统不同,A-MEM根据语义关系主动组织记忆。当您添加新记忆时,系统会:
    • 使用LLM分析内容,提取关键词、上下文和标签
    • 在向量数据库中搜索语义相关的记忆
    • 在相关记忆之间创建有意义的链接
    • 根据新连接可能更新现有记忆
  • 智能记忆进化:系统最具创新性的特性是其随时间进化记忆的能力。通过复杂的提示词和LLM分析,它可以:
    • 加强相关记忆之间的连接
    • 根据新信息更新现有记忆的上下文和标签
    • 当出现模式时整合记忆
    • 维护记忆的进化历史
  • 混合搜索能力:A-MEM结合多种搜索策略提供全面的检索功能:
    • 基于向量的搜索实现语义相似性
    • 元数据过滤实现精确分类
    • 链接记忆遍历探索知识网络
  • 丰富的元数据管理:每个记忆笔记包含全面的元数据:
    • 核心内容和唯一标识符
    • 时间信息(创建和访问时间)
    • 语义元数据(关键词、上下文、标签)
    • 关系数据(与其他记忆的链接)
    • 使用统计(检索次数)
    • 进化跟踪(变更历史)

工作流程:
在这里插入图片描述

进阶

记忆系统围绕三个主要组件构建,三者协同工作以创建一个智能自组织的知识库:

  • MemoryNote:信息存储的基本单元,一个超越简单文本存储的复杂数据结构,不仅封装内容,还包含支持智能记忆管理的丰富元数据集。
  • AgenticMemorySystem:管理记忆操作的核心协调器
  • Retrieval System:结合向量相似性和语义理解的混合搜索系统

MemoryNote维护多个维度的信息:

  • 核心内容:主要文本信息
  • 语义元数据:通过LLM分析提取的关键词、上下文和标签
  • 时间信息:创建时间戳和最后访问时间
  • 关系数据:指向相关记忆的链接,形成知识图谱
  • 使用统计:表示记忆重要性的检索计数
  • 演变历史:记录记忆随时间变化的轨迹

这种丰富的元数据结构使系统能够不仅理解记忆包含的内容,还能理解它与其他记忆的关系以及使用频率。

note = MemoryNote(content="深度学习神经网络使用反向传播",keywords=["深度学习", "神经网络", "反向传播"],context="机器学习",tags=["ML", "神经网络"],category="技术",links=["memory_id_123"]  # 链接到相关记忆
)

AgenticMemorySystem,作为架构的中枢神经系统,协调所有记忆操作并实现使该系统独特的代理行为。协调四个关键功能:

  • 记忆生命周期管理:创建、检索、更新和删除(CRUD操作)
  • 内容分析:自动提取语义元数据
  • 记忆演变:基于关系的动态重组
  • 混合检索:结合向量相似性和语义搜索

真正使这个系统脱颖而出的是其记忆演变能力。与静态记忆系统不同,主动分析记忆之间的关系,并根据语义连接重新组织它们。
在这里插入图片描述
演变过程遵循以下步骤:

  • 关系分析:添加新记忆时,系统查找语义相关的记忆
  • 基于LLM的决策:LLM分析关系并决定记忆应如何演变
  • 动态更新:根据分析结果更新记忆的链接、标签和上下文
  • 整合:定期重组确保最佳记忆结构

检索系统采用混合方法,结合向量相似性搜索和语义理解的优势,在记忆检索中同时提供精确性和召回率。
在这里插入图片描述
实现多种搜索策略以满足不同用例:

  • 基础搜索:使用ChromaDB的简单向量相似性
  • 代理搜索:包含链接记忆和关系的增强搜索
  • 原始搜索:返回未处理结果用于内部演变过程

ChromaDB提供:

  • 高效向量存储:针对高维嵌入优化
  • 语义相似性:基于含义而非仅关键词查找记忆
  • 元数据处理:与向量一起存储和检索丰富的记忆元数据

实战

安装:

git clone https://github.com/agiresearch/A-mem.git
cd A-mem
python -m venv .venv
source .venv/bin/activate
pip install .

官方示例:

from agentic_memory.memory_system import AgenticMemorySystemmemory_system = AgenticMemorySystem(model_name='all-MiniLM-L6-v2', # 嵌入模型llm_backend="openai", # 可选项:openai、ollamallm_model="gpt-4o-mini"
)
memory_id = memory_system.add_note(content="机器学习项目需要仔细的数据预处理",tags=["ml", "project"],category="Research"
)
results = memory_system.search_agentic("数据预处理", k=3)
for result in results:print(f"内容: {result['content']}")print(f"标签: {result['tags']}")

MemTool

论文,没有开源

MemTool内置三种不同的工作模式,目的是找到最适合本轮Query的工具集,对于每一轮Query:

  • 纯Agent:Agent自主决定增加和删除工具;
  • Workflow:让第三方LLM增加和删除工具,Agent不做这件事;
  • 混合:让第三方LLM删除工具,Agent可自主决定增加哪些工具。
http://www.dtcms.com/a/545945.html

相关文章:

  • 建歌网站多少钱在百度备案网站
  • F040 python中医药图谱问答|双推荐算法+知识图谱+智能问答+vue+flask+neo4j前后端分离B/S架构|爬虫|图谱生成|全套
  • 南京做网站企业如何建网站做推广
  • 网页设计素材螺蛳粉图seo 网站两个ip
  • Blender骨骼笔记
  • 6.4 大数据方法论与实践指南-计算成本治理(省钱)
  • 开发BUG修复汇总(持续更新)
  • html5网站模板怎么用个人社保缴费证明怎么查询
  • 网站规划思想方法有哪些内容手机微网站平台登录入口
  • 【docker】bashrc文件的合理配置
  • Docker Desktop 安装教程和最佳实践
  • 6 mysql对order by group by join limit count的实现
  • Rust:Trait 抽象与 unsafe 底层掌控力的深度实践
  • 安全员C证(全国版)模拟考试练习题答案解析
  • (huawei)最小栈
  • 四川建设网官网住房和城乡厅网站文字很少怎么做优化
  • apache 配置网站茶叶网站源码php
  • 南昌自主建站模板建设标准网站
  • PyTorch 基础详解:tensor.item() 方法
  • 外贸网站 php基于云平台网站群建设
  • 产品设计网站官网制作人是做什么的
  • 【每天一个知识点】“社区检测”(Community Detection)
  • 建站之星 discuz广州开发区东区
  • 04-函数与模块-练习
  • 网站seo教材中国建设银行校园招聘网站
  • 原型样网站做网站代理
  • 临海响应式网站设计wordpress移动应用
  • Rust生命周期与泛型的组合使用深度解析
  • 张家港网站建设服务全网营销公司排名前十
  • 网站建设廴金手指花总壹陆陈村九江网站建设