From 99133104dd1a3f77a8558aa882243d702893a1ca Mon Sep 17 00:00:00 2001 From: Lorenze Jay <63378463+lorenzejay@users.noreply.github.com> Date: Wed, 11 Jun 2025 17:01:11 -0700 Subject: [PATCH 1/2] Update version to 0.130.0 and dependencies in pyproject.toml and uv.lock (#3002) - Bump CrewAI version from 0.126.0 to 0.130.0 in pyproject.toml and uv.lock. - Update optional dependency 'crewai-tools' version from 0.46.0 to 0.47.1. - Adjust dependency specifications in CLI templates to reflect the new version. --- pyproject.toml | 4 ++-- src/crewai/__init__.py | 2 +- src/crewai/cli/templates/crew/pyproject.toml | 2 +- src/crewai/cli/templates/flow/pyproject.toml | 2 +- src/crewai/cli/templates/tool/pyproject.toml | 2 +- uv.lock | 11 ++++++----- 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 43eb7c99c..810217c5e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "crewai" -version = "0.126.0" +version = "0.130.0" description = "Cutting-edge framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks." readme = "README.md" requires-python = ">=3.10,<3.14" @@ -47,7 +47,7 @@ Documentation = "https://docs.crewai.com" Repository = "https://github.com/crewAIInc/crewAI" [project.optional-dependencies] -tools = ["crewai-tools~=0.46.0"] +tools = ["crewai-tools~=0.47.1"] embeddings = [ "tiktoken~=0.8.0" ] diff --git a/src/crewai/__init__.py b/src/crewai/__init__.py index 1d5279288..dc76c407b 100644 --- a/src/crewai/__init__.py +++ b/src/crewai/__init__.py @@ -18,7 +18,7 @@ warnings.filterwarnings( category=UserWarning, module="pydantic.main", ) -__version__ = "0.126.0" +__version__ = "0.130.0" __all__ = [ "Agent", "Crew", diff --git a/src/crewai/cli/templates/crew/pyproject.toml b/src/crewai/cli/templates/crew/pyproject.toml index 559c2a485..f1d7a03c0 100644 --- a/src/crewai/cli/templates/crew/pyproject.toml +++ b/src/crewai/cli/templates/crew/pyproject.toml @@ -5,7 +5,7 @@ description = "{{name}} using crewAI" authors = [{ name = "Your Name", email = "you@example.com" }] requires-python = ">=3.10,<3.14" dependencies = [ - "crewai[tools]>=0.126.0,<1.0.0" + "crewai[tools]>=0.130.0,<1.0.0" ] [project.scripts] diff --git a/src/crewai/cli/templates/flow/pyproject.toml b/src/crewai/cli/templates/flow/pyproject.toml index 354167661..bc108ae71 100644 --- a/src/crewai/cli/templates/flow/pyproject.toml +++ b/src/crewai/cli/templates/flow/pyproject.toml @@ -5,7 +5,7 @@ description = "{{name}} using crewAI" authors = [{ name = "Your Name", email = "you@example.com" }] requires-python = ">=3.10,<3.14" dependencies = [ - "crewai[tools]>=0.126.0,<1.0.0", + "crewai[tools]>=0.130.0,<1.0.0", ] [project.scripts] diff --git a/src/crewai/cli/templates/tool/pyproject.toml b/src/crewai/cli/templates/tool/pyproject.toml index 4c2a3d17d..401632399 100644 --- a/src/crewai/cli/templates/tool/pyproject.toml +++ b/src/crewai/cli/templates/tool/pyproject.toml @@ -5,7 +5,7 @@ description = "Power up your crews with {{folder_name}}" readme = "README.md" requires-python = ">=3.10,<3.14" dependencies = [ - "crewai[tools]>=0.126.0" + "crewai[tools]>=0.130.0" ] [tool.crewai] diff --git a/uv.lock b/uv.lock index bd4944181..d9cfa4e2d 100644 --- a/uv.lock +++ b/uv.lock @@ -725,7 +725,7 @@ wheels = [ [[package]] name = "crewai" -version = "0.126.0" +version = "0.130.0" source = { editable = "." } dependencies = [ { name = "appdirs" }, @@ -814,7 +814,7 @@ requires-dist = [ { name = "blinker", specifier = ">=1.9.0" }, { name = "chromadb", specifier = ">=0.5.23" }, { name = "click", specifier = ">=8.1.7" }, - { name = "crewai-tools", marker = "extra == 'tools'", specifier = "~=0.46.0" }, + { name = "crewai-tools", marker = "extra == 'tools'", specifier = "~=0.47.1" }, { name = "docling", marker = "extra == 'docling'", specifier = ">=2.12.0" }, { name = "instructor", specifier = ">=1.3.3" }, { name = "json-repair", specifier = ">=0.25.2" }, @@ -866,7 +866,7 @@ dev = [ [[package]] name = "crewai-tools" -version = "0.46.0" +version = "0.47.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "chromadb" }, @@ -880,10 +880,11 @@ dependencies = [ { name = "pyright" }, { name = "pytube" }, { name = "requests" }, + { name = "tiktoken" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0d/9e/69109f5d5b398b2edeccec1055e93cdceac3becd04407bcce97de6557180/crewai_tools-0.46.0.tar.gz", hash = "sha256:c8f89247199d528c77db4b450a1ca781b5d32405982467baf516ede4b2045bd1", size = 913715 } +sdist = { url = "https://files.pythonhosted.org/packages/0e/cd/fc5a96be8c108febcc2c767714e3ec9b70cca9be8e6b29bba7c1874fb6d2/crewai_tools-0.47.1.tar.gz", hash = "sha256:4de5ebf320aeae317ffabe2e4704b98b5d791f663196871fb5ad2e7bbea14a82", size = 921418 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ab/62/0b68637ce820fbb0385495bd6d75ceb27de53f060df5417f293419826481/crewai_tools-0.46.0-py3-none-any.whl", hash = "sha256:f8e60723869ca36ede7b43dcc1491ebefc93410a972d97b7b0ce59c4bd7a826b", size = 606190 }, + { url = "https://files.pythonhosted.org/packages/e3/2c/05d9fa584d9d814c0c8c4c3793df572222417695fe3d716f14bc274376d6/crewai_tools-0.47.1-py3-none-any.whl", hash = "sha256:4dc9bb0a08e3afa33c6b9efb163e47181801a7906be7241977426e6d3dec0a05", size = 606305 }, ] [[package]] From 7f12e98de585273d47d41e62ca8559bff764d198 Mon Sep 17 00:00:00 2001 From: Vidit Ostwal <110953813+Vidit-Ostwal@users.noreply.github.com> Date: Thu, 12 Jun 2025 22:44:34 +0530 Subject: [PATCH 2/2] Added sanitize role feature in mem0 storage (#2988) * Added sanitize role feature in mme0 storage * Used chroma db functionality --- src/crewai/memory/storage/mem0_storage.py | 5 ++++- src/crewai/utilities/chromadb.py | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/crewai/memory/storage/mem0_storage.py b/src/crewai/memory/storage/mem0_storage.py index 5d601ac1f..4fe75e3f5 100644 --- a/src/crewai/memory/storage/mem0_storage.py +++ b/src/crewai/memory/storage/mem0_storage.py @@ -4,6 +4,9 @@ from typing import Any, Dict, List from mem0 import Memory, MemoryClient from crewai.memory.storage.interface import Storage +from crewai.utilities.chromadb import sanitize_collection_name + +MAX_AGENT_ID_LENGTH_MEM0 = 255 class Mem0Storage(Storage): @@ -134,7 +137,7 @@ class Mem0Storage(Storage): agents = self.crew.agents agents = [self._sanitize_role(agent.role) for agent in agents] agents = "_".join(agents) - return agents + return sanitize_collection_name(name=agents,max_collection_length=MAX_AGENT_ID_LENGTH_MEM0) def _get_config(self) -> Dict[str, Any]: return self.config or getattr(self, "memory_config", {}).get("config", {}) or {} diff --git a/src/crewai/utilities/chromadb.py b/src/crewai/utilities/chromadb.py index d993a5896..4e7a7b1f4 100644 --- a/src/crewai/utilities/chromadb.py +++ b/src/crewai/utilities/chromadb.py @@ -23,7 +23,7 @@ def is_ipv4_pattern(name: str) -> bool: return bool(IPV4_PATTERN.match(name)) -def sanitize_collection_name(name: Optional[str]) -> str: +def sanitize_collection_name(name: Optional[str], max_collection_length: int = MAX_COLLECTION_LENGTH) -> str: """ Sanitize a collection name to meet ChromaDB requirements: 1. 3-63 characters long @@ -54,8 +54,8 @@ def sanitize_collection_name(name: Optional[str]) -> str: if len(sanitized) < MIN_COLLECTION_LENGTH: sanitized = sanitized + "x" * (MIN_COLLECTION_LENGTH - len(sanitized)) - if len(sanitized) > MAX_COLLECTION_LENGTH: - sanitized = sanitized[:MAX_COLLECTION_LENGTH] + if len(sanitized) > max_collection_length: + sanitized = sanitized[:max_collection_length] if not sanitized[-1].isalnum(): sanitized = sanitized[:-1] + "z"