How banerjeearjun/investment-research-agent works
IRA is an investment-research assistant for Indian-listed companies. Users submit a company for sequential research, technical analysis, and fundamental thesis generation; the orchestrator records the result and updates an in-memory watchlist, which users can later query. The web UI also advertises demo/live modes and execution tracing. The graph follows the documented workflow and sampled calls; unsampled UI and agent internals limit certainty about some wiring.
Main entry points: orchestrator.py Orchestrator · app.py Streamlit UI · runner.py CLI · research_agent.py Company research
Components 14
User interfaces
- Streamlit UI
app.py - CLI
src/runner.py
Research workflow
- Orchestrator
src/agents/orchestrator.py - Company research
src/agents/research_agent.py - Technical analysis
src/agents/technical_agent.py - Fundamental thesis
src/agents/analysis_agent.py
Analysis tools
- Price fetcher
src/tools/price_fetcher.py - Technical indicators
src/tools/technical_tools.py - Financial metrics
src/tools/financial_tools.py
Memory and tracing
- Theses and watchlist
src/agents/orchestrator.py - Execution tracing
src/observability.py
Other components
- Investor
- Google Search
- Screener.in
Connections 15
- Investor → Streamlit UI: submits query
- Investor → CLI: enters command
- Streamlit UI → Orchestrator: requests analysis
- CLI → Orchestrator: dispatches command
- Orchestrator → Company research: requests research
- Company research → Google Search: searches web
- Orchestrator → Price fetcher: fetches price
- Price fetcher → Screener.in: requests price
- Orchestrator → Technical analysis: requests analysis
- Technical analysis → Technical indicators: calculates indicators
- Orchestrator → Fundamental thesis: requests thesis
- Fundamental thesis → Financial metrics: calculates metrics
- Orchestrator → Theses and watchlist: stores and recalls
- Orchestrator → Execution tracing: records events
- Streamlit UI → Execution tracing: reads trace