From 4bb260ddadd23814536a27dd9f8c3f9529998652 Mon Sep 17 00:00:00 2001 From: "caozouying.czy" Date: Wed, 25 Feb 2026 12:02:36 +0800 Subject: [PATCH] add safe_metadata in memory_node.py --- reme/core/schema/memory_node.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/reme/core/schema/memory_node.py b/reme/core/schema/memory_node.py index bc1ef672..8889f18f 100644 --- a/reme/core/schema/memory_node.py +++ b/reme/core/schema/memory_node.py @@ -123,6 +123,15 @@ class MemoryNode(BaseModel): Returns: VectorNode: Vector node representation of this memory. """ + safe_metadata: dict[str, str | bool | int | float] = {} + for key, value in self.metadata.items(): + if isinstance(value, (str, bool, int, float)): + safe_metadata[key] = value + elif isinstance(value, (list, tuple, set)): + safe_metadata[key] = ",".join(str(v) for v in value) + else: + safe_metadata[key] = str(value) + # Build base metadata (shared fields) metadata: dict[str, Any] = { "memory_type": self.memory_type.value, @@ -133,7 +142,7 @@ class MemoryNode(BaseModel): "time_modified": self.time_modified, "author": self.author, "score": self.score, - **self.metadata, + **safe_metadata, } if self.when_to_use: