% ============================================================================ % UQO Working Paper — Economics / Finance % VQuant: An Agentic LLM Architecture for Quantitative Financial Analysis % ============================================================================ \documentclass[12pt,letterpaper]{article} % --- Encoding & Language --- \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[english]{babel} % --- Page Layout --- \usepackage[ letterpaper, top=1in, bottom=1in, left=1in, right=1in ]{geometry} % --- Typography --- \usepackage{mathptmx} % Times-like font (text + math) \usepackage{microtype} % Improved typographic refinements \usepackage{setspace} \onehalfspacing % 1.5 line spacing % --- Math --- \usepackage{amsmath,amssymb,amsthm} % --- Algorithms --- \usepackage{algorithm} \usepackage{algpseudocode} % --- Code Listings --- \usepackage{listings} \lstset{ basicstyle=\ttfamily\footnotesize, breaklines=true, columns=fullflexible, keepspaces=true, frame=single, rulecolor=\color{black!30}, backgroundcolor=\color{black!3}, showstringspaces=false, captionpos=b } % --- Tables --- \usepackage{booktabs} \usepackage{array} \usepackage{tabularx} \usepackage{multirow} \usepackage{threeparttable} \usepackage{siunitx} \sisetup{ input-symbols = {()}, table-format = -1.3, parse-numbers = false } % --- Figures & Diagrams --- \usepackage{graphicx} \usepackage{subcaption} \usepackage{float} \usepackage{tikz} \usetikzlibrary{arrows.meta,positioning,shapes.geometric,shapes.misc,fit,backgrounds,calc,shadows,decorations.pathreplacing} % --- Colors & Links --- \usepackage[dvipsnames]{xcolor} \usepackage[ colorlinks = true, linkcolor = NavyBlue, citecolor = NavyBlue, urlcolor = NavyBlue, breaklinks = true, pdftitle = {VQuant: An Agentic Large Language Model Architecture for Automated Quantitative Financial Analysis and Document Generation}, pdfauthor = {Simon-Pierre Boucher} ]{hyperref} % --- Bibliography --- \usepackage[authoryear,round,semicolon]{natbib} \bibliographystyle{aer} % --- Captions --- \usepackage[ font = small, labelfont = bf, labelsep = period, justification = justified, singlelinecheck = false ]{caption} % --- Headers & Footers --- \usepackage{fancyhdr} \pagestyle{fancy} \fancyhf{} \renewcommand{\headrulewidth}{0pt} \fancyfoot[C]{\thepage} % --- Section Formatting --- \usepackage{titlesec} \titleformat{\section}{\large\bfseries}{\thesection.}{0.5em}{} \titleformat{\subsection}{\normalsize\bfseries}{\thesubsection.}{0.5em}{} \titleformat{\subsubsection}{\normalsize\itshape}{\thesubsubsection.}{0.5em}{} % --- Appendix Support --- \usepackage[toc,page]{appendix} % --- Misc --- \usepackage{enumitem} \setlist{nosep,leftmargin=*} \usepackage{longtable} % --- Custom colors (VQuant palette) --- \definecolor{VQTeal}{HTML}{119993} \definecolor{VQBlue}{HTML}{2072B2} \definecolor{VQPurple}{HTML}{652E89} \definecolor{VQOrange}{HTML}{F49422} \definecolor{VQGreen}{HTML}{4Fa64B} \definecolor{VQRed}{HTML}{EF632B} \definecolor{VQDark}{HTML}{2B2D42} \definecolor{VQInk}{HTML}{32353F} % --- Font macros used inside diagram node text --- \newcommand{\vqsmall}{\scriptsize} \newcommand{\vqtiny}{\fontsize{6.4}{7.5}\selectfont} % --- Shared TikZ styles for all diagrams --- \tikzset{ vqfont/.style = {font=\footnotesize}, vqsmall/.style = {font=\scriptsize}, vqtiny/.style = {font=\fontsize{6.4}{7.5}\selectfont}, vqbox/.style = {rectangle, rounded corners=3pt, draw=black!45, line width=0.5pt, align=center, inner sep=4.5pt, minimum height=0.78cm, fill=white, drop shadow={shadow xshift=0.6pt, shadow yshift=-0.6pt, opacity=0.18}}, vqteal/.style = {vqbox, draw=VQTeal!75!black, fill=VQTeal!12, text=VQDark}, vqblue/.style = {vqbox, draw=VQBlue!75!black, fill=VQBlue!12, text=VQDark}, vqpurple/.style = {vqbox, draw=VQPurple!75!black, fill=VQPurple!10, text=VQDark}, vqorange/.style = {vqbox, draw=VQOrange!80!black, fill=VQOrange!14, text=VQDark}, vqgreen/.style = {vqbox, draw=VQGreen!75!black, fill=VQGreen!14, text=VQDark}, vqred/.style = {vqbox, draw=VQRed!80!black, fill=VQRed!12, text=VQDark}, vqdecision/.style= {diamond, aspect=1.7, draw=VQOrange!80!black, fill=VQOrange!14, align=center, inner sep=1pt, line width=0.5pt, text=VQDark}, vqarr/.style = {-{Latex[length=2mm,width=1.6mm]}, line width=0.6pt, draw=VQInk!75}, vqdarr/.style = {{Latex[length=2mm,width=1.6mm]}-{Latex[length=2mm,width=1.6mm]}, line width=0.6pt, draw=VQInk!75}, vqflow/.style = {-{Latex[length=2.2mm,width=1.8mm]}, line width=1.1pt, draw=VQTeal!80!black}, vqdash/.style = {-{Latex[length=2mm,width=1.6mm]}, line width=0.55pt, draw=VQInk!60, dashed}, vqband/.style = {rounded corners=5pt, draw=none, line width=0pt}, vqtag/.style = {rectangle, rounded corners=2pt, inner sep=2pt, font=\vqtiny, fill=white, draw=black!25} } % ============================================================================ % METADATA % ============================================================================ \newcommand{\WPnumber}{13} \newcommand{\WPtitle}{VQuant: An Agentic Large Language Model Architecture for Automated Quantitative Financial Analysis and Document Generation} \newcommand{\WPsubtitle}{Reasoning-Augmented Tool Orchestration, In-Loop Numerical Computation, and Multi-Format Reporting} \newcommand{\WPdate}{October 2026} \newcommand{\WPversion}{1.1} \newcommand{\WPabstract}{% Large language models (LLMs) write fluently about finance, but fluency does not make a number correct, current, or reproducible. This paper is a design-science description of \textbf{VQuant}, a deployed web platform that couples a reasoning-capable LLM with a deterministic execution substrate so that a natural-language request (``analyse NVDA's fundamentals and run a Monte Carlo simulation'') is turned into a report in which every figure is produced by live data retrieval or auditable code rather than by the model. We document four mechanisms as they are implemented and audit the description line by line against the platform's source code (vquant.git, commit e2a148a): (i)~an agentic orchestration loop that exposes 245 schema-defined tools---wrapping two market-data providers (249 typed functions over 233 endpoint paths), three web-research services, and a Python sandbox pre-loading 29 scientific packages---through a recursive, batched, streaming tool-calling protocol; (ii)~a three-stage context-management procedure (per-result truncation at execution, a re-send cap, and adaptive summarisation under a token budget) that keeps long sessions within the model's window; (iii)~a single-call computation convention that consolidates data acquisition, estimation, and figure rendering into one sandboxed execution; and (iv)~a document pipeline that renders one Markdown artifact into PDF, DOCX, \LaTeX{} Beamer, and spreadsheets with live formulas. The paper reports no empirical evaluation: it contains no measurements of numerical accuracy, hallucination rates, latency, or cost, and makes no comparative claims. Its contribution is a reproducible specification of the architecture, an honest account of where the implementation departs from its own documentation, and a pre-registered evaluation protocol---benchmark, metrics, ablations, and baselines---that has not yet been executed. } \newcommand{\WPkeywords}{large language models, LLM agents, tool use, design science, quantitative finance, automated report generation, reproducibility} \newcommand{\WPjel}{C45, C63, C88, G17, O33} % --- Author --- \newcommand{\WPauthor}{Simon-Pierre Boucher} \newcommand{\WPaffiliation}{% Département des sciences administratives\\ Université du Québec en Outaouais% } \newcommand{\WPemail}{simon-pierre.boucher@uqo.ca} \newcommand{\WPaddress}{% Gatineau -- Pavillon Alexandre-Taché\\ 283, boulevard Alexandre-Taché\\ Gatineau, Québec, Canada J9A 1L8% } % ============================================================================ % DOCUMENT % ============================================================================ \begin{document} % --- Title Page --- \input{sections/titlepage} % --- Main Body --- \input{sections/introduction} \input{sections/literature} \input{sections/data} \input{sections/methodology} \input{sections/results} \input{sections/robustness} \input{sections/conclusion} % --- References --- \newpage \bibliography{references} % --- Appendix --- \input{appendix/appendix} \end{document}