agency_fin.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from collections.abc import Callable
  2. from typing import Any
  3. from dotenv import load_dotenv
  4. # Import the Financial Research Agency agents
  5. from financial_research_agency.PortfolioManager.PortfolioManager import portfolio_manager
  6. from financial_research_agency.ReportGenerator.ReportGenerator import report_generator
  7. from financial_research_agency.RiskAnalyst.RiskAnalyst import risk_analyst
  8. from agency_swarm import Agency
  9. load_dotenv()
  10. def create_agency(
  11. load_threads_callback: Callable[[], list[dict[str, Any]]] | None = None,
  12. save_threads_callback: Callable[[list[dict[str, Any]]], None] | None = None,
  13. ) -> Agency:
  14. agency = Agency(
  15. portfolio_manager,
  16. report_generator,
  17. risk_analyst,
  18. communication_flows=[
  19. (portfolio_manager, risk_analyst),
  20. (risk_analyst, report_generator),
  21. ],
  22. shared_instructions="financial_research_agency/agency_manifesto.md",
  23. load_threads_callback=load_threads_callback,
  24. save_threads_callback=save_threads_callback,
  25. )
  26. return agency
  27. if __name__ == "__main__":
  28. agency = create_agency()
  29. # test 1 message (optional)
  30. # async def main():
  31. # response = await agency.get_response(
  32. # "Search for machine learning tutorials and find detailed information about "
  33. # "neural networks"
  34. # )
  35. # print(response)
  36. # asyncio.run(main())
  37. # run in terminal
  38. agency.tui()