diff --git a/agent/mem0_middleware.py b/agent/mem0_middleware.py index 4cf8d10..f84da01 100644 --- a/agent/mem0_middleware.py +++ b/agent/mem0_middleware.py @@ -356,7 +356,18 @@ class Mem0Middleware(AgentMiddleware): # 获取当前系统提示词 current_system_prompt = "" if request.system_message: - current_system_prompt = request.system_message.content if hasattr(request.system_message, "content") else str(request.system_message) + content = request.system_message.content if hasattr(request.system_message, "content") else str(request.system_message) + # content 可能是 list 或 str,确保转换为 str + if isinstance(content, list): + current_system_prompt = "\n".join(str(item) for item in content) + else: + current_system_prompt = str(content) if content else "" + + # 确保 memory_prompt 也是字符串 + if isinstance(memory_prompt, list): + memory_prompt = "\n".join(str(item) for item in memory_prompt) + else: + memory_prompt = str(memory_prompt) if memory_prompt else "" # 修改系统提示词 new_system_prompt = current_system_prompt + memory_prompt @@ -384,7 +395,18 @@ class Mem0Middleware(AgentMiddleware): # 获取当前系统提示词 current_system_prompt = "" if request.system_message: - current_system_prompt = request.system_message.content if hasattr(request.system_message, "content") else str(request.system_message) + content = request.system_message.content if hasattr(request.system_message, "content") else str(request.system_message) + # content 可能是 list 或 str,确保转换为 str + if isinstance(content, list): + current_system_prompt = "\n".join(str(item) for item in content) + else: + current_system_prompt = str(content) if content else "" + + # 确保 memory_prompt 也是字符串 + if isinstance(memory_prompt, list): + memory_prompt = "\n".join(str(item) for item in memory_prompt) + else: + memory_prompt = str(memory_prompt) if memory_prompt else "" # 修改系统提示词 new_system_prompt = current_system_prompt + memory_prompt