In azienda l'AI è una disciplina di ingegneria. Il modello è un componente; il valore nasce dal collegarlo in modo sicuro ai vostri dati, alle vostre regole e ai sistemi esistenti, e dal sapere se funziona davvero. Realizziamo funzionalità di AI sicure, valutate, osservabili e sostenibili nei costi di esercizio, e vi diciamo quando un caso d'uso non vale l'investimento.
L'AI dentro i sistemi di cui vi fidate già
Il vostro modello di dominio, le transazioni, i permessi e gli audit trail vivono già in Java. Costruire uno stack Python parallelo duplica quella logica e crea un secondo perimetro di sicurezza. Noi integriamo l'AI sulla JVM, dentro la vostra architettura: il modello propone, i vostri servizi di dominio decidono. Una proposta è un oggetto Java tipizzato, validato come qualsiasi altro input prima che tocchi i vostri dati.
Spring AI, LangChain4j o Embabel
I tre principali framework per la JVM non sono intercambiabili, e scegliamo caso per caso.
- Spring AI è il progetto ufficiale di Spring per l'AI engineering. Offre un
ChatClientportabile con advisor, supporto per molti provider di modelli e vector store, client e server MCP e osservabilità con Micrometer. Per un'applicazione Spring Boot con una funzionalità di AI ben definita è di solito la scelta naturale. - LangChain4j è una libreria Java indipendente, non un porting del progetto Python LangChain. Funziona con Quarkus, Spring Boot, Helidon e Micronaut e offre AI Services dichiarativi, tool, RAG e guardrail. Il nucleo è stabile; alcuni moduli avanzati sono ancora pubblicati come beta o sperimentali, e ne teniamo conto.
- Embabel è un framework per agenti creato da Rod Johnson, il creatore di Spring, e basato su Spring AI. Pianifica la sequenza dei passi su oggetti di dominio tipizzati con un algoritmo di pianificazione (GOAP) che non dipende dal modello linguistico, valida gli output con Bean Validation e supporta passaggi con intervento umano. È adatto a processi in più fasi su un modello di dominio ricco. Ha raggiunto la versione 1.0 nel 2026, quindi lo gestiamo come una dipendenza giovane.
Quando un processo è deterministico e noto in anticipo, spesso consigliamo di non usare alcun agente: un workflow esplicito con chiamate mirate al modello è più semplice da testare e da gestire.
Retrieval, tool e agenti
Retrieval-augmented generation sui vostri documenti, con controllo degli accessi applicato al momento del retrieval, così che ogni utente riceva risposte solo dai contenuti che può consultare. Tool calling che espone i servizi di dominio esistenti con privilegi minimi, tenendo separati i tool di sola lettura da quelli che modificano i dati. Il Model Context Protocol dove un'interfaccia standard tra modelli e tool è utile. Output strutturati mappati su record Java. Workflow agentici solo dove il passo successivo dipende davvero dai dati.
Sicurezza, privacy e governance
Progettiamo tenendo conto dei rischi elencati nell'OWASP Top 10 for LLM Applications: prompt injection, divulgazione di informazioni sensibili, autonomia eccessiva, gestione impropria degli output. I contenuti non affidabili, come email, PDF e pagine web, sono trattati come dati, i segreti non entrano mai nel contesto del modello e le azioni irreversibili o regolamentate richiedono un'approvazione umana esplicita e registrata. Per i dati sensibili minimizziamo e pseudonimizziamo prima di ogni chiamata al modello, e usiamo modelli locali o self-hosted, oppure un hosting in Svizzera e nell'UE verificato caso per caso. Conosciamo i riferimenti normativi come la legge svizzera sulla protezione dei dati, le indicazioni della FINMA sulla governance dell'AI e l'AI Act europeo, e progettiamo tenendone conto, senza sostenere che la sola tecnologia renda un sistema conforme.
Valutazione, costi ed esercizio
Ogni caso d'uso ha un dataset di valutazione costruito da casi reali anonimizzati, eseguito in CI a ogni cambio di prompt, modello o versione del framework: prima i controlli deterministici, poi la valutazione basata su modelli, infine la revisione umana di un campione. I prompt sono artefatti versionati e gli identificativi dei modelli sono fissati. Uso di token, latenza e costi sono esportati come metriche per caso d'uso, modelli piccoli o locali si occupano di classificazione ed estrazione, e budget definiti fermano i processi fuori controllo. Il contenuto di prompt e risposte non viene registrato nei log, a meno che non lo decidiate voi.
Modernizzazione assistita dall'AI
Gli strumenti di AI ci aiutano a comprendere più rapidamente grandi codebase legacy, a preparare bozze di test di caratterizzazione e ad accelerare il lavoro di migrazione ripetitivo, insieme a strumenti deterministici come OpenRewrite. Ogni modifica è rivista e testata da un ingegnere: l'AI accelera il lavoro, non se ne assume la responsabilità.