FinRobot is an AI Agent platform tailored for financial applications, surpassing FinGPTβs single-model approach. It unifies multiple AI technologiesβincluding LLMs, reinforcement learning, and quantitative analyticsβto power investment research automation, algorithmic trading strategies, and risk assessment, delivering a full-stack intelligent solution for the financial industry.
Concept of AI Agent: an AI Agent is an intelligent entity that uses large language models as its brain to perceive its environment, make decisions, and execute actions. Unlike traditional artificial intelligence, AI Agents possess the ability to independently think and utilize tools to progressively achieve given objectives.
Whitepaper on arXiv
Official Academic Page
We are excited to announce the first public release of FinRobot Desktop v0.1.0 β a native desktop equity research cockpit powered by a production-grade multi-agent architecture.
FinRobot Desktop brings AI-native financial research workflows into a macOS application, helping analysts move from market data and company filings to valuation, debate, synthesis, and investment committee-style reports in one traceable workflow.
π Latest Release: FinRobot Desktop v0.1.0
For macOS Apple Silicon users, download:
```text id=β5vbf1pβ FinRobot_0.1.0_aarch64.dmg
Then drag **FinRobot** into the **Applications** folder.
### System Requirement
FinRobot Desktop currently supports **Apple Silicon Macs** β M1, M2, M3, or later. Intel Mac builds are not available in this release.
### Installation Note for macOS
FinRobot Desktop is not yet Apple-notarized. On first launch, macOS may report that the downloaded app is βdamaged.β Run the following command once in Terminal, then open the app normally:
```bash id="yql6j7"
xattr -cr /Applications/FinRobot.app
FinRobot Desktop v0.1.0 introduces a full-stack desktop research system built on PydanticAI + FastAPI + React/Tauri. It combines role-based financial agents, deterministic valuation engines, live data providers, and analyst-style report generation inside a native desktop experience.
Key capabilities include:
FinRobot is a multi-agent equity research platform where a Lead Agent orchestrates specialized research agents through a pipeline-driven execution engine.
The system includes:
This design separates complex financial research into modular agent roles while keeping the full workflow auditable and extensible.
```text id=βwhmuv4β User Research Request β Lead Agent / Orchestrator β Data Agent β Analysis Agent β Modeling Agent β Synthesis Agent β Report Agent β Bull Agent β Bear Agent β Judge Agent β Traceable Investment Research Output
### Deterministic Compute, LLM Narration
A core design principle of FinRobot is the strict separation between **deterministic financial computation** and **LLM-based narration**.
All financial numbers are generated by pure-Python compute operators, not by the language model. The LLM is used for reasoning, synthesis, explanation, and report writing, while valuation outputs such as DCF, DDM, LBO, WACC, comparable-company analysis, and Monte Carlo simulations are calculated through deterministic code paths with full provenance.
In short:
```text id="2l0biq"
Numbers are code-calculated.
Narratives are LLM-assisted.
Every output is provenance-tracked.
| Layer | What It Includes |
|---|---|
| Full-stack system | ~184k lines across Python backend, React/Tauri desktop frontend, Rust shell, and tests |
| Agent runtime | 9 agents: lead orchestrator, 5 role-based pipeline agents, and 3 debate agents |
| Research pipelines | 7 pipelines covering company research, DCF, comps, LBO, DDM, earnings, and IC memo generation |
| Deterministic compute | 30 pure-Python operators and 7 coordinators for valuation, WACC, Monte Carlo, and financial modeling |
| Data infrastructure | 7 providers with failover, including FMP, Finnhub, yfinance, SEC EDGAR, Adanos, NewsAggregator, and FX |
| Product stack | PydanticAI, FastAPI, SQLite, React 19, Vite 6, Zustand, Tauri/Rust, and Recharts |
π https://finrobot.ai/
βΆοΈ Click the image above to watch the demo video, or see the short preview below.
A locally-deployed AI assistant that fetches financial data, runs multi-agent LLM analysis, and generates professional equity research reports.
1. Configure API Keys
cp finrobot_equity/core/config/config.ini.example finrobot_equity/core/config/config.ini
Edit config.ini with your keys:
[API_KEYS]
fmp_api_key = YOUR_FMP_API_KEY # https://financialmodelingprep.com/developer
openai_api_key = YOUR_OPENAI_API_KEY # https://platform.openai.com/account/api-keys
adanos_api_key = YOUR_ADANOS_API_KEY # Optional: enables Retail Sentiment Insights
2. One-Command Deploy (Web Interface)
chmod +x deploy.sh
./deploy.sh start
#if deploy.sh not working then
python3 -m venv venv
source venv/bin/activate
pip install -r requirements-equity.txt
python run_web_app.py
Access at http://127.0.0.1:8001
| Command | Description |
|---|---|
./deploy.sh start |
Start the web app (auto-installs dependencies) |
./deploy.sh stop |
Stop the application |
./deploy.sh restart |
Restart the application |
./deploy.sh status |
Check running status |
3. Or Run via Command Line
# Step 1: Financial analysis
python finrobot_equity/core/src/generate_financial_analysis.py \
--company-ticker NVDA \
--company-name "NVIDIA Corporation" \
--config-file finrobot_equity/core/config/config.ini \
--peer-tickers AMD INTC \
--generate-text-sections
# Step 2: Generate report
python finrobot_equity/core/src/create_equity_report.py \
--company-ticker NVDA \
--company-name "NVIDIA Corporation" \
--analysis-csv output/NVDA/analysis/financial_metrics_and_forecasts.csv \
--ratios-csv output/NVDA/analysis/ratios_raw_data.csv \
--config-file finrobot_equity/core/config/config.ini
Pipeline:
For full documentation, see finrobot_equity/README.md.
https://github.com/user-attachments/assets/93ec0f1e-e28b-4474-a0bf-a79e0c12f0ff
FinRobot Pro is an AI-powered equity research platform that automates professional stock analysis using Large Language Models (LLMs) and AI Agents.
Key Features:
Perception: This module captures and interprets multimodal financial data from market feeds, news, and economic indicators, using sophisticated techniques to structure the data for thorough analysis.
Brain: Acting as the core processing unit, this module perceives data from the Perception module with LLMs and utilizes Financial Chain-of-Thought (CoT) processes to generate structured instructions.
Action: This module executes instructions from the Brain module, applying tools to translate analytical insights into actionable outcomes. Actions include trading, portfolio adjustments, generating reports, or sending alerts, thereby actively influencing the financial environment.
The Smart Scheduler is central to ensuring model diversity and optimizing the integration and selection of the most appropriate LLM for each task.
The main folder finrobot has three subfolders agents, data_source, functional.
FinRobot
βββ finrobot (main folder)
β βββ agents
β βββ agent_library.py
β βββ workflow.py
β βββ data_source
β βββ finnhub_utils.py
β βββ finnlp_utils.py
β βββ fmp_utils.py
β βββ sec_utils.py
β βββ yfinance_utils.py
β βββ functional
β βββ analyzer.py
β βββ charting.py
β βββ coding.py
β βββ quantitative.py
β βββ reportlab.py
β βββ text.py
β βββ toolkits.py
β βββ utils.py
β
βββ configs
βββ experiments
βββ tutorials_beginner (hands-on tutorial)
β βββ agent_fingpt_forecaster.ipynb
β βββ agent_annual_report.ipynb
βββ tutorials_advanced (advanced tutorials for potential finrobot developers)
β βββ agent_trade_strategist.ipynb
β βββ agent_fingpt_forecaster.ipynb
β βββ agent_annual_report.ipynb
β βββ lmm_agent_mplfinance.ipynb
β βββ lmm_agent_opt_smacross.ipynb
βββ setup.py
βββ OAI_CONFIG_LIST_sample
βββ config_api_keys_sample
βββ requirements.txt
βββ README.md
1. (Recommended) Create a new virtual environment
conda create --name finrobot python=3.10
conda activate finrobot
2. download the FinRobot repo use terminal or download it manually
git clone https://github.com/AI4Finance-Foundation/FinRobot.git
cd FinRobot
3. install finrobot & dependencies from source or pypi
get our latest release from pypi
pip install -U finrobot
or install from this repo directly
pip install -e .
4. modify OAI_CONFIG_LIST_sample file
1) rename OAI_CONFIG_LIST_sample to OAI_CONFIG_LIST
2) remove the four lines of comment within the OAI_CONFIG_LIST file
3) add your own openai api-key <your OpenAI API key here>
5. modify config_api_keys_sample file
1) rename config_api_keys_sample to config_api_keys
2) remove the comment within the config_api_keys file
3) add your own finnhub-api "YOUR_FINNHUB_API_KEY"
4) add your own financialmodelingprep and sec-api keys "YOUR_FMP_API_KEY" and "YOUR_SEC_API_KEY" (for financial report generation)
6. start navigating the tutorials or the demos below:
# find these notebooks in tutorials
1) agent_annual_report.ipynb
2) agent_fingpt_forecaster.ipynb
3) agent_trade_strategist.ipynb
4) lmm_agent_mplfinance.ipynb
5) lmm_agent_opt_smacross.ipynb
@article{yang2024finrobot,
title = {FinRobot: An Open-Source AI Agent Platform for Financial Applications using Large Language Models},
author = {Yang, Hongyang and Zhang, Boyu and Wang, Neng and Guo, Cheng and Zhang, Xiaoli and Lin, Likun and Wang, Junlin and Zhou, Tianyu and Guan, Mao and Zhang, Runjia and Wang, Christina Dan},
journal = {arXiv preprint arXiv:2405.14767},
year = {2024},
doi = {10.48550/arXiv.2405.14767},
url = {https://arxiv.org/abs/2405.14767}
}
@inproceedings{
zhou2024finrobot,
title={FinRobot: {AI} Agent for Equity Research and Valuation with Large Language Models},
author={Tianyu Zhou and Pinqiao Wang and Yilin Wu and Hongyang Yang},
booktitle={ICAIF 2024: The 1st Workshop on Large Language Models and Generative AI for Finance},
year={2024}
}
@inproceedings{han2024enhancing,
title={Enhancing Investment Analysis: Optimizing AI-Agent Collaboration in Financial Research},
author={Han, Xuewen and Wang, Neng and Che, Shangkun and Yang, Hongyang and Zhang, Kunpeng and Xu, Sean Xin},
booktitle={ICAIF 2024: Proceedings of the 5th ACM International Conference on AI in Finance},
pages={538--546},
year={2024}
}
Disclaimer: The codes and documents provided herein are released under the Apache-2.0 license. They should not be construed as financial counsel or recommendations for live trading. It is imperative to exercise caution and consult with qualified financial professionals prior to any trading or investment actions.