| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- from collections.abc import Callable
- from typing import Any
- from dotenv import load_dotenv
- # Import the Financial Research Agency agents
- from financial_research_agency.PortfolioManager.PortfolioManager import portfolio_manager
- from financial_research_agency.ReportGenerator.ReportGenerator import report_generator
- from financial_research_agency.RiskAnalyst.RiskAnalyst import risk_analyst
- from agency_swarm import Agency
- load_dotenv()
- def create_agency(
- load_threads_callback: Callable[[], list[dict[str, Any]]] | None = None,
- save_threads_callback: Callable[[list[dict[str, Any]]], None] | None = None,
- ) -> Agency:
- agency = Agency(
- portfolio_manager,
- report_generator,
- risk_analyst,
- communication_flows=[
- (portfolio_manager, risk_analyst),
- (risk_analyst, report_generator),
- ],
- shared_instructions="financial_research_agency/agency_manifesto.md",
- load_threads_callback=load_threads_callback,
- save_threads_callback=save_threads_callback,
- )
- return agency
- if __name__ == "__main__":
- agency = create_agency()
- # test 1 message (optional)
- # async def main():
- # response = await agency.get_response(
- # "Search for machine learning tutorials and find detailed information about "
- # "neural networks"
- # )
- # print(response)
- # asyncio.run(main())
- # run in terminal
- agency.tui()
|