Help me solve the error in crewai
import os
from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool, WebsiteSearchTool
# Set your API keys and other environment variables
os.environ["SERPER_API_KEY"] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
os.environ["OPENAI_API_BASE"] = 'https://api.groq.com/openai/v1'
os.environ["OPENAI_MODEL_NAME"] = 'llama3-70b-8192' # Adjust based on available model
os.environ["OPENAI_API_KEY"] = 'am using groq api'
# Initialize tools
search_tool = SerperDevTool()
website_searcher = WebsiteSearchTool()
# Define your agents with roles and goals
webfinder = Agent(
role="website finder",
goal="Find the top 10 new AI news of the day",
backstory="You are an AI agent who can find the best websites containing AI news",
memory=True,
verbose=True,
allow_delegation=False,
tools=[search_tool]
)
webscraper = Agent(
role="webscraper",
goal="Scrape the websites passed to you",
backstory="You are an AI agent who can scrape websites. You have a decade of experience scraping websites and can extract all the important AI news.",
memory=True,
verbose=True,
allow_delegation=False,
tools=[website_searcher]
)
writer = Agent(
role="Writer",
goal="Write an AI newsletter based on the info provided to you",
backstory="You are an AI agent who can write AI newsletters based on the provided info. Your newsletter should be short, accurate, and comprehensive.",
memory=True,
verbose=True,
allow_delegation=False,
)
manager = Agent(
role="Manager",
goal="Manage the AI newsletter crew by correctly delegating tasks to the appropriate agents",
backstory="You are a manager working for a newsletter creation company. You should correctly delegate tasks to the webfinder, webscraper, and writer agents.",
memory=True,
verbose=True,
allow_delegation=True,
)
# Define tasks
task1 = Task(
description="Find the top 10 websites containing AI news of the day.",
agent=webfinder,
expected_output="websites links to each of the websites containing AI news of the day"
)
task2 = Task(
description="Scrape the websites passed to you.",
agent=webscraper,
expected_output="all the scraped content from the websites passed to you"
)
task3 = Task(
description="Write an AI newsletter based on the info provided to you.",
agent=writer,
expected_output="AI newsletter"
)
# Create the crew and start the process
crew = Crew(
agents=[webfinder, webscraper, writer, manager],
tasks=[task1, task2, task3],
verbose=1,
manager_llm=manager,
process=Process.hierarchical
)
# Run the process
respond = crew.kickoff()
print(respond)
-----error-------
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In[2], line 83
74 crew = Crew(
75 agents=[webfinder, webscraper, writer, manager],
76 tasks=[task1, task2, task3],
(...)
79 process=Process.hierarchical
80 )
82 # Run the process
---> 83 respond = crew.kickoff()
84 print(respond)
File /opt/conda/lib/python3.10/site-packages/crewai/crew.py:266, in Crew.kickoff(self, inputs)
264 result = self._run_sequential_process()
265 elif self.process == Process.hierarchical:
--> 266 result, manager_metrics = self._run_hierarchical_process() # type: ignore # Unpacking a string is disallowed
267 metrics.append(manager_metrics) # type: ignore # Cannot determine type of "manager_metrics"
269 else:
File /opt/conda/lib/python3.10/site-packages/crewai/crew.py:329, in Crew._run_hierarchical_process(self)
327 manager.tools = AgentTools(agents=self.agents).tools()
328 else:
--> 329 manager = Agent(
330 role=i18n.retrieve("hierarchical_manager_agent", "role"),
331 goal=i18n.retrieve("hierarchical_manager_agent", "goal"),
332 backstory=i18n.retrieve("hierarchical_manager_agent", "backstory"),
333 tools=AgentTools(agents=self.agents).tools(),
334 llm=self.manager_llm,
335 verbose=True,
336 )
338 task_output = ""
339 for task in self.tasks:
File /opt/conda/lib/python3.10/site-packages/crewai/agent.py:140, in Agent.__init__(__pydantic_self__, **data)
138 def __init__(__pydantic_self__, **data):
139 config = data.pop("config", {})
--> 140 super().__init__(**config, **data)
[... skipping hidden 1 frame]
File /opt/conda/lib/python3.10/site-packages/crewai/agent.py:187, in Agent.set_agent_executor(self)
185 if not self.cache_handler:
186 self.cache_handler = CacheHandler()
--> 187 self.set_cache_handler(self.cache_handler)
188 return self
File /opt/conda/lib/python3.10/site-packages/crewai/agent.py:259, in Agent.set_cache_handler(self, cache_handler)
257 self.cache_handler = cache_handler
258 self.tools_handler.cache = cache_handler
--> 259 self.create_agent_executor()
File /opt/conda/lib/python3.10/site-packages/crewai/agent.py:330, in Agent.create_agent_executor(self, tools)
325 if self.response_template:
326 stop_words.append(
327 self.response_template.split("{{ .Response }}")[1].strip()
328 )
--> 330 bind = self.llm.bind(stop=stop_words)
331 inner_agent = agent_args | execution_prompt | bind | CrewAgentParser(agent=self)
332 self.agent_executor = CrewAgentExecutor(
333 agent=RunnableAgent(runnable=inner_agent), **executor_args
334 )
File /opt/conda/lib/python3.10/site-packages/pydantic/main.py:811, in BaseModel.__getattr__(self, item)
808 return super().__getattribute__(item) # Raises AttributeError if appropriate
809 else:
810 # this is the current error
--> 811 raise AttributeError(f'{type(self).__name__!r} object has no attribute {item!r}')
AttributeError: 'Agent' object has no attribute 'bind'
0
1 comment
Mohammed Anas
1
Help me solve the error in crewai
AI Developer Accelerator
skool.com/ai-developer-accelerator
Master AI & software development to build apps and unlock new income streams. Transform ideas into profits. 💡➕🤖➕👨‍💻🟰💰
Leaderboard (30-day)
Powered by