From 6432f339b4ebde09ed7dd2b5726ef5a0834ba564 Mon Sep 17 00:00:00 2001 From: Gardel Date: Sat, 6 Dec 2025 07:53:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=AE=B0=E5=BF=86=E6=8F=90=E5=8F=96?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9C=AB=E5=B0=BE=E9=80=97=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/memory_graph/short_term_manager.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/memory_graph/short_term_manager.py b/src/memory_graph/short_term_manager.py index 38a4d3d79..f2655c41d 100644 --- a/src/memory_graph/short_term_manager.py +++ b/src/memory_graph/short_term_manager.py @@ -187,8 +187,8 @@ class ShortTermMemoryManager: "importance": 0.7, "attributes": {{ "time": "时间信息", - "attribute1": "其他属性1" - "attribute2": "其他属性2" + "attribute1": "其他属性1", + "attribute2": "其他属性2", ... }} }} @@ -327,7 +327,7 @@ class ShortTermMemoryManager: # 创建决策对象 # 将 LLM 返回的大写操作名转换为小写(适配枚举定义) operation_str = data.get("operation", "CREATE_NEW").lower() - + decision = ShortTermDecision( operation=ShortTermOperation(operation_str), target_memory_id=data.get("target_memory_id"), @@ -597,35 +597,35 @@ class ShortTermMemoryManager: # 1. 正常筛选:重要性达标的记忆 candidates = [mem for mem in self.memories if mem.importance >= self.transfer_importance_threshold] candidate_ids = {mem.id for mem in candidates} - + # 2. 检查低重要性记忆是否积压 # 剩余的都是低重要性记忆 low_importance_memories = [mem for mem in self.memories if mem.id not in candidate_ids] - + # 如果低重要性记忆数量超过了上限(说明积压严重) # 我们需要清理掉一部分,而不是转移它们 if len(low_importance_memories) > self.max_memories: # 目标保留数量(降至上限的 90%) target_keep_count = int(self.max_memories * 0.9) num_to_remove = len(low_importance_memories) - target_keep_count - + if num_to_remove > 0: # 按创建时间排序,删除最早的 low_importance_memories.sort(key=lambda x: x.created_at) to_remove = low_importance_memories[:num_to_remove] - + for mem in to_remove: if mem in self.memories: self.memories.remove(mem) - + logger.info( f"短期记忆清理: 移除了 {len(to_remove)} 条低重要性记忆 " f"(保留 {len(self.memories)} 条)" ) - + # 触发保存 asyncio.create_task(self._save_to_disk()) - + return candidates async def clear_transferred_memories(self, memory_ids: list[str]) -> None: