feat:实现短期内存管理器和统一内存管理器

- 添加了ShortTermMemoryManager来管理短期记忆,包括提取、决策和记忆操作。
- 集成大型语言模型(LLM),用于结构化记忆提取和决策过程。
- 基于重要性阈值,实现了从短期到长期的内存转移逻辑。
- 创建了UnifiedMemoryManager,通过统一接口整合感知记忆、短期记忆和长期记忆的管理。
- 通过法官模型评估来增强记忆提取过程的充分性。
- 增加了自动和手动内存传输功能。
- 包含内存管理操作和决策的全面日志记录。
This commit is contained in:
Windpicker-owo
2025-11-18 11:12:05 +08:00
parent 50acb70131
commit b5cfa41d36
23 changed files with 4157 additions and 842 deletions

View File

@@ -22,6 +22,23 @@ logger = get_logger("context_manager")
# 全局背景任务集合(用于异步初始化等后台任务)
_background_tasks = set()
# 三层记忆系统的延迟导入(避免循环依赖)
_unified_memory_manager = None
def _get_unified_memory_manager():
"""获取统一记忆管理器(延迟导入)"""
global _unified_memory_manager
if _unified_memory_manager is None:
try:
from src.memory_graph.three_tier.manager_singleton import get_unified_memory_manager
_unified_memory_manager = get_unified_memory_manager()
except Exception as e:
logger.warning(f"获取统一记忆管理器失败(可能未启用): {e}")
_unified_memory_manager = False # 标记为禁用,避免重复尝试
return _unified_memory_manager if _unified_memory_manager is not False else None
class SingleStreamContextManager:
"""单流上下文管理器 - 每个实例只管理一个 stream 的上下文"""
@@ -94,6 +111,27 @@ class SingleStreamContextManager:
else:
logger.debug(f"消息添加到StreamContext缓存禁用: {self.stream_id}")
# 三层记忆系统集成:将消息添加到感知记忆层
try:
if global_config.three_tier_memory and global_config.three_tier_memory.enable:
unified_manager = _get_unified_memory_manager()
if unified_manager:
# 构建消息字典
message_dict = {
"message_id": str(message.message_id),
"sender_id": message.user_info.user_id,
"sender_name": message.user_info.user_nickname,
"content": message.processed_plain_text or message.display_message or "",
"timestamp": message.time,
"platform": message.chat_info.platform,
"stream_id": self.stream_id,
}
await unified_manager.add_message(message_dict)
logger.debug(f"消息已添加到三层记忆系统: {message.message_id}")
except Exception as e:
# 记忆系统错误不应影响主流程
logger.error(f"添加消息到三层记忆系统失败: {e}", exc_info=True)
return True
else:
logger.error(f"StreamContext消息添加失败: {self.stream_id}")