better:优化工作记忆

This commit is contained in:
SengokuCola
2025-06-02 23:05:15 +08:00
parent 5e47efe987
commit 258512e11f
5 changed files with 34 additions and 90 deletions

View File

@@ -45,7 +45,6 @@ def init_prompt():
"selected_memory_ids": ["id1", "id2", ...],
"new_memory": "true" or "false",
"merge_memory": [["id1", "id2"], ["id3", "id4"],...]
}}
```
"""
@@ -104,11 +103,10 @@ class WorkingMemoryProcessor(BaseProcessor):
all_memory = working_memory.get_all_memories()
memory_prompts = []
for memory in all_memory:
# memory_content = memory.data
memory_summary = memory.summary
memory_id = memory.id
memory_brief = memory_summary.get("brief")
memory_keypoints = memory_summary.get("key_points", [])
memory_points = memory_summary.get("points", [])
memory_single_prompt = f"记忆id:{memory_id},记忆摘要:{memory_brief}\n"
memory_prompts.append(memory_single_prompt)
@@ -122,11 +120,11 @@ class WorkingMemoryProcessor(BaseProcessor):
memory_str=memory_choose_str,
)
print(f"prompt: {prompt}")
# 调用LLM处理记忆
content = ""
try:
# logger.debug(f"{self.log_prefix} 处理工作记忆的prompt: {prompt}")
content, _ = await self.llm_model.generate_response_async(prompt=prompt)
if not content:
logger.warning(f"{self.log_prefix} LLM返回空结果处理工作记忆失败。")
@@ -159,13 +157,12 @@ class WorkingMemoryProcessor(BaseProcessor):
for memory_id in selected_memory_ids:
memory = await working_memory.retrieve_memory(memory_id)
if memory:
# memory_content = memory.data
memory_summary = memory.summary
memory_id = memory.id
memory_brief = memory_summary.get("brief")
memory_keypoints = memory_summary.get("key_points", [])
for keypoint in memory_keypoints:
memory_str += f"记忆要点:{keypoint}\n"
memory_points = memory_summary.get("points", [])
for point in memory_points:
memory_str += f"记忆要点:{point}\n"
working_memory_info = WorkingMemoryInfo()
if memory_str:
@@ -216,9 +213,7 @@ class WorkingMemoryProcessor(BaseProcessor):
merged_memory = await working_memory.merge_memory(memory_id1, memory_id2)
logger.debug(f"{self.log_prefix} 异步合并记忆成功: {memory_id1}{memory_id2}...")
logger.debug(f"{self.log_prefix} 合并后的记忆梗概: {merged_memory.summary.get('brief')}")
logger.debug(f"{self.log_prefix} 合并后的记忆详情: {merged_memory.summary.get('detailed')}")
logger.debug(f"{self.log_prefix} 合并后的记忆要点: {merged_memory.summary.get('key_points')}")
logger.debug(f"{self.log_prefix} 合并后的记忆事件: {merged_memory.summary.get('events')}")
logger.debug(f"{self.log_prefix} 合并后的记忆要点: {merged_memory.summary.get('points')}")
except Exception as e:
logger.error(f"{self.log_prefix} 异步合并记忆失败: {e}")