长记忆服务

更新时间:
复制 MD 格式

长记忆服务是上下文服务中提供的核心能力,基于ADBPGMem实现记忆数据的管理和服务配置,支持Session、User、Agent三种记忆场景。

登录ADBPGMem Dashboard

开通长记忆服务后,可通过ADBPGMem Dashboard进行记忆数据的管理和服务配置。

  1. 上下文服务页面,选择对应的工作空间

  2. 单击工作空间长记忆服务区域的访问服务,即可登录ADBPGMem Dashboard

核心功能

记忆场景

具体使用记忆时,支持如下三种场景:

记忆场景

说明

检索方式

Session

短期记忆场景,只关心某个对话Session中所产生的记忆,不会引用其他Session的记忆。记忆持久存储,除非调用记忆删除接口将其删除。

通过Run ID加载或检索该Session的所有记忆。

User

适用于需要引用某个用户历史上所有的记忆,包含所有与该User相关的Session的记忆。主要存储事实、情景、语义三种记忆类型。

通过User ID检索该User的所有记忆,或结合User IDSession ID检索该User对应的Session记忆。

Agent

主要用于AI Agent的长记忆场景,Agent记忆主要关注程序记忆(例如子任务的执行动作与结果)。业务调用Agent记忆接口时,AnalyticDB for PostgreSQL会使用特定Prompt提取AgentLLM的交互历史记录,形成记忆存储至Vector Store中。

通过Agent ID检索该Agent的所有记忆,或结合Agent IDSession ID检索该SessionAgent记忆。

记忆分类

针对每一条记忆,ADBPGMem会对其具体内容进行自动分类,并在召回时支持按照记忆分类检索。一条记忆支持多个分类标签。

categories

含义

personal_details

静态个人信息:年龄、性别、联系方式、国籍、教育背景等。

family

家庭关系:配偶、子女、父母、亲戚及家庭动态事件。

professional_details

职业信息:职位、公司经历、行业专长、技能、职业成就与目标。

sports

运动兴趣:参与的运动项目、偏好(团队/个人)、训练习惯及成绩。

travel

旅行记录:去过的地方、偏好目的地、出行频率、住宿偏好。

food

饮食偏好:喜欢的菜系、过敏/禁忌、烹饪习惯、餐厅偏好。

music

音乐喜好:流派、喜爱艺人、会玩的乐器、音乐会参与情况。

health

健康状况:体检记录、健身计划、营养方案、身心健康目标。

technology

技术相关:设备偏好、软件熟练度、编程技能、对新技术的关注。

hobbies

兴趣爱好:阅读、艺术、手工、园艺、游戏等及相关社区参与。

fashion

时尚风格:穿着偏好、品牌倾向、购物习惯、配饰选择。

entertainment

娱乐偏好:电影、电视、书籍、流媒体平台、剧院/节日参与。

milestones

人生里程碑:毕业、婚礼、晋升、奖项、重要个人成就。

user_preferences

用户设置偏好:界面主题、语言设置、通知配置、工具自定义等。

misc

杂项:无法归入其他类别的信息、临时备注或特殊记录。

记忆检索

  1. 查询处理

    • 使用LLM从用户的原始查询中提取关键信息。

    • 根据上下文和查询意图生成合适的过滤条件,加速检索的效率和准确度,如分类信息、时间范围。

    • 可配置检索参数:返回记忆条数(TopK)、记忆召回阈值(Threshold),低于该阈值的记忆不召回。

  2. 向量检索

    • 使用优化后的查询进行Embedding,在向量数据库内执行语义搜索。

    • 根据与查询的相关性对结果进行排序。

    • 应用指定的过滤条件(用户、代理、元数据等)。

  3. 结果处理

    • 整合多个搜索条件返回的结果,并按照相关性、重要性、时间等因素进行排序。

    • 返回带有相关性评分的记忆条目。

    • 包含相关的元数据和时间戳,如标签、分类等。

记忆更新

  1. 信息抽取

    • 使用LLM从对话的上下文中提取出相关记忆。

    • 识别出重要的实体(Entity),并抽取各个实体之间的关系(知识图谱)。

  2. 记忆存储

    • 向量数据库存储实际的记忆内容。

    • 图数据存储实体之间的关系。

    • 每一轮对话迭代中,都会自动更新记忆的内容。

ADBPGMem优势

在兼容mem0协议的基础上,ADBPGMem提供了mem0社区版没有的能力:

对比项

ADBPGMem

mem0社区版

记忆增删改查

支持

支持

AI Agent结合(程序性记忆)

支持,优化

不可用

AI Agent生态

对接Hermes、OpenManus、Supabase、SAA

向量引擎

AnalyticDB for PostgreSQL自研向量引擎

需用户自行集成

情景记忆(Episodic Memory)

支持

不支持

记忆遗忘(时间维度)

支持

不支持

异步/同步模式

支持,async_mode可选

仅支持异步

记忆生命周期

支持

不支持

模型

自由选择Embedding、LLM模型

国外模型 + DeepSeek

数据主权

支持中国内地、海外部署,数据不出域。

海外托管

相关API

功能

API

描述

写入记忆

POST /v3/memories/add/

服务从对话中提取事实并写入向量库。默认异步执行(async_mode=true);设为false可同步等待结果返回。

检索记忆

POST /v3/memories/search/

向量语义检索记忆。实体ID必须通过filters对象传入。

获取全部记忆

POST /v3/memories/

获取记忆列表,分页返回。实体ID通过filters对象传入,分页参数page/page_size作为Query Params传入。

获取单条记忆

GET /v1/memories/{memory_id}/

根据ID获取单条记忆详情。

更新记忆

PUT /v1/memories/{memory_id}/

更新指定记忆的内容。请求体支持textmemory字段。

删除记忆

DELETE /v1/memories/{memory_id}/

删除指定记忆。

批量删除

DELETE /v1/memories/

批量删除记忆,可按user_id/agent_id/run_id过滤。此操作不可逆。

历史记录

GET /v1/memories/{memory_id}/history/

获取指定记忆的历史修改记录。返回列表中每项包含old_memory、new_memory、event等字段。

健康检查

GET /v1/ping/

健康检查接口,验证服务可达性与鉴权有效性。

具体调用方式,您可以登录ADBPGMem Dashboard,单击左侧导航栏的API文档查看。

Agent接入

ADBPGMem支持mem0 SDK协议,以Hermes Agent接入为例,只需一行配置即可将ADBPGMem作为长期记忆后端。

Hermes Agent

Hermes的记忆系统采用插件架构(MemoryProvider ABC),官方内置的mem0插件通过mem0ai SDK与记忆后端通信。任何兼容mem0协议的服务,都能直接作为Hermes的记忆后端。

mem0 SDK兼容性

ADBPGMemREST API基础上实现了完整的mem0 SDK /v3/路径兼容:

mem0 SDK调用

内部路径

兼容状态

client.search()

POST /v3/memories/search/

完整兼容

client.add()

POST /v3/memories/add/

完整兼容

client.get_all()

POST /v3/memories/

完整兼容

client.delete()

DELETE /v1/memories/{id}

完整兼容

关键适配点:

  • 路径映射/v3/memories/search/映射至内部语义检索引擎。

  • 参数格式兼容:同时接受user_id顶层传参和filters: {user_id: ...}嵌套传参。

  • 响应格式对齐:返回结构与mem0 Platform API一致({results: [...], total, page, ...})。

无需编写适配器或自制HTTP客户端,mem0生态中的上层应用(Hermes、LangChain、CrewAI等),任何使用MemoryClient(host=...)的框架都能即插即用。

image

Hermes Mem0插件改动

Hermesmem0插件原本只支持官方Mem0 Platform。为接入ADBPGMem,只需为插件增加base_url配置项:

# plugins/memory/mem0/__init__.py  (+9, -1)

# _get_client() 核心改动:
- self._client = MemoryClient(api_key=self._api_key)
+ kwargs = {"api_key": self._api_key}
+ if self._base_url:
+     kwargs["host"] = self._base_url
+ self._client = MemoryClient(**kwargs)

配置~/.hermes/.env

MEM0_API_KEY=sk-your-adbpgmem-token
MEM0_BASE_URL=https://your-adbpgmem-endpoint

启动Hermes后,记忆的自动提取、存储和语义召回全部由ADBPGMem在服务端完成。