From e6ec6cc332343838afe1a3663fbc801ad1979ec2 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 23 Jul 2025 12:28:07 -0500 Subject: [PATCH] Fix MongoDBVectorSearchTool serialization and schema (#389) * Fix MongoDBVectorSearchTool serialization * fix base class --- .../tools/mongodb_vector_search_tool/vector_search.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/crewai_tools/tools/mongodb_vector_search_tool/vector_search.py b/src/crewai_tools/tools/mongodb_vector_search_tool/vector_search.py index 3f8af315d..4112aa500 100644 --- a/src/crewai_tools/tools/mongodb_vector_search_tool/vector_search.py +++ b/src/crewai_tools/tools/mongodb_vector_search_tool/vector_search.py @@ -1,4 +1,3 @@ -import json import os from importlib.metadata import version from logging import getLogger @@ -46,7 +45,7 @@ class MongoDBVectorSearchConfig(BaseModel): ) -class MongoDBToolSchema(MongoDBVectorSearchConfig): +class MongoDBToolSchema(BaseModel): """Input for MongoDBTool.""" query: str = Field( @@ -264,6 +263,8 @@ class MongoDBVectorSearchTool(BaseTool): return [str(_id) for _id in result.upserted_ids.values()] def _run(self, query: str) -> str: + from bson import json_util + try: query_config = self.query_config or MongoDBVectorSearchConfig() limit = query_config.limit @@ -306,7 +307,7 @@ class MongoDBVectorSearchTool(BaseTool): # Format for doc in cursor: docs.append(doc) - return json.dumps(docs) + return json_util.dumps(docs) except Exception as e: logger.error(f"Error: {e}") return ""