diff --git a/src/crewai/agent.py b/src/crewai/agent.py index 9a2f098ff..6a1a31792 100644 --- a/src/crewai/agent.py +++ b/src/crewai/agent.py @@ -140,7 +140,10 @@ class Agent(BaseAgent): self.embedder = crew_embedder if self.knowledge_sources: - full_pattern = re.compile(r"[^a-zA-Z0-9\u4e00-\u9fa5\-_\r\n]|(\.\.)") + # Unicode ranges for CJK characters: + # \u4e00-\u9fff: Common Chinese characters + # \u3400-\u4dbf: Extended CJK characters + full_pattern = re.compile(r"[^\w\u4e00-\u9fff\u3400-\u4dbf\-_\r\n]|(\.\.)") knowledge_agent_name = f"{re.sub(full_pattern, '_', self.role)}" if isinstance(self.knowledge_sources, list) and all( isinstance(k, BaseKnowledgeSource) for k in self.knowledge_sources diff --git a/tests/test_chinese_support/test_chinese_agent.py b/tests/test_chinese_support/test_chinese_agent.py index 41dabeca8..5928d46dc 100644 --- a/tests/test_chinese_support/test_chinese_agent.py +++ b/tests/test_chinese_support/test_chinese_agent.py @@ -1,10 +1,12 @@ -import pytest import re from unittest.mock import MagicMock, patch +import pytest + from crewai.agent import Agent from crewai.knowledge.source.string_knowledge_source import StringKnowledgeSource + def test_agent_with_chinese_role_name(): """Test that an agent with a Chinese role name works correctly with the updated regex pattern.""" # Create a knowledge source with some content diff --git a/tests/test_chinese_support/test_chinese_agent_name.py b/tests/test_chinese_support/test_chinese_agent_name.py index 6ab035ba0..9194894d7 100644 --- a/tests/test_chinese_support/test_chinese_agent_name.py +++ b/tests/test_chinese_support/test_chinese_agent_name.py @@ -1,9 +1,11 @@ -import pytest import re +import pytest + from crewai.agent import Agent from crewai.knowledge.source.string_knowledge_source import StringKnowledgeSource + def test_agent_with_chinese_role_name(): """Test that an agent with a Chinese role name works correctly.""" # Create a knowledge source with some content