Skip to main content
La direzione per cui si costruisce è quella in cui una persona è rappresentata da più agent, ciascuno che agisce su una parte di ciò che quella persona vuole. Non una persona con uno strumento, e non un bot che esegue uno script fisso: più controparti verso il mercato, tutte responsabili verso un solo conto. Quando cambiano i partecipanti, cambia con loro la microstruttura del mercato. Le dimensioni degli ordini calano, i tassi di messaggi salgono, il rapporto fra annullamenti ed esecuzioni si allarga ancora, e il flusso acquista una correlazione che il flusso umano non ha: agent che leggono lo stesso segnale arrivano alla stessa conclusione nello stesso istante. Niente di tutto ciò si risolve aggiungendo una funzionalità. Si risolve attraversando l’architettura un livello alla volta e chiedendo che cosa ciascuno debba fare diversamente. Questa pagina è quel passaggio, in ordine, con il punto in cui ciascun livello si trova davvero.
1 · Applicazione
2 · Rete
3 · Esecuzione
4 · Stato
Il runtime sta fuori dal protocolloe non detiene alcun privilegio: nessuna latenza inferiore, nessun dato in anticipo, nessuna interfaccia che una terza parte non possa raggiungere
L’ammissione, quando i mittenti sono agentun annullamento in ritardo è peggio di un ordine in ritardo, e l’equità è tracciata sulla storia recente anziché per singolo messaggio
L’autorizzazione è una transazionecon un’altezza di blocco, dentro l’insieme di istruzioni chiuso: e revocarla annulla gli ordini in book dell’agent nello stesso blocco
Un ambiente riproducibile, versionato per bloccopoint-in-time per costruzione anziché per disciplina
Gli stessi quattro livelli della panoramica dell’architettura. Cambia solo la domanda: che cosa deve fare ciascuno quando il partecipante non è una persona?

1 · Applicazione — il runtime sta fuori, e deve starci

Il runtime dell’agent è un framework di ricerca ed esecuzione: si forma una view, la trasforma in qualcosa di eseguibile e la porta davanti alla sede. Gira sul livello applicativo, allo stesso piano di front end e client API, e non fa parte del protocollo. Questa collocazione è un vincolo fisico prima ancora che una preferenza di progetto. Un modello ragiona in secondi; un mercato si muove in millisecondi. Nulla che debba chiamare un modello può stare sul percorso che un ordine compie davvero — vale a dire che il protocollo non contiene alcun modello. Non per omissione, ma perché un modello sul percorso di regolamento distruggerebbe l’unica proprietà su cui poggia tutto il resto. Il percorso di esecuzione deve produrre gli stessi byte su ogni nodo, e l’inferenza non lo fa. Il runtime vive dunque fuori, e la domanda onesta diventa che cosa il protocollo gli debba. Cinque cose, tutte impegnate anziché rilasciate. Per gli stati vedi Dove si va.
Il runtime non detiene alcun percorso privilegiato. Nessuna latenza inferiore, nessun dato in anticipo e nessuna interfaccia che un runtime di terzi non possa raggiungere. Vale la pena dirlo anziché darlo per scontato, perché altrove l’architettura sostiene che fra un trader e la stanza di compensazione non si frappone nulla — e uno strumento di casa con una corsia riservata sarebbe esattamente quel qualcosa.

2 · Rete — l’ammissione, quando i mittenti sono agent

Il mempool decide che cosa vale la pena trattenere, quale transazione di un mittente venga per prima, quali peer ne sentano parlare e che cosa cada quando la domanda supera la capacità. Il flusso di agent mette sotto pressione tutti e quattro, e due delle proprietà che lo assorbono sono già lì per ragioni precedenti agli agent. Un annullamento in ritardo è peggio di un ordine in ritardo. Il mempool tratta per progetto il traffico di ordini e quello di annullamenti come asimmetrici. Gli agent rendono quell’asimmetria più estrema, perché il loro rapporto annullamenti/esecuzioni è più alto di quello umano, ma la forma del problema è quella attorno a cui questo livello è stato costruito. L’equità è tracciata sulla storia recente, non messaggio per messaggio. Il mempool tiene un registro scorrevole di quali mittenti e quali tipi di traffico hanno consumato capacità di recente, e in base a quello modella che cosa servire dopo. È la parte che conta per le raffiche correlate: quaranta agent che annullano sullo stesso segnale non sono quaranta volte il carico medio distribuito in modo uniforme, sono un picco. Un limite per messaggio non lo vede. Una memoria di chi è stato rumoroso di recente lo vede. Il consenso non cresce con il throughput. Le transazioni raggiungono i validatori come batch la cui disponibilità è provata prima che una proposta possa referenziarli, quindi una proposta di blocco porta digest e non corpi. Una popolazione di agent che alza di un ordine di grandezza i tassi di messaggi non alza affatto la dimensione dei messaggi di consenso.
Il blocco elimina la corsa al suo interno: due transazioni dello stesso blocco hanno una precedenza che ogni nodo calcola in modo identico. Quella garanzia comincia al confine del blocco. Entrarci è ancora una corsa, modellata dall’equità a livello di mittente anziché eliminata da essa. L’ammissione nel mempool non è l’inclusione.
Due questioni a questo livello restano aperte, ed entrambe diventano concrete ai volumi degli agent, non a quelli umani. Quanto dovrebbe costare un annullamento. L’esecuzione mette già gli annullamenti per primi: girano nella fase che precede tutto ciò che può prendere liquidità. La versione di rete della stessa domanda non è risolta: un annullamento economico e prioritario è ciò che rende difendibile il quoting, ed è anche il modo più economico di inondare un mempool. Se gli annullamenti debbano avere una contabilità di capacità propria, separata dalle immissioni, non è deciso. A quale livello appartiene l’idempotenza. Un agent che non riceve risposta rinvia. L’invio idempotente è impegnato al livello di esecuzione e risolve la conseguenza che conta: nessuna esposizione doppia. Non risolve la versione di rete: se il mempool debba riconoscere un rinvio come la stessa intenzione, oppure portarli entrambi e lasciare che l’esecuzione deduplichi. Sotto una tempesta di ritentativi, le due cose si comportano diversamente.
Una cosa è deliberatamente assente dall’elenco: una corsia di ammissione separata per gli agent. L’accesso prioritario è ciò che ogni sede centralizzata finisce per vendere, e contraddirebbe l’affermazione che fra un trader e la stanza di compensazione non si frappone nulla. Il flusso degli agent passa dalla stessa porta.

3 · Esecuzione — l’autorizzazione è una transazione

È il livello in cui cambia il modello di conto, e l’intero cambiamento discende da un solo fatto. Affidare un conto a un agent è una transazione on-chain. Non un modulo inviato, non una chiave API emessa da una pagina di impostazioni, non una riga nel database di un operatore. Una transazione, in un blocco, a un’altezza, firmata dal conto che l’ha concessa — e quindi qualcosa che qualunque terzo può trovare, leggere e verificare senza chiedere a nessuno. Ne discendono tre conseguenze, e ognuna è una cosa che una chiave API non può fare. Sta nell’insieme di istruzioni chiuso. L’autorizzazione di un agent è una delle operazioni enumerate del kernel. Una catena generalista non può esprimerla: il significato della chiamata sarebbe bytecode opaco. Una sede centralizzata la impone dentro software che non puoi ispezionare. Qui l’autorità e i suoi limiti sono l’istruzione, ed è per questo che il limite è verificabile anziché promesso. Porta ciò che l’agent può fare — e non può portare ciò che non può. Un’autorizzazione può dire che cosa l’agent può detenere, quanto può perdere, quali mercati può toccare e se può cambiare modalità di margine. Non può dire «preleva». Non è un’impostazione lasciata spenta: non esiste un termine da scrivere. Un agent che opera un conto non ha alcun percorso esprimibile per spostarne fuori i fondi. Revocarla annulla gli ordini in book dell’agent. Anche la revoca è una transazione, e atterra in un blocco il cui sequenziamento fa già girare gli annullamenti prima di tutto ciò che può prendere liquidità. Gli ordini che l’agent ha lasciato nel book se ne vanno quindi nello stesso blocco in cui se ne va l’autorità. Su una sede dove la revoca è una scrittura su database, la chiave smette di funzionare e gli ordini in book restano in uno stato indefinito. Qui l’arresto è dimostrabile e chiunque può trovare l’altezza a cui è avvenuto.
ConcedereUna transazione al blocco NPorta il perimetro: che cosa l’agent può detenere, può perdere, può negoziare. Non può portare un prelievo: quel termine non esiste
AgireOgni azione nomina la propria autoritàAttribuita al conto che l’ha concessa, non solo all’agent che l’ha inviata
RevocareUna transazione al blocco MGli ordini in book dell’agent vengono annullati nello stesso blocco, prima che giri qualunque cosa possa prendere liquidità
Nessuna delle tre è una scrittura su database di cui qualcuno debba avvisarti. Ognuna è una transazione che chiunque trova a un’altezza.
Oggi la concessione è tutto-o-niente con una scadenza. I termini più ricchi qui sopra — che cosa un agent può detenere, può perdere, può fare dopo — sono impegnati e non rilasciati; vedi Dove si va. Ciò che già vale è la parte che non si può aggiungere dopo: l’autorità è un oggetto di protocollo e non la registrazione che un operatore ne fa.

Che cosa la sede porta già al posto del runtime

Un runtime di trading che debba proteggere un utente su una sede ordinaria finisce per costruirsi un proprio nucleo privilegiato: un registro delle posizioni che mantiene e riconcilia da sé, un controllo di rischio pre-trade che esegue per conto proprio sperando che la sede calcoli allo stesso modo, e un log di audit che scrive e di cui non può provare che non sia stato alterato. Tutti e tre sono ridondanza verso una sede che non mostra i suoi libri. Qui tre di quelle cose sono proprietà del protocollo. La stanza di compensazione è l’unica scrivente del registro. La fase di rischio gira prima del matching, nello stesso blocco. Il log di audit è la catena, e ogni cambiamento di stato porta la transazione che lo ha causato. Al runtime resta la quarta — un gateway ordini idempotente — ed è un problema di interfaccia, non di fiducia.

Matching: il blocco è già il lotto

Il flusso di agent alza la frequenza e abbassa la dimensione di ciò che arriva al book, ed è esattamente la microstruttura più spesso usata per sostenere l’asta a lotti: intervalli discreti, liquidati insieme, nessun vantaggio nell’arrivare un microsecondo prima. Quella proprietà vale già qui, e non perché sia stata aggiunta un’asta a lotti. Il tempo dentro un blocco è la posizione confermata dal consenso, non un orologio locale, quindi dentro un blocco non esiste alcun vantaggio sotto il millisecondo — e gli annullamenti girano prima di qualunque ordine aggressivo, così una quotazione stantia può essere ritirata e non può essere raccolta da un ordine arrivato insieme all’annullamento. Il blocco è un intervallo discreto che si liquida insieme. È arrivato come conseguenza dell’esecuzione di un ordinamento confermato, non come un innesto di market design. Se qualcosa oltre a questo sia giustificato — e la priorità continua prezzo-tempo e le aste a lotti frequenti sono alternative e non aggiunte, dato che un lotto rimuove deliberatamente la priorità temporale al proprio interno — è in esplorazione, non in costruzione.

4 · Stato — la catena è l’ambiente

Un agent vale quanto ciò contro cui è stato valutato, ed è nella valutazione che accade la maggior parte dei fallimenti. Una strategia che sembrava redditizia in un simulatore e fallisce in produzione di solito non ha incontrato un mercato nuovo: ha incontrato un simulatore che non era la sede. Il livello di stato elimina quel divario per costruzione anziché per disciplina. Lo stato è versionato per blocco e ogni cambiamento è attribuito alla transazione che lo ha causato, quindi ripetere un blocco ripete l’ambiente e non un suo modello: la stessa macchina a stati che eseguirà l’agent, sugli input che la rete ha confermato. È il quinto controllo di Verifica da te, ed è ciò che rende un backtest qui un oggetto di natura diversa da un backtest contro l’API storica di una borsa. La proprietà più sottile è che tutto questo è point-in-time per costruzione. Un dataset assemblato da un’API di borsa è point-in-time solo se chi l’ha assemblato è stato attento, e il look-ahead entra da fessure che nessuno nota: un campo riempito a posteriori, una correzione applicata alla storia, un prezzo di riferimento rivisto. Qui la questione non si pone: lo stato di un blocco è ciò che era vero a quel blocco, perché è l’unica forma che lo stato abbia mai avuto.

Che cosa diventa più difficile

Costruire per gli agent non è solo un elenco di cose che migliorano. Il determinismo taglia da entrambe le parti. Un agent può prevedere che cosa farà il proprio ordine prima di inviarlo, perché lo stesso input produce lo stesso risultato su ogni nodo. Anche l’agent di chiunque altro può farlo, sul tuo ordine. La riproducibilità alza insieme la tua capacità di pianificare e la tua prevedibilità, e la seconda non è gratis. La liquidità degli agent è liquidità correlata. I market maker umani si ritirano in momenti diversi perché se ne accorgono in momenti diversi. Agent che leggono lo stesso stato pubblico arrivano insieme alla stessa conclusione. Un book sostenuto da agent è più profondo in un giorno ordinario e può assottigliarsi più in fretta nel giorno che conta: è un rischio di struttura di mercato per cui gli assorbitori del protocollo sono progettati, non uno che eliminano. L’oracolo legge sedi su cui anche gli agent negoziano. La certificazione lega un prezzo al blocco che lo ha consumato; non rende il mercato sottostante non manipolabile, e una popolazione di agent che agisce su segnali correlati è un modo in più perché il sottostante si muova insieme. Vedi che cosa l’oracolo garantisce e che cosa no. L’autovalutazione di un agent non è una prova. Il feedback del trading è rumoroso e non stazionario in un modo in cui quello del codice non lo è: un compilatore ti dice che avevi torto, una settimana in profitto non ti dice che avevi ragione. Qualunque cosa una sede costruisca per gli agent deve trattare il resoconto che un agent fa della propria performance come input avversario e non come misura. È una delle ragioni per cui i controlli di Verifica da te sono costruiti attorno a ciò che si può ricalcolare anziché a ciò che si può riferire.

Dove proseguire

Trading con IA: ora e dopo

Le quattro fasi, e perché è il conto la cosa che deve cambiare.

Verifica da te

I controlli che rendono la valutazione di un agent qualcosa di diverso da un’affermazione.

Ipotesi di fiducia

Che cosa resta da prendere sulla fiducia, una volta verificato il verificabile.

Dove si va

Lo stato del runtime dell’agent e dei termini di autorizzazione.