\section{Results III: agentic markets, herding, credit and the LLM laboratory} \label{sec:results_c} All results in this section are bounded-rationality simulated outcomes (Section~\ref{sec:markets}). The Bayesian mean-variance control is reported first; LLM agents are read against it. \subsection{Common-model herding (H2)} \begin{figure}[htbp] \centering \includegraphics[width=\textwidth]{figC_herding.pdf} \caption{Model C, Bayesian control: average pairwise correlation of order flow across agents after residualising on public information, by market design, delegation share and number of independent models (20 seeds, common random numbers, bootstrap 95\% bands). Source: \texttt{scripts/30\_model\_c.py}.} \label{fig:C_herding} \end{figure} Figure~\ref{fig:C_herding} and Table~\ref{tab:c_factorial} test H2 in its pre-registered form. In the Walrasian call the order-flow correlation conditional on public information rises from \numofcwalrasianzero\ with private signals to \numofcwalrasianoneone\ when everyone acts on one model, and falls to \numofcwalrasianonefour\ with four models and \numofcwalrasianoneeight\ with eight; the bootstrap bands do not overlap. The within-delegator correlation is close to one with a single model in the call market and declines with $M$ roughly as the theory's $1/M$ loading predicts (the residual correlation at large $M$ is the common response to public dividends that the residualisation does not fully remove). The continuous double auction and bilateral bargaining show the same pattern with lower levels (\numofccdaoneone\ and 0.86 at $D=1$, $M=1$): sequential execution and random matching break up some of the correlation that a call market preserves. H2's falsification condition is not met in any design. \input{tables/model_c_factorial} \subsection{Volume, volatility and the disagreement channel} \begin{figure}[htbp] \centering \includegraphics[width=\textwidth]{figC_volatility_volume.pdf} \caption{Model C, continuous double auction, Bayesian control: (a) return volatility and (b) trades per period as a function of the delegation share and the number of models. Source: \texttt{scripts/30\_model\_c.py}.} \label{fig:C_volvol} \end{figure} The competing explanation anticipated in the novelty audit is visible in Figure~\ref{fig:C_volvol}: with one shared model, trading volume falls from \numtradescdazero\ to \numtradescdaoneone\ trades per period in the double auction (from \numtradeswalrasianzero\ to \numtradeswalrasianoneone\ in the call market, close to the no-trade theorem) and unconditional volatility does not rise. Homogenisation removes the disagreement that generates trade. Under leverage this has a benign side: with a borrowing cap of half of equity, defaults and forced sales are \emph{highest} with private signals and fall as $D$ rises (Table~\ref{tab:c_factorial} notes; Figure~\ref{fig:C_designs}), because fewer trades mean less leverage taken. The shared model makes the market quieter and more correlated at the same time. Fragility therefore has to be looked for conditional on a shock, which is the point of the stress test. \subsection{Collateral amplification under a false shared signal (H4, H5)} \begin{figure}[htbp] \centering \includegraphics[width=\textwidth]{figC_stress.pdf} \caption{Stress test: all agents delegate, a $-10$ s.d.\ common model error arrives at mid-sample, dividends are persistent ($\rho_d=0.95$) and the liquidity ladder is thin. (a) Cumulative return over the shock window (bootstrap 95\% intervals, 20 seeds); (b) forced sales. ``Levered'' agents have borrowed 95\% of their margin capacity before the shock. Source: \texttt{scripts/30\_model\_c.py}.} \label{fig:C_stress} \end{figure} Table~\ref{tab:c_stress} and Figure~\ref{fig:C_stress} report the stress test. In the Walrasian call with a single model, the false signal moves the price by \numstressRetWunlevOne\% over the shock window when agents are unlevered; when agents start at 95\% of their margin capacity with a 20\% margin, forced sales of \numstressForcedWlevTwenty\ shares push the cumulative return to \numstressRetWlevTwenty\%, an amplification factor of \numstressAmp. A 50\% margin (Regulation T) cuts the amplification to \numstressAmpFifty\ (return \numstressRetWlevFifty\%), which is H5's leverage-limit prediction. With four independent models the same shock---applied to every model, so that only the pre-shock heterogeneity differs---produces \numstressRetWlevTwentyMfour\% and no forced sales: the diversity of models had already diluted the correlated positions that the spiral needs. A three-period persistent error deepens the spiral (\numstressRetWlevTwentyPersist\%). The double auction behaves differently. The price trough is similar (\numstressTroughCunlevOne\% unlevered, \numstressTroughClevTwenty\% levered) but the cumulative return over the window is near zero and forced sales are small: sequential execution against the ladder lets the price recover within the period once the sellers are done, so the marked price at the next margin check is not low enough to trigger a cascade. H4 is therefore supported in the call-market design, where one clearing price per period carries the full weight of correlated orders, and not in the continuous design under our rules. We regard this design dependence as a substantive finding: whether model noise is amplified by collateral depends on how execution translates correlated orders into a marked price, which is exactly the distinction between equilibrium prices and execution prices that the pre-registration insisted on. \input{tables/model_c_stress} \subsection{LLM agents} \input{tables/llm_lab} \begin{figure}[htbp] \centering \includegraphics[width=\textwidth]{figL_llm_lab.pdf} \caption{LLM laboratory (CDA, temperature 0): (a) order-flow correlation conditional on public information and (b) trades per period, by policy family and signal structure. Source: \texttt{scripts/35\_llm\_lab.py}.} \label{fig:L_lab} \end{figure} Table~\ref{tab:llm} and Figure~\ref{fig:L_lab} report the live-inference cells (eight agents, 24 periods, three seeds per cell; \numllmCalls\ calls, \numllmTokens\ tokens, zero marginal cost on local hardware). With eight agents the Bayesian control itself gives a conditional order-flow correlation of \numllmbayeszero\ with private signals, \numllmbayesoneone\ with one shared model and \numllmbayesonethree\ with three; the rule-based surrogate behind the LLM interface gives \numllmsurrzero, \numllmsurroneone\ and \numllmsurronethree, so the interface itself does not create or destroy correlation. Four findings follow, all read against these controls. First, \emph{language-model agents herd much less than Bayesian agents given the same shared signal}. Qwen2.5-7B agents acting on one common signal reach a correlation of \numllmsharedoneone\ (s.d.\ across seeds \numllmsharedoneonesd), against \numllmbayesoneone\ for the control and \numllmsurroneone\ for the surrogate; with private signals they are indistinguishable from the control (\numllmsharedzero\ versus \numllmbayeszero). Three heterogeneous models are lower still (\numllmdiverseoneone\ with one signal, \numllmdiverseonethree\ with three). The model adds idiosyncratic ``interpretation noise'' to a common signal---different quantities, limit prices and rationales for the same observation---and that noise restores part of the law of large numbers that the shared signal removed. This is the laboratory counterpart of the finding of \citet{hansen2025financial} that LLM agents herd less than one might expect, and it is a reminder that the effective number of independent error sources is not the number of models but the number of models \emph{times} the dispersion of their outputs. The ordering between one and three models within the LLM cells is not resolved at three seeds (\numllmsharedonethree\ with three models on one LLM; temperature 0.7 gives \numllmsharedoneonehot). Second, \emph{the correlation that survives is the one that moves prices}. The share of return variance explained by the delegators' common error is \numllmsharedoneonertwo\ for Qwen agents on a shared signal, against \numllmbayesoneonertwo\ for the control: LLM agents trade the common signal more aggressively, through market orders and limit prices far from the current price, so a weaker correlation of flows produces a stronger loading of prices on model noise. Third, \emph{they do not stop trading when signals are identical}: \numllmsharedoneonetrades\ trades per period under one shared model against \numllmbayesoneonetrades\ for the control, whose volume collapses toward the no-trade outcome. Fourth, \emph{the constraints bind}: \numllmsharedoneoneclipped\% of Qwen actions and \numllmdiverseoneoneclipped\% of diverse-model actions were clipped by cash, holdings or margin limits, LLM agents borrow when the control does not (leverage \numllmsharedoneonelev\ versus zero), and schema-invalid actions are concentrated in the smallest model (Llama-3.2-3B writes ``hold'' in the order-type field; \numllmdiverseoneoneinvalid\ invalid actions per diverse run against \numllmsharedoneoneinvalid\ for Qwen). Mistral-7B rejects a system role and is served with the mandate merged into the user turn. Five prompt variants on one model give \numllmvariedoneone\ against \numllmsharedoneone\ with a single prompt and \numllmdiverseoneone\ with three models and one prompt: at this scale prompt diversity and model diversity reduce the correlation by similar amounts, so the effective number of independent error sources is shaped by both. None of this is evidence about human behaviour. It shows that the architecture---which model, how many, how constrained--- shapes the correlation structure of an agentic market, that hard constraints are not optional, and that the policy variable the theory points to, the effective number of independent error sources, must be measured in output space. \begin{figure}[htbp] \centering \includegraphics[width=0.6\textwidth]{figL_cost_frontier.pdf} \caption{Inference cost frontier: wall-clock time per run against invalid actions per run, by policy family (local 4-bit inference on Apple-silicon nodes). Source: \texttt{scripts/35\_llm\_lab.py}.} \label{fig:L_cost} \end{figure}