Una società di trading di agenti LLM: 117.000 stelle e un avviso

TradingAgents ha circa 117.700 stelle su GitHub e ne ha guadagnate quasi 4.900 questa settimana, il che lo rende uno dei repository più popolari nella categoria «agenti che fanno lavoro vero». È un framework multi-agente di Tauric Research che simula una società di trading: analisti, ricercatori, un trader, un team di risk management e un gestore di portafoglio, tutti guidati da modelli linguistici, che litigano tra loro finché qualcosa non viene approvato.
Il repository è prudente su ciò che dichiara. La descrizione ufficiale dice che è progettato per scopi di ricerca e aggiunge che le prestazioni variano in base al modello di base scelto, alla temperatura, al periodo di negoziazione, alla qualità dei dati e alil puro non determinismo. Quella frase fa molto lavoro, ed è la cosa più importante del README.
L'organigramma è l'architettura
La cosa interessante non è che un LLM sappia scegliere azioni. Molti prompt lo fanno male. La cosa interessante è che la pipeline è strutturata come un'azienda reale, con separazione dei compiti e una fase di dibattito.
Quattro analisti lavorano in parallelo e in modo indipendente: fondamentali (bilanci, valore intrinseco, segnali di rischio), sentiment (titoli di giornale, StockTwits, Reddit), notizie (eventi globali e macro) e tecnico (MACD, RSI, riconoscimento di pattern). Nessuno vede l'output degli altri. Tutti e quattro i report devono essere pronti prima che parta qualsiasi altra cosa.
Poi un team di ricerca di due persone — un toro e un orso — discute quei report in round strutturati. Quindi un trader sintetizza il materiale di analisti e ricercatori in una decisione con timing e size. Poi il team di rischio valuta volatilità, liquidità ed esposizione, e consegna una valutazione a un gestore di portafoglio che approva o respinge. Le operazioni approvate vanno su un mercato simulato.
Se avete lavorato in un fondo, la forma vi sarà familiare, inclusa la parte in cui il team di rischio ha potere di veto e il gestore di portafoglio ha l'ultima parola. Non è decorazione. Le società di trading si organizzano così perché un decisore unico con una sola visione del mondo commette errori correlati. La struttura è un meccanismo di correzione dell'errore, e il framework copia il meccanismo, non i nomi dei ruoli.

Farlo girare
Python 3.11 o superiore. Il README suggerisce conda o uv:
git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
pip install .
Poi copiate il file di ambiente e aggiungete le chiavi:
cp .env.example .env
E lanciate la CLI interattiva:
tradingagents
C'è anche la via Docker, quella che userei io se volete risultati riproducibili:
docker compose run --rm tradingagents
Per esecuzioni programmate esiste una modalità non interattiva con selezione esplicita del modello:
export TRADINGAGENTS_LLM_PROVIDER=openai \
TRADINGAGENTS_QUICK_THINK_LLM=gpt-6-luna \
TRADINGAGENTS_DEEP_THINK_LLM=gpt-6-sol
tradingagents --ticker NVDA --date 2026-09-23 \
--analysts market,news,fundamentals --save --no-show
Questa divisione in due modelli merita attenzione. Il «quick think» gestisce i turni meccanici, il «deep think» si occupa dell'analisi. È una decisione di controllo dei costi travestita da opzione di configurazione, e implica che gli autori sappiano che un'esecuzione multi-agente completa su un modello grande costa cara per ogni ticker.
Il problema dei numeri
Qui è dove dissentirei dal modo in cui questo repository viene di solito commentato.
Un sistema di trading multi-agente che produce una decisione per ticker al giorno genera pochissimi punti dati all'anno. Su 30 ticker per 12 mesi si ottengono 7.560 decisioni: sembrano molte, finché non si ricorda che provengono tutte dagli stessi 12 mesi di condizioni di mercato. La dimensione effettiva del campione è più vicina a un singolo regime che a 7.560 osservazioni indipendenti.
Aggiungete il non determinismo di cui avverte il README. Temperatura, versione del modello, latenza degli strumenti e ordine di arrivo delle notizie recuperate spostano l'output. Due esecuzioni nella stessa data e sullo stesso ticker possono divergere nella fase di dibattito tra ricercatori e finire con posizioni diverse. Questo rende un backtest convenzionale quasi impossibile da replicare, e la replicazione è l'unica cosa che trasforma un risultato in evidenza.
Niente di tutto ciò è un attacco al framework. È un attacco al genere di articoli «il mio agente ha battuto l'S&P» che seguono ogni release come questa. Gli autori stessi lo pubblicano come paper su arXiv (2412.20138) con un'impostazione di ricerca, e il repository dice «scopi di ricerca» nella prima frase. Il divario tra quella frase e il modo in cui lo strumento viene condiviso è il punto in cui la gente perde soldi.
Cosa compra davvero il livello di dibattito
Ho letto parecchie trascrizioni di dibattiti tra agenti, e c'è uno schema ricorrente: il dibattito cambia la conclusione meno spesso di quanto cambi la fiducia.
Resta comunque utile. Un toro e un orso che si scontrano sugli stessi report degli analisti fanno emergere l'assunzione specifica da cui dipende l'operazione — «funziona se l'espansione dei margini continua» — e quella è esattamente la frase che un analista umano dovrebbe leggere comunque. L'output non è un segnale. È un'affermazione strutturata su ciò che deve essere vero.
C'è anche un rischio reale nella direzione opposta: le trascrizioni dei dibattiti sono persuasive. Una tesi ribassista ben scritta si legge come intuizione anche quando poggia su un dato di utile allucinato. Il framework attenua il problema isolando gli analisti tra loro e dando potere di veto al team di rischio, ma nulla nella pipeline verifica che il numero citato esista. Se lo mettete in produzione, il livello di verifica tocca a voi, e dovrebbe essere un cancello rigido, non l'opinione di un altro agente.
Come dovrebbe apparire un risultato serio
Se qualcuno vuole convincermi che un'architettura multi-agente così ha un vantaggio, questa è l'asticella minima, ed è più alta di qualsiasi demo abbia visto.
Congelate tutto. Versioni dei modelli, temperatura, template dei prompt, data dello snapshot dei dati, corpus di retrieval. Un risultato prodotto su dati live in un martedì specifico è un aneddoto, non una misura.
Confrontate con il benchmark giusto. Non «ha guadagnato», ma «ha battuto una strategia ingenua con la stessa esposizione». Un sistema solo long in un mercato in salita batte la liquidità per definizione, e una quantità sorprendente di contenuti sul trading con agenti è esattamente questo, con qualche passaggio in più.
Rendicontate il costo. Un'esecuzione completa con quattro analisti e più round di dibattito consuma token veri per ticker al giorno. Se la strategia rende il 12 per cento l'anno e la bolletta dei modelli è il 3 per cento del portafoglio, il livello di dibattito deve valere un quarto dell'alpha prima di meritarsi il suo posto.
E pubblicate le esecuzioni perdenti. Il repository di sicurezza di Cloudflare è credibile perché dice ad alta voce che una singola passata trova la metà di ciò che trovano le passate ripetute. L'equivalente qui sarebbe pubblicare i ticker in cui il ricercatore ribassista aveva ragione e il gestore di portafoglio l'ha scavalcato. Nessuno lo fa ancora, in nessun repository.
Chi dovrebbe davvero clonarlo
Tre usi legittimi, e nessuno è «gestisci i miei soldi».
Come impalcatura per la ricerca sul coordinamento multi-agente è davvero buono: separazione dei ruoli pulita, un protocollo di dibattito, un meccanismo di veto e un paper che descrive il design. Se state studiando se il disaccordo strutturato migliora il ragionamento degli LLM, questo è un banco di prova funzionante di cui non dovete costruire l'interfaccia.
Come strumento didattico per chi impara come un desk scompone una decisione, è meglio di uno schema da manuale, perché si vedono i report scorrere e si vede dove si propaga un input sbagliato.
Come pre-mortem personale, con limiti severi: lanciatelo su una posizione che già detenete, leggete la tesi ribassista e trattate l'output come una checklist di cose da verificare. Il valore è nelle domande, non nel campo BUY/SELL. E tenetelo sul mercato simulato, dove gira per impostazione predefinita e dove dovrebbe restare.
Le 117.000 stelle sono un segnale di domanda, non di prestazione. La gente vuole un sistema che legga le notizie al posto suo e le dica cosa fare. Questo framework offre qualcosa di più onesto e meno soddisfacente: una stanza piena di colleghi in disaccordo, e una decisione che dipende ancora dal fatto che i dati fossero giusti.
Articoli correlati
FLUX 3 Klein promette 8 GB di VRAM. Le dimensioni dei file dicono altro
Il modello a pesi aperti da 5.6 miliardi di parametri di Black Forest Labs promette di girare con 8 GB. Sommando i file dei componenti esce un altro numero, e quello scarto spiega il settore.
225,000 stelle per un Markdown: Karpathy in quattro regole
Niente codice, niente build, niente benchmark: quattro principi in un CLAUDE.md hanno attirato più attenzione della maggior parte delle release dell'anno.
Cloudflare apre il suo auditor: la chiave è il contraddittorio
Sei fasi, tre verdetti e una regola che conta: l’agente che controlla un risultato non è mai quello che lo ha trovato. Cloudflare ammette anche che una sola esecuzione ne trova circa la metà.
Impeccable: 62 regole deterministiche contro lo slop dell'IA
Inter dappertutto, gradienti viola, card dentro le card: 24 comandi e 62 regole deterministiche fermano lo slop in CI senza spendere un token.