TencentDB Agent Memory:AI 智能体的长期记忆数据库

TencentDB Agent Memory:AI 智能体的长期记忆数据库

大模型

📖 简介

腾讯云开源的 4 层记忆管道(感知→加工→存储→检索),为 AI 智能体提供持久上下文能力,支持 PB 级扩展和毫秒级检索。

📝 详细介绍

AI 智能体的记忆困境,终于有了一个数据库级的解决方案

多轮对话、长期任务规划、个性化交互——这些场景的核心痛点只有一个:AI 智能体如何高效、持久地存储和检索记忆。传统方案要么用向量数据库存 Embedding,要么用 Redis 做临时缓存,要么自己拼 SQLite。结果就是:记忆碎片化、检索逻辑混乱、上下文窗口浪费严重。

TencentDB Agent Memory 就是来解决这个问题的。它是一个专门为 AI 智能体设计的长期记忆数据库,由腾讯云数据库团队开源。它不是“又一款向量数据库”,而是一个 记忆管理中间件:它帮你把对话历史、用户偏好、知识图谱、任务状态等结构化/非结构化数据,统一管理起来,并提供给 LLM 一个干净的、可定制的记忆上下文。

指标数据
Stars1.2k+
语言Python
协议Apache 2.0
最近更新2024-08-15

项目背景:为什么需要“记忆数据库”?

腾讯云数据库团队在服务大量 AI 应用客户时发现一个普遍痛点:开发者构建智能体时,80% 的时间花在“记忆管理”上,而不是智能体逻辑本身。他们需要自己写对话摘要、自己维护用户画像表、自己写向量检索逻辑、自己处理上下文窗口溢出。

这个项目的定位很清晰:不是替代数据库,而是替代你手写的记忆管理代码。它提供了一个开箱即用的记忆存储、检索、压缩和注入框架,开发者只需要告诉它“我要存什么”和“我要取什么”,剩下的交给 Agent Memory。

核心功能解析

1. 多模态记忆存储与自动摘要

Agent Memory 支持存储 对话记录、用户属性、关键事实、知识图谱三元组 等多种记忆类型。最实用的是它的自动摘要机制:当一段对话超过你设定的 token 阈值时,它会自动调用 LLM 生成摘要并替换原始对话,从而 有效控制上下文窗口膨胀

# 存储一段对话记忆
from agent_memory import AgentMemory

memory = AgentMemory()
memory.add_conversation(
    session_id="session_001",
    user_message="我喜欢喝冰美式",
    assistant_message="好的,已记录你的偏好"
)

# 自动触发摘要(当对话累积到一定量时)
memory.auto_summarize(session_id="session_001")

2. 基于 Relevance 的智能检索

它不只是简单的向量相似度搜索。Agent Memory 实现了 多路召回 + 重排序 的检索策略:同时从对话历史、用户属性、知识图谱中召回相关记忆,然后通过一个可配置的 relevance scorer 进行排序,最终只返回最相关的 top-K 条记忆。

# 检索与当前查询最相关的记忆
relevant_memories = memory.retrieve(
    query="用户对咖啡有什么偏好?",
    session_id="session_001",
    top_k=5,
    memory_types=["conversation", "attributes", "facts"]
)
# 返回结果已按相关性排序

3. 记忆注入与上下文组装

这是最体现“数据库”思维的功能。Agent Memory 提供了一个 build_context() 方法,它会把检索到的记忆 自动格式化成一个结构化的 prompt 片段,开发者可以直接拼接到系统提示词中。它还会自动处理 token 预算,确保注入的记忆不会超出上下文窗口。

# 构建可直接注入的上下文
context = memory.build_context(
    query="推荐一款咖啡",
    session_id="session_001",
    max_tokens=2000
)

# 直接拼接到 system prompt
system_prompt = f"你是咖啡助手。以下是关于用户的信息:\n{context}"

快速上手

# 1. 安装
pip install tencentdb-agent-memory

# 2. 启动内置的 SQLite 后端(开发用)
# 默认使用 SQLite,零配置即可运行
from agent_memory import AgentMemory
memory = AgentMemory()

# 3. 或者连接 PostgreSQL(生产推荐)
memory = AgentMemory(
    backend="postgresql",
    connection_string="postgresql://user:pass@host:5432/agent_memory"
)

# 4. 开始使用
memory.add_user_attribute("user_001", {"name": "张三", "preference": "冰美式"})
memory.add_conversation("session_001", "你好", "你好,有什么可以帮你的?")
print(memory.retrieve("用户喜欢什么饮品?", session_id="session_001"))

技术亮点:架构设计深度分析

Agent Memory 的架构设计有几个值得关注的决策:

1. 存储层抽象: 它没有绑定特定的数据库。默认用 SQLite 做轻量开发,生产环境可以切换 PostgreSQL、MySQL 甚至 TiDB。这个抽象层意味着你可以把记忆数据跟业务数据放在同一个数据库里,减少运维复杂度。底层通过一个 StorageBackend 接口实现,扩展新的存储后端只需要实现 5 个方法。

2. 记忆的“生命周期管理”: 这是最聪明的设计。Agent Memory 把记忆分为 短期记忆(当前对话)、长期记忆(用户画像、关键事实)、工作记忆(当前任务状态)。短期记忆会随着对话轮次增加而自动压缩为摘要,长期记忆通过显式 API 持久化,工作记忆在任务完成后归档。这种分层设计避免了“所有记忆一锅炖”的混乱。

3. 检索的“上下文感知”: 传统的 RAG 检索只做语义相似度。Agent Memory 在此基础上引入了 时间衰减(越近的记忆权重越高)、会话上下文权重(当前会话内的记忆优先)、类型权重(用户属性比普通对话更重要)。这些权重可以通过配置调整,让检索结果更符合实际业务场景。

4. Token 预算管理: 它内置了一个 token 计数器,在 build_context() 时会精确计算注入的记忆所占的 token 数,并自动裁剪到不超过 max_tokens 的限制。这个功能看起来简单,但实际做起来很坑——不同 LLM 的 tokenizer 不同,它支持按模型类型(GPT-4、Claude、GLM 等)配置 tokenizer。

一个值得注意的细节:Agent Memory 的自动摘要功能不是简单的“截断前 N 个 token”,而是调用 LLM 生成结构化摘要,保留关键实体和关系。这意味着摘要本身也是可检索的。

同类对比

项目定位存储后端记忆分层自动摘要上下文组装上手成本
TencentDB Agent Memory记忆管理中间件SQLite / PG / MySQL是(短/长/工作)是(LLM 驱动)是(内置)
LangChain Memory框架内记忆组件多种(需额外配置)部分需手动拼接
Mem0记忆即服务自有云服务中(依赖云)
Chroma / Pinecone向量数据库自身高(需自己写逻辑)
手写 SQLite + Embedding自研方案SQLite需自己实现需自己实现需自己实现

对比下来,Agent Memory 的核心优势在于:它是唯一一个把“记忆管理”作为一个完整产品来设计的开源项目。LangChain 的 Memory 是框架的一部分,离开 LangChain 就没法用;Mem0 是云服务,数据不在你手里;向量数据库只解决“存储和检索”一个环节,剩下的你全得自己写。Agent Memory 给的是一个开箱即用的、可自托管的记忆管理方案。

总结

如果你正在开发一个需要长期记忆的 AI 智能体——无论是客服机器人、个人助手、游戏 NPC 还是任务规划 Agent——TencentDB Agent Memory 值得你花 30 分钟跑一遍示例代码。它能把你从手写记忆管理代码的泥潭里拉出来,让你专注于智能体本身的逻辑。尤其适合中小团队和独立开发者,因为它的 SQLite 后端让你在 MVP 阶段零成本起步,后续按需迁移到 PostgreSQL 即可。

🚀

AI 项目推荐

大模型
标签
#记忆管理 #腾讯云 #Agent #数据库
浏览
👁️ 16
发布日期
2026-07-19