from crewai import Agent from crewai.tools.browser_tools import BrowserTools from crewai.tools.calculator_tools import CalculatorTools from crewai.tools.gemini_tools import GeminiSearchTools from crewai.tools.sec_tools import SECTools from langchain.tools.yahoo_finance_news import YahooFinanceNewsTool class StockAnalysisAgents(): def financial_analyst(self): return Agent( role='The Best Financial Analyst', goal="""Impress all customers with your financial data and market trends analysis""", backstory="""The most seasoned financial analyst with lots of expertise in stock market analysis and investment strategies that is working for a super important customer.""", verbose=True, tools=[ GeminiSearchTools.gemini_search, BrowserTools.scrape_and_summarize_website, CalculatorTools.calculate, SECTools.search_10q, SECTools.search_10k ] ) def research_analyst(self): return Agent( role='Staff Research Analyst', goal="""Being the best at gather, interpret data and amaze your customer with it""", backstory="""Known as the BEST research analyst, you're skilled in sifting through news, company announcements, and market sentiments. Now you're working on a super important customer""", verbose=True, tools=[ GeminiSearchTools.gemini_search, BrowserTools.scrape_and_summarize_website, YahooFinanceNewsTool(), SECTools.search_10q, SECTools.search_10k ] ) def investment_advisor(self): return Agent( role='Private Investment Advisor', goal="""Impress your customers with full analyses over stocks and completer investment recommendations""", backstory="""You're the most experienced investment advisor and you combine various analytical insights to formulate strategic investment advice. You are now working for a super important customer you need to impress.""", verbose=True, tools=[ GeminiSearchTools.gemini_search, BrowserTools.scrape_and_summarize_website, CalculatorTools.calculate, YahooFinanceNewsTool() ] )