diff --git a/src/crewai/agents/agent_builder/base_agent.py b/src/crewai/agents/agent_builder/base_agent.py index 6b5fb06af..13bbbb6f5 100644 --- a/src/crewai/agents/agent_builder/base_agent.py +++ b/src/crewai/agents/agent_builder/base_agent.py @@ -18,6 +18,7 @@ from pydantic_core import PydanticCustomError from crewai.agents.agent_builder.utilities.base_token_process import TokenProcess from crewai.agents.cache.cache_handler import CacheHandler from crewai.agents.tools_handler import ToolsHandler +from crewai.knowledge.knowledge import Knowledge from crewai.knowledge.source.base_knowledge_source import BaseKnowledgeSource from crewai.tools import BaseTool from crewai.tools.base_tool import Tool @@ -131,6 +132,9 @@ class BaseAgent(ABC, BaseModel): max_tokens: Optional[int] = Field( default=None, description="Maximum number of tokens for the agent's execution." ) + knowledge: Optional[Knowledge] = Field( + default=None, description="Knowledge for the agent." + ) knowledge_sources: Optional[List[BaseKnowledgeSource]] = Field( default=None, description="Knowledge sources for the agent.", @@ -266,12 +270,14 @@ class BaseAgent(ABC, BaseModel): "cache_handler", "llm", "knowledge_sources", - "_knowledge", + "knowledge", "formatting_errors", } # Copy llm existing_llm = shallow_copy(self.llm) + copied_knowledge = shallow_copy(self.knowledge) + print("existing_llm", existing_llm) # Properly copy knowledge sources if they exist existing_knowledge_sources = None @@ -301,6 +307,7 @@ class BaseAgent(ABC, BaseModel): llm=existing_llm, tools=self.tools, knowledge_sources=existing_knowledge_sources, + knowledge=copied_knowledge, ) return copied_agent