From d7252e4fe067bde01c73f802af419ac149bf2c30 Mon Sep 17 00:00:00 2001 From: NickMo Date: Wed, 18 Feb 2026 21:24:42 +0800 Subject: [PATCH] fix(memory): resolve AttributeError in graph and updater - Fix message.content to message.message in MemoryGraphManager - Replace non-existent add_memory_node with add_memory_from_message - Add exc_info to persona error logs for better debugging --- services/memory_graph_manager.py | 4 ++-- services/persona_updater.py | 15 +++++---------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/services/memory_graph_manager.py b/services/memory_graph_manager.py index 8851218..07c528d 100644 --- a/services/memory_graph_manager.py +++ b/services/memory_graph_manager.py @@ -487,7 +487,7 @@ async def add_memory_from_message(self, message: MessageData, group_id: str): # 添加记忆节点 await memory_graph.add_memory_node( concept=concept, - memory=message.content, + memory=message.message, llm_adapter=self.llm_adapter ) @@ -516,7 +516,7 @@ async def _extract_concepts_from_message(self, message: MessageData) -> List[str try: from ..statics.prompts import ENTITY_EXTRACTION_PROMPT - prompt = ENTITY_EXTRACTION_PROMPT.format(text=message.content) + prompt = ENTITY_EXTRACTION_PROMPT.format(text=message.message) response = await self.llm_adapter.generate_response( prompt, diff --git a/services/persona_updater.py b/services/persona_updater.py index 91b58da..6fc0488 100644 --- a/services/persona_updater.py +++ b/services/persona_updater.py @@ -155,7 +155,7 @@ def clone_persona_data(persona_data: Any) -> Dict[str, Any]: return True except Exception as e: - self._logger.error(f"人格更新失败 for group {group_id}: {e}") + self._logger.error(f"人格更新失败 for group {group_id}: {e}", exc_info=True) raise SelfLearningError(f"人格更新失败: {str(e)}") async def record_persona_update_for_review(self, record: PersonaUpdateRecord) -> int: @@ -413,7 +413,7 @@ async def get_current_persona_description(self, group_id: str) -> Optional[str]: return persona.get('prompt', '') return None except Exception as e: - self._logger.error(f"获取当前人格描述失败 for group {group_id}: {e}") + self._logger.error(f"获取当前人格描述失败 for group {group_id}: {e}", exc_info=True) return None async def get_current_persona(self, group_id: str) -> Optional[Dict[str, Any]]: @@ -430,7 +430,7 @@ async def get_current_persona(self, group_id: str) -> Optional[Dict[str, Any]]: return None except Exception as e: - self._logger.error(f"获取当前人格失败 for group {group_id}: {e}") + self._logger.error(f"获取当前人格失败 for group {group_id}: {e}", exc_info=True) return None def _merge_prompts(self, original: str, enhancement: str) -> str: @@ -580,14 +580,9 @@ async def _update_style_based_features_with_maibot(self, current_persona: Person # 2. 更新记忆图谱 if hasattr(self, 'memory_graph_manager') and self.memory_graph_manager: + group_id = current_persona.get('group_id', 'default') if isinstance(current_persona, dict) else 'default' for msg in filtered_messages: - await self.memory_graph_manager.add_memory_node( - memory_id=f"msg_{msg.timestamp}", - content=msg.message, - memory_type="dialogue_style", - tags=['style_learning'], - metadata={'sender': msg.sender_name, 'group_id': msg.group_id} - ) + await self.memory_graph_manager.add_memory_from_message(msg, group_id) self._logger.info(f"向记忆图谱添加了 {len(filtered_messages)} 个风格记忆节点") # 3. 更新知识图谱