Skip to main content

概述

记忆负责管理 AgentScope 中智能体的对话历史和上下文。AgentScope 提供两种类型的记忆:
  • 短期记忆 (Short-term Memory):存储当前会话的对话历史,需要结合 Session 进行持久化和恢复
  • 长期记忆 (Long-term Memory):存储跨会话的用户偏好和知识,依赖外部记忆组件(如 Mem0、ReMe)自动持久化

记忆架构

在 ReActAgent 中,短期记忆与长期记忆协同工作:
分工说明
  • 短期记忆:存储当前会话消息,提供给 LLM 作为上下文,支持推理循环
  • 长期记忆(独立组件):
    • 内部集成 LLM(记忆提取/总结)和向量数据库(存储/检索)
    • 召回:对话开始时,召回相关记忆注入短期记忆
    • 存储:回复用户后,异步存入长期记忆进行提取和持久化

Memory 接口

所有短期记忆实现都扩展 Memory 接口:
Memory 继承自 StateModule,支持状态序列化和反序列化,可结合 SessionManager 实现持久化。

短期记忆 (Short-term Memory)

InMemoryMemory

默认的短期记忆实现,在内存中存储消息。 特点
  • 简单的内存存储
  • 没有上下文管理能力,消息会无限增长
  • 适用于简单短对话场景
使用示例

短期记忆持久化

短期记忆需要结合 SessionManager 实现持久化,以支持重启恢复会话。
完整示例agentscope-examples/documentation/quickstart/src/main/java/io/agentscope/examples/quickstart/SessionExample.java

长期记忆 (Long-term Memory)

LongTermMemory 接口

长期记忆用于存储和召回跨会话的用户偏好和知识:
持久化说明:长期记忆依赖外部记忆组件(如 Mem0、ReMe 服务),数据自动持久化到外部存储,无需手动管理。 LongTermMemoryMode 在 ReActAgent 中配置长期记忆的工作模式:
  • STATIC_CONTROL:静态控制模式,框架自动在推理前召回记忆、回复后记录记忆
  • AGENT_CONTROL:Agent 控制模式,通过工具让 Agent 自主决定何时记录和召回
  • BOTH:同时启用两种模式

Mem0LongTermMemory

基于 Mem0 的长期记忆实现。

背景说明

Mem0 的自建部署和 Platform 提供的 OpenAPI 接口不一致(端点路径和响应格式不同)。Mem0LongTermMemory 内部提供了兼容适配机制,通过 apiType 参数指定 Mem0 部署类型,自动选择正确的 API 端点和响应解析方式。

使用示例

Platform Mem0(默认)
自建 Mem0
配置说明
  • apiType:可选参数,指定 Mem0 部署类型
    • Mem0ApiType.PLATFORM(默认):使用 Platform Mem0 的 API 端点
    • Mem0ApiType.SELF_HOSTED:使用自建 Mem0 的 API 端点
  • apiBaseUrl:Mem0 服务的基地址
    • Platform Mem0:通常为 https://api.mem0.ai
    • 自建 Mem0:通常为 http://localhost:8000 或您的服务器地址
  • apiKey:API 密钥(可选)
    • Platform Mem0:必需
    • 自建 Mem0:取决于您的服务配置,可能不需要
完整示例agentscope-examples/documentation/advanced/src/main/java/io/agentscope/examples/advanced/Mem0Example.java 运行示例

ReMeLongTermMemory

基于 ReMe 的长期记忆实现。 使用示例
完整示例agentscope-examples/documentation/advanced/src/main/java/io/agentscope/examples/advanced/ReMeExample.java 运行示例

BailianLongTermMemory

基于 百炼记忆库 的长期记忆实现。 使用示例
配置说明
  • apiKey:阿里云 DashScope API 密钥(必需)
  • userId:用户 ID(必需)
  • memoryLibraryId:百炼记忆库 ID(可选)
  • projectId:百炼记忆片段规则 ID(可选)
  • profileSchema:百炼用户画像规则 ID(可选)
完整示例agentscope-examples/documentation/advanced/src/main/java/io/agentscope/examples/advanced/BailianMemoryExample.java 运行示例

相关文档