From 69c5eace2dce70051aa34bdcbcb500c6e459b468 Mon Sep 17 00:00:00 2001
From: Lorenze Jay <63378463+lorenzejay@users.noreply.github.com>
Date: Mon, 24 Nov 2025 16:43:30 -0800
Subject: [PATCH 1/4] Update references from AMP to AOP in documentation
(#3972)
- Changed "AMP" to "AOP" in multiple locations across JSON and MDX files to reflect the correct terminology for the Agent Operations Platform.
- Updated the introduction sections in English, Korean, and Portuguese to ensure consistency in the platform's naming.
---
docs/docs.json | 4 ++--
docs/en/enterprise/introduction.mdx | 2 +-
docs/ko/enterprise/introduction.mdx | 2 +-
docs/pt-BR/enterprise/introduction.mdx | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/docs/docs.json b/docs/docs.json
index b682b395e..32129340e 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -326,7 +326,7 @@
]
},
{
- "tab": "AMP",
+ "tab": "AOP",
"icon": "briefcase",
"groups": [
{
@@ -753,7 +753,7 @@
]
},
{
- "tab": "AMP",
+ "tab": "AOP",
"icon": "briefcase",
"groups": [
{
diff --git a/docs/en/enterprise/introduction.mdx b/docs/en/enterprise/introduction.mdx
index 74c67ca53..4320dd1a6 100644
--- a/docs/en/enterprise/introduction.mdx
+++ b/docs/en/enterprise/introduction.mdx
@@ -7,7 +7,7 @@ mode: "wide"
## Introduction
-CrewAI AOP(Agent Management Platform) provides a platform for deploying, monitoring, and scaling your crews and agents in a production environment.
+CrewAI AOP(Agent Operations Platform) provides a platform for deploying, monitoring, and scaling your crews and agents in a production environment.
diff --git a/docs/ko/enterprise/introduction.mdx b/docs/ko/enterprise/introduction.mdx
index 751a4bc78..bfd95e9f9 100644
--- a/docs/ko/enterprise/introduction.mdx
+++ b/docs/ko/enterprise/introduction.mdx
@@ -7,7 +7,7 @@ mode: "wide"
## 소개
-CrewAI AOP(Agent Management Platform)는 프로덕션 환경에서 crew와 agent를 배포, 모니터링, 확장할 수 있는 플랫폼을 제공합니다.
+CrewAI AOP(Agent Operation Platform)는 프로덕션 환경에서 crew와 agent를 배포, 모니터링, 확장할 수 있는 플랫폼을 제공합니다.
diff --git a/docs/pt-BR/enterprise/introduction.mdx b/docs/pt-BR/enterprise/introduction.mdx
index 1d89b1842..5bbd7f785 100644
--- a/docs/pt-BR/enterprise/introduction.mdx
+++ b/docs/pt-BR/enterprise/introduction.mdx
@@ -7,7 +7,7 @@ mode: "wide"
## Introdução
-CrewAI AOP(Agent Management Platform) fornece uma plataforma para implementar, monitorar e escalar seus crews e agentes em um ambiente de produção.
+CrewAI AOP(Agent Operation Platform) fornece uma plataforma para implementar, monitorar e escalar seus crews e agentes em um ambiente de produção.
From f070595e65c9f0a2a4412c9d169d8a8f83275878 Mon Sep 17 00:00:00 2001
From: Greyson LaLonde
Date: Mon, 24 Nov 2025 20:03:57 -0500
Subject: [PATCH 2/4] fix: ensure custom rag store persist path is set if
passed
Co-authored-by: Lorenze Jay <63378463+lorenzejay@users.noreply.github.com>
---
.../src/crewai/memory/storage/rag_storage.py | 19 +++--
lib/crewai/tests/rag/test_rag_storage_path.py | 82 +++++++++++++++++++
2 files changed, 94 insertions(+), 7 deletions(-)
create mode 100644 lib/crewai/tests/rag/test_rag_storage_path.py
diff --git a/lib/crewai/src/crewai/memory/storage/rag_storage.py b/lib/crewai/src/crewai/memory/storage/rag_storage.py
index 1060350ad..2dabc9bca 100644
--- a/lib/crewai/src/crewai/memory/storage/rag_storage.py
+++ b/lib/crewai/src/crewai/memory/storage/rag_storage.py
@@ -16,6 +16,7 @@ from crewai.utilities.paths import db_storage_path
if TYPE_CHECKING:
+ from crewai.crew import Crew
from crewai.rag.core.base_client import BaseClient
from crewai.rag.core.base_embeddings_provider import BaseEmbeddingsProvider
from crewai.rag.embeddings.types import ProviderSpec
@@ -32,16 +33,16 @@ class RAGStorage(BaseRAGStorage):
self,
type: str,
allow_reset: bool = True,
- embedder_config: ProviderSpec | BaseEmbeddingsProvider | None = None,
- crew: Any = None,
+ embedder_config: ProviderSpec | BaseEmbeddingsProvider[Any] | None = None,
+ crew: Crew | None = None,
path: str | None = None,
) -> None:
super().__init__(type, allow_reset, embedder_config, crew)
- agents = crew.agents if crew else []
- agents = [self._sanitize_role(agent.role) for agent in agents]
- agents = "_".join(agents)
- self.agents = agents
- self.storage_file_name = self._build_storage_file_name(type, agents)
+ crew_agents = crew.agents if crew else []
+ sanitized_roles = [self._sanitize_role(agent.role) for agent in crew_agents]
+ agents_str = "_".join(sanitized_roles)
+ self.agents = agents_str
+ self.storage_file_name = self._build_storage_file_name(type, agents_str)
self.type = type
self._client: BaseClient | None = None
@@ -96,6 +97,10 @@ class RAGStorage(BaseRAGStorage):
ChromaEmbeddingFunctionWrapper, embedding_function
)
)
+
+ if self.path:
+ config.settings.persist_directory = self.path
+
self._client = create_client(config)
def _get_client(self) -> BaseClient:
diff --git a/lib/crewai/tests/rag/test_rag_storage_path.py b/lib/crewai/tests/rag/test_rag_storage_path.py
new file mode 100644
index 000000000..925680094
--- /dev/null
+++ b/lib/crewai/tests/rag/test_rag_storage_path.py
@@ -0,0 +1,82 @@
+"""Tests for RAGStorage custom path functionality."""
+
+from unittest.mock import MagicMock, patch
+
+from crewai.memory.storage.rag_storage import RAGStorage
+
+
+@patch("crewai.memory.storage.rag_storage.create_client")
+@patch("crewai.memory.storage.rag_storage.build_embedder")
+def test_rag_storage_custom_path(
+ mock_build_embedder: MagicMock,
+ mock_create_client: MagicMock,
+) -> None:
+ """Test RAGStorage uses custom path when provided."""
+ mock_build_embedder.return_value = MagicMock(return_value=[[0.1, 0.2, 0.3]])
+ mock_create_client.return_value = MagicMock()
+
+ custom_path = "/custom/memory/path"
+ embedder_config = {"provider": "openai", "config": {"model": "text-embedding-3-small"}}
+
+ RAGStorage(
+ type="short_term",
+ crew=None,
+ path=custom_path,
+ embedder_config=embedder_config,
+ )
+
+ mock_create_client.assert_called_once()
+ config_arg = mock_create_client.call_args[0][0]
+ assert config_arg.settings.persist_directory == custom_path
+
+
+@patch("crewai.memory.storage.rag_storage.create_client")
+@patch("crewai.memory.storage.rag_storage.build_embedder")
+def test_rag_storage_default_path_when_none(
+ mock_build_embedder: MagicMock,
+ mock_create_client: MagicMock,
+) -> None:
+ """Test RAGStorage uses default path when no custom path is provided."""
+ mock_build_embedder.return_value = MagicMock(return_value=[[0.1, 0.2, 0.3]])
+ mock_create_client.return_value = MagicMock()
+
+ embedder_config = {"provider": "openai", "config": {"model": "text-embedding-3-small"}}
+
+ storage = RAGStorage(
+ type="short_term",
+ crew=None,
+ path=None,
+ embedder_config=embedder_config,
+ )
+
+ mock_create_client.assert_called_once()
+ assert storage.path is None
+
+
+@patch("crewai.memory.storage.rag_storage.create_client")
+@patch("crewai.memory.storage.rag_storage.build_embedder")
+def test_rag_storage_custom_path_with_batch_size(
+ mock_build_embedder: MagicMock,
+ mock_create_client: MagicMock,
+) -> None:
+ """Test RAGStorage uses custom path with batch_size in config."""
+ mock_build_embedder.return_value = MagicMock(return_value=[[0.1, 0.2, 0.3]])
+ mock_create_client.return_value = MagicMock()
+
+ custom_path = "/custom/batch/path"
+ embedder_config = {
+ "provider": "openai",
+ "config": {"model": "text-embedding-3-small", "batch_size": 100},
+ }
+
+ RAGStorage(
+ type="long_term",
+ crew=None,
+ path=custom_path,
+ embedder_config=embedder_config,
+ )
+
+ mock_create_client.assert_called_once()
+ config_arg = mock_create_client.call_args[0][0]
+ assert config_arg.settings.persist_directory == custom_path
+ assert config_arg.batch_size == 100
\ No newline at end of file
From 52444ad390703e98f001afba334020e4766f18fb Mon Sep 17 00:00:00 2001
From: Lorenze Jay <63378463+lorenzejay@users.noreply.github.com>
Date: Mon, 24 Nov 2025 17:56:30 -0800
Subject: [PATCH 3/4] feat: bump versions to 1.6.0 (#3974)
* feat: bump versions to 1.6.0
* bump project templates
---
lib/crewai-tools/pyproject.toml | 2 +-
lib/crewai-tools/src/crewai_tools/__init__.py | 2 +-
lib/crewai/pyproject.toml | 2 +-
lib/crewai/src/crewai/__init__.py | 2 +-
lib/crewai/src/crewai/cli/templates/crew/pyproject.toml | 2 +-
lib/crewai/src/crewai/cli/templates/flow/pyproject.toml | 2 +-
lib/devtools/src/crewai_devtools/__init__.py | 2 +-
7 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/lib/crewai-tools/pyproject.toml b/lib/crewai-tools/pyproject.toml
index 2d3ad4730..672b604c2 100644
--- a/lib/crewai-tools/pyproject.toml
+++ b/lib/crewai-tools/pyproject.toml
@@ -12,7 +12,7 @@ dependencies = [
"pytube>=15.0.0",
"requests>=2.32.5",
"docker>=7.1.0",
- "crewai==1.5.0",
+ "crewai==1.6.0",
"lancedb>=0.5.4",
"tiktoken>=0.8.0",
"beautifulsoup4>=4.13.4",
diff --git a/lib/crewai-tools/src/crewai_tools/__init__.py b/lib/crewai-tools/src/crewai_tools/__init__.py
index c14dc160a..d7b819e31 100644
--- a/lib/crewai-tools/src/crewai_tools/__init__.py
+++ b/lib/crewai-tools/src/crewai_tools/__init__.py
@@ -291,4 +291,4 @@ __all__ = [
"ZapierActionTools",
]
-__version__ = "1.5.0"
+__version__ = "1.6.0"
diff --git a/lib/crewai/pyproject.toml b/lib/crewai/pyproject.toml
index 1c9f644ef..00afa1d67 100644
--- a/lib/crewai/pyproject.toml
+++ b/lib/crewai/pyproject.toml
@@ -48,7 +48,7 @@ Repository = "https://github.com/crewAIInc/crewAI"
[project.optional-dependencies]
tools = [
- "crewai-tools==1.5.0",
+ "crewai-tools==1.6.0",
]
embeddings = [
"tiktoken~=0.8.0"
diff --git a/lib/crewai/src/crewai/__init__.py b/lib/crewai/src/crewai/__init__.py
index ebc2ee4c6..f961847fd 100644
--- a/lib/crewai/src/crewai/__init__.py
+++ b/lib/crewai/src/crewai/__init__.py
@@ -40,7 +40,7 @@ def _suppress_pydantic_deprecation_warnings() -> None:
_suppress_pydantic_deprecation_warnings()
-__version__ = "1.5.0"
+__version__ = "1.6.0"
_telemetry_submitted = False
diff --git a/lib/crewai/src/crewai/cli/templates/crew/pyproject.toml b/lib/crewai/src/crewai/cli/templates/crew/pyproject.toml
index c69821aad..5e2b10f88 100644
--- a/lib/crewai/src/crewai/cli/templates/crew/pyproject.toml
+++ b/lib/crewai/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]==1.5.0"
+ "crewai[tools]==1.6.0"
]
[project.scripts]
diff --git a/lib/crewai/src/crewai/cli/templates/flow/pyproject.toml b/lib/crewai/src/crewai/cli/templates/flow/pyproject.toml
index 1d76e3cae..cb4607ddf 100644
--- a/lib/crewai/src/crewai/cli/templates/flow/pyproject.toml
+++ b/lib/crewai/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]==1.5.0"
+ "crewai[tools]==1.6.0"
]
[project.scripts]
diff --git a/lib/devtools/src/crewai_devtools/__init__.py b/lib/devtools/src/crewai_devtools/__init__.py
index 18356f406..b25505c49 100644
--- a/lib/devtools/src/crewai_devtools/__init__.py
+++ b/lib/devtools/src/crewai_devtools/__init__.py
@@ -1,3 +1,3 @@
"""CrewAI development tools."""
-__version__ = "1.5.0"
+__version__ = "1.6.0"
From 5239dc98597db50e5840c00971f25af6ca51f252 Mon Sep 17 00:00:00 2001
From: Heitor Carvalho
Date: Wed, 26 Nov 2025 20:43:44 -0300
Subject: [PATCH 4/4] fix: erase 'oauth2_extra' setting on 'crewai config
reset' command
---
lib/crewai/src/crewai/cli/config.py | 2 ++
lib/crewai/tests/cli/test_config.py | 3 ++-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/crewai/src/crewai/cli/config.py b/lib/crewai/src/crewai/cli/config.py
index aec32bfd4..9f2d203f9 100644
--- a/lib/crewai/src/crewai/cli/config.py
+++ b/lib/crewai/src/crewai/cli/config.py
@@ -73,6 +73,7 @@ CLI_SETTINGS_KEYS = [
"oauth2_audience",
"oauth2_client_id",
"oauth2_domain",
+ "oauth2_extra",
]
# Default values for CLI settings
@@ -82,6 +83,7 @@ DEFAULT_CLI_SETTINGS = {
"oauth2_audience": CREWAI_ENTERPRISE_DEFAULT_OAUTH2_AUDIENCE,
"oauth2_client_id": CREWAI_ENTERPRISE_DEFAULT_OAUTH2_CLIENT_ID,
"oauth2_domain": CREWAI_ENTERPRISE_DEFAULT_OAUTH2_DOMAIN,
+ "oauth2_extra": {},
}
# Readonly settings - cannot be set by the user
diff --git a/lib/crewai/tests/cli/test_config.py b/lib/crewai/tests/cli/test_config.py
index 4db005e78..4dec94ee3 100644
--- a/lib/crewai/tests/cli/test_config.py
+++ b/lib/crewai/tests/cli/test_config.py
@@ -72,7 +72,8 @@ class TestSettings(unittest.TestCase):
@patch("crewai.cli.config.TokenManager")
def test_reset_settings(self, mock_token_manager):
user_settings = {key: f"value_for_{key}" for key in USER_SETTINGS_KEYS}
- cli_settings = {key: f"value_for_{key}" for key in CLI_SETTINGS_KEYS}
+ cli_settings = {key: f"value_for_{key}" for key in CLI_SETTINGS_KEYS if key != "oauth2_extra"}
+ cli_settings["oauth2_extra"] = {"scope": "xxx", "other": "yyy"}
settings = Settings(
config_path=self.config_path, **user_settings, **cli_settings