from crewai import Agent, Crew, Process, Task from crewai.project import CrewBase, agent, crew, task from . import constants @CrewBase class LatestAiDevelopmentCrew: """LatestAiDevelopment crew""" @agent def researcher(self) -> Agent: return Agent( config=self.agents_config["researcher"], verbose=True, tools=[ # SerperDevTool() ], llm=constants.MODEL_NAME_SHORT, ) @agent def reporting_analyst(self) -> Agent: return Agent( config=self.agents_config["reporting_analyst"], verbose=True, llm=constants.MODEL_NAME_SHORT, ) @task def research_task(self) -> Task: return Task( config=self.tasks_config["research_task"], ) @task def reporting_task(self) -> Task: return Task( config=self.tasks_config["reporting_task"], output_file="output/report.md", # This is the file that will be contain the final report. ) @crew def crew(self) -> Crew: """Creates the LatestAiDevelopment crew""" return Crew( agents=self.agents, # Automatically created by the @agent decorator tasks=self.tasks, # Automatically created by the @task decorator process=Process.sequential, verbose=True, )