Testiamo questo prodotto più duramente di quanto la maggior parte delle persone si prenderebbe la briga di testare uno strumento che non vende. Non perché ci piaccia trovare i nostri stessi bug, ma perché l’affermazione “l’IA conosce davvero la tua attività” non vale nulla se nessuno ha verificato se è vera sotto pressione reale.
Una domanda continuava a fallire. Non quasi giusta, non vaga: un secco “Non ho questa informazione.”
La domanda, e quante volte è fallita
“Proponi un pacchetto di servizi ibrido, basato su ciò che ha davvero funzionato.”
Abbiamo posto una versione di questa domanda in tre round di simulazione AlphaForge separati, un test completo della verticale studi legali, e un test della verticale giardinaggio e paesaggistica. Ogni volta, con il vecchio metodo di recupero: una versione di “Non ho voci del Vault o registri che mostrino quali combinazioni hanno funzionato.”
La parte frustrante non era che fallisse. Era che l’informazione realmente non mancava. Il Vault aveva la voce generale sui prezzi. Aveva la voce specifica sul risultato. Semplicemente non le ha mai collegate, perché il metodo di recupero sottostante eseguiva una corrispondenza di parole chiave dal vivo a ogni singolo messaggio, fino a quaranta scansioni separate del database per domanda, e la corrispondenza per parole chiave non sa che “bancali di zolle” e “copertura in bancali” parlano della stessa cosa.
Cosa abbiamo davvero cambiato
Non ciò che il Vault memorizza. Come viene cercato.
Ogni voce del Vault ora viene trasformata in un embedding, una rappresentazione numerica del suo significato reale, nel momento in cui viene scritta, non nel momento in cui qualcuno fa una domanda al riguardo. Il recupero è diventato un’unica ricerca del vicino più prossimo su quella rappresentazione, invece di scansionare tutto il Vault da zero a ogni messaggio. È lo stesso database sottostante, Postgres, sulla stessa istanza che avevamo già, con un’estensione costruita esattamente per questo. Nessuna nuova categoria di infrastruttura. Solo un modo diverso di trovare ciò che c’era già.
Arrivarci ha richiesto un lavoro di ingegneria reale, per niente glamour, su cui la maggior parte di questi articoli non si sofferma: verificare quali provider AI offrono anche solo un endpoint per gli embedding (non tutti ce l’hanno), un design consapevole del singolo cliente (tenant-aware) in modo che venga usato il provider configurato di ciascuna azienda invece di un’unica chiave per tutta la piattaforma, e un bug davvero fastidioso in cui gli embedding di un provider avevano bisogno di una normalizzazione esplicita prima che i confronti di distanza fossero anche solo matematicamente validi. Abbiamo anche confrontato cinque modelli candidati su una domanda reale prima di sceglierne uno, scoprendo qualcosa che vale la pena sapere di per sé: l’opzione più veloce batteva quella più lenta da dieci a quindici volte, con zero differenza nella qualità della risposta sulla domanda numerica esatta su cui l’abbiamo testata.
Il nuovo test
Stesso cliente. Stessa domanda. Prima il vecchio metodo, poi il nuovo, uno dopo l’altro.
La vecchia risposta: “Non ho voci del Vault o registri che mostrino quali combinazioni hanno funzionato.”
La nuova risposta, confermata dai log come effettivamente generata dal nuovo percorso di recupero, non una coincidenza: una proposta reale e specifica, servizi con nome, un cliente reale citato per nome, un valore totale calcolato, un ragionamento legato a come funziona davvero il lavoro di quell’azienda. Non una versione leggermente migliore della vecchia non-risposta. Un esito completamente diverso, su una domanda che era fallita in modo identico, ogni volta, per l’intero programma di test fino a quel momento.
Quello che non fingeremo
Il costo reale è emerso subito, quindi lo riportiamo, senza addolcirlo. Il backfill degli embedding per un Vault già grande, oltre mille voci, ha richiesto quasi cinque minuti, pericolosamente vicino a un limite rigido di timeout della richiesta. Su un Vault davvero maturo, profondo diverse migliaia di voci, lo stesso backfill in un’unica soluzione probabilmente fallirebbe a metà strada. Ora lo sappiamo perché lo abbiamo misurato, non perché lo stiamo ipotizzando. È un vero follow-up segnalato, non qualcosa che abbiamo rilasciato sperando in silenzio che nessuno ci incappasse.
Il numero dietro a tutto questo
Questo singolo confronto prima-dopo è un test all’interno di un programma molto più ampio: circa venticinque anni simulati di attività aziendale in diversi settori, oltre novemila voci reali del Vault generate lungo il percorso, undici bug reali trovati e corretti, questa lacuna nel recupero tra questi. Spesa API reale totale per l’intero programma durato diversi mesi: 9,57 $.
Preferiamo mostrarvi la domanda che è fallita cinque volte di fila, ed esattamente cosa ci è voluto per sistemarla, piuttosto che partire con un numero a effetto e sperare che nessuno chieda cosa c’è davvero dietro.