"Kontext-Engineering" è l'argomento più scottante nella Silicon Valley in questo momento, generando un'ondata di entusiasmo e discussioni tra gli innovatori del settore tecnologico. Questo nuovo approccio ha ricevuto un'autorevole convalida e il personale sostegno di figure di spicco come Karpathy, un vero guru dell'intelligenza artificiale, noto per le sue intuizioni rivoluzionarie. Di conseguenza, il prompt-engineering, una volta la metodologia dominante e ampiamente adottata per interagire con i modelli linguistici, è stato improvvisamente e sorprendentemente spinto fuori moda, cedendo il passo a una prospettiva più olistica e complessa nella gestione dei large language model (LLM).
Secondo le ultime tendenze riportate da 36Kr.com il 6 luglio 2025, il "kontext-engineering" è emerso con forza, guadagnando di nuovo popolarità dopo l'era del prompt-engineering. Questo concetto è molto apprezzato da personalità di spicco della Silicon Valley, come lo stesso Karpathy, e può essere descritto come una "programmazione dell'atmosfera completamente nuova". La chiave del successo o del fallimento di un agente basato sull'IA, infatti, non risiede più nella raffinatezza del codice o nella mera formulazione di istruzioni, ma piuttosto nell'efficacia del kontext-engineering, che fornisce una base solida e pertinente per le operazioni dell'IA.
Perché il "Kontext-Engineering" è diventato così popolare?
Ciò che è attualmente molto richiesto nella Silicon Valley non è più il prompt-engineering, ma piuttosto il kontext-engineering. Persino il guru dell'IA Karpathy ha espresso il suo favore per il "kontext-engineering", sottolineandone l'importanza crescente nel panorama attuale dell'intelligenza artificiale. Anche il CEO di Shopify, Tobias Lütke, ha dichiarato di preferire apertamente il "kontext-engineering", poiché, a suo avviso, descrive con maggiore precisione una competenza fondamentale e sempre più critica: l'arte di consentire a un large language model (LLM) di risolvere i problemi in modo sensato ed efficace, fornendogli informazioni di base complete e opportunamente strutturate per un determinato compito.
Ma perché il "kontext-engineering" è diventato improvvisamente così popolare da un giorno all'altro, quasi inaspettatamente? Il motivo principale risiede nell'emergere degli agenti IA, una nuova generazione di sistemi autonomi capaci di svolgere compiti complessi. Il presidente di OpenAI, Greg Brockman, ha dichiarato pubblicamente in più occasioni che "il 2025 sarà l'anno dell'emergere degli agenti IA". In questo scenario in rapida evoluzione, il fattore decisivo per il successo o il fallimento di un agente è la "qualità del contesto" fornito. In altre parole, le informazioni caricate nella "memoria di lavoro limitata" del modello diventano di importanza cruciale. È stato osservato che la maggior parte dei casi di fallimento degli agenti IA non sono dovuti a un fallimento intrinseco del modello, bensì a un fallimento nella gestione e nella fornitura del contesto.
Che cos'è il contesto?
Per comprendere appieno il "kontext-engineering", è necessario innanzitutto ampliare la definizione tradizionale di "contesto". Non si tratta più solo del singolo prompt, ovvero la breve istruzione che si invia all'LLM. Si può considerare il contesto come "tutto ciò che il modello vede e ha a disposizione prima di generare una risposta" o intraprendere un'azione, e include i seguenti elementi chiave:
- Istruzioni/System-Prompt: Questa è la quantità iniziale di istruzioni che definisce il comportamento generale del modello all'interno di un dialogo o di un'applicazione specifica. Può e dovrebbe contenere esempi concreti, regole precise, linee guida sul tono e altre direttive essenziali per orientare la risposta dell'LLM.
- User-Prompt: Rappresenta l'attuale compito o la domanda specifica posta dall'utente al modello in un dato momento, ovvero l'input immediato che richiede una risposta.
- Stato/Storia (Memoria a breve termine): Include l'intero dialogo corrente, che comprende tutte le interazioni precedenti tra l'utente e il modello, ovvero le risposte dell'utente e le risposte generate dal modello fino a quel momento. Questo permette al modello di mantenere la coerenza conversazionale.
- Memoria a lungo termine: Si riferisce a un repository di conoscenza permanente e persistente, che viene raccolto e aggiornato attraverso diverse interazioni o sessioni precedenti. Questo può contenere preferenze dell'utente apprese nel tempo, riassunti di progetti precedenti, o fatti importanti da conservare per un uso futuro, garantendo una personalizzazione continua.
- Informazioni recuperate (RAG - Retrieval Augmented Generation): Queste sono conoscenze esterne, aggiornate in tempo reale, e informazioni pertinenti ottenute da fonti esterne come documenti, database, o API. Tali dati vengono utilizzati dinamicamente per arricchire la risposta del modello su domande specifiche che richiedono conoscenze non intrinseche all'LLM.
- Strumenti disponibili: Si tratta della definizione chiara e precisa di tutte le funzioni o strumenti integrati che il modello può richiamare autonomamente per eseguire determinate azioni, come ad esempio
check_inventoryper verificare la disponibilità di un prodotto, osend_emailper inviare una comunicazione, espandendo le sue capacità operative. - Output strutturato: Questa è la definizione esplicita del formato in cui il modello deve generare la sua risposta, ad esempio come un oggetto JSON, una lista, o un altro formato specifico, per garantire che l'output sia facilmente interpretabile e utilizzabile da altre parti del sistema.
Si può notare, quindi, che a differenza del "prompt-engineering", che si concentra quasi esclusivamente sulla creazione di istruzioni perfette contenute in un'unica stringa di testo, l'ambito del "kontext-engineering" è notevolmente più ampio e complesso. In parole semplici, il "kontext-engineering" è una disciplina specialistica che si occupa della progettazione e costruzione di sistemi dinamici altamente sofisticati. Questi sistemi sono abilmente progettati per essere in grado di fornire le informazioni e gli strumenti giusti, al momento giusto e nel formato giusto, assicurando che l'LLM abbia a sua completa disposizione tutto il necessario per completare un compito specifico con la massima efficienza e accuratezza.
Caratteristiche del "Kontext-Engineering"
Ecco tutte le caratteristiche fondamentali che definiscono e distinguono il "kontext-engineering" come approccio innovativo:
- È un sistema, non una stringa: Il contesto non è da intendersi come un semplice modello di prompt statico predefinito. Al contrario, esso rappresenta l'output dinamico di un sistema complesso che è già in esecuzione, elaborando e preparando le informazioni, ben prima che avvenga la chiamata principale all'LLM. Questa differenza concettuale è cruciale per capirne la complessità.
- È dinamico: Una delle sue peculiarità è che il contesto non è fisso. Viene generato e adattato in tempo reale, immediatamente e in modo personalizzato, per rispondere alle esigenze specifiche del compito corrente. Ad esempio, una richiesta relativa a un appuntamento potrebbe richiedere dati del calendario e la disponibilità, mentre un'altra richiesta potrebbe aver bisogno di contenuti e-mail specifici o di risultati di ricerca pertinenti ottenuti dal web in quel preciso istante.
- Pone l'accento sulla fornitura delle informazioni e degli strumenti giusti al momento giusto: Il compito principale del kontext-engineering è garantire che il modello non perda dettagli cruciali o riceva informazioni superflue (pensate al principio "spazzatura in entrata, spazzatura in uscita" - garbage in, garbage out). Ciò significa che al modello vengono fornite conoscenze (informazioni) e capacità (strumenti) solo ed esclusivamente quando è necessario e utile per la risoluzione del compito, ottimizzando l'efficienza e la rilevanza.
- Pone l'accento sul formato: Il modo in cui le informazioni vengono presentate all'LLM è di importanza cruciale e non può essere sottovalutato. Un riassunto conciso e ben strutturato è di gran lunga migliore e più efficace rispetto all'elenco di dati grezzi non elaborati. Allo stesso modo, una chiara e precisa definizione dell'interfaccia di uno strumento è molto più efficace di una vaga istruzione, poiché minimizza ambiguità e errori interpretativi.
Una scienza e un'arte
Nella sua valutazione approfondita e sfaccettata, Karpathy ha anche sostenuto con convinzione che il "kontext-engineering" non è solo una disciplina tecnica, ma anche una forma d'arte raffinata. Spesso, nel gergo comune, si tende ad associare il termine "prompt" alla breve e semplice descrizione del compito che si invia quotidianamente a un LLM per ottenere una risposta. Tuttavia, Karpathy chiarisce che in qualsiasi applicazione LLM di livello industriale, dove la robustezza e l'affidabilità sono fondamentali, il kontext-engineering si rivela essere una scienza profonda, basata su principi rigorosi, e al contempo un'arte abile che richiede intuizione e maestria.
Il nucleo fondamentale di questa pratica consiste nel riempire con precisione e intelligenza la finestra di contesto disponibile per la prossima azione dell'LLM, fornendogli esattamente le informazioni giuste. Si parla di una scienza perché la sua implementazione richiede la combinazione sinergica di una serie di tecniche avanzate e consolidate, tra cui:
- Descrizione e spiegazione dettagliata del compito;
- Esempi di few-shot learning per guidare il modello;
- RAG (Retrieval Augmented Generation) per l'arricchimento delle informazioni;
- Dati rilevanti (possibilmente multimodali) che includono testo, immagini o altri formati;
- Strumenti specifici che il modello può invocare;
- Stato e storia delle interazioni passate;
- Tecniche di compressione delle informazioni, ecc.
È un equilibrio delicato: se ci sono troppe poche informazioni o se il formato è errato, l'LLM non ha abbastanza contesto per ottenere le migliori prestazioni. Al contrario, se ci sono troppe informazioni o se queste non sono rilevanti, i costi computazionali dell'LLM aumentano inutilmente e le prestazioni generali diminuiscono. Questo processo di ottimizzazione è intrinsecamente complesso e richiede competenze specifiche.
D'altra parte, si parla di un'arte perché l'efficacia del kontext-engineering dipende in larga misura dall'intuizione, dall'esperienza e dalla guida dello sviluppatore riguardo alle "caratteristiche" intrinseche e al comportamento del large language model specifico che si sta utilizzando. Al di là del kontext-engineering stesso, un'applicazione LLM di successo deve anche affrontare e gestire molteplici altri aspetti fondamentali, tra cui:
- Scomporre opportunamente il problema generale in un flusso di controllo logico e gestibile;
- Riempire con estrema precisione la finestra di contesto disponibile per ogni singola operazione;
- Distribuire in modo intelligente la chiamata a un LLM con il tipo e la capacità corretti per il compito specifico;
- Gestire in modo efficiente l'intero processo UI/UX (interfaccia utente/esperienza utente) di "Genera - Valida", che include la presentazione dei risultati all'utente e la raccolta di feedback per migliorare continuamente il sistema.
E molto altro ancora, come l'implementazione di barriere di sicurezza robuste, la garanzia della sicurezza del sistema, la valutazione costante dell'efficacia delle risposte, l'elaborazione parallela per l'ottimizzazione delle prestazioni, il pre-recupero dei dati per ridurre le latenze, ecc. Tutti questi elementi contribuiscono alla complessità complessiva e alla necessità di un approccio sia scientifico che artistico.
Un componente di una più ampia architettura software
Per tutte le ragioni sopra elencate, il "kontext-engineering" è in realtà solo una piccola, sebbene cruciale, parte di un emergente, vasto e intrinsecamente complesso strato software. Questo strato software, di fondamentale importanza, è responsabile dell'integrazione fluida e del coordinamento armonioso delle singole chiamate LLM con molte altre operazioni e componenti, al fine di creare un'applicazione LLM completa, robusta e funzionale. Karpathy ha dichiarato con fermezza che è obsoleto e completamente sbagliato definire superficialmente tali applicazioni come semplici "ChatGPT-wrapper", poiché la loro architettura e complessità vanno ben oltre un semplice incapsulamento.
Alcuni utenti di Internet hanno scherzato sul fatto che il kontext-engineering sia la nuova "programmazione dell'umore" (Stimmungsprogrammierung), un modo giocoso per indicare una tendenza passeggera. Karpathy ha risposto a questa provocazione, affermando: "Non voglio necessariamente introdurre una nuova parola. Trovo solo che, quando si parla di 'prompt', si tende inevitabilmente a semplificare una componente che in realtà è piuttosto complessa e articolata." Ha poi esemplificato la differenza: si userebbe un prompt per chiedere a un LLM "Perché il cielo è blu?". Ma un'applicazione, per risolvere i compiti complessi e personalizzati a essa assegnati, deve costruire un contesto ricco e specifico per il large language model, andando ben oltre la singola domanda.
Il successo di un agente dipende da esso
In effetti, il segreto per creare un agente IA veramente efficiente, capace di operare in modo autonomo e intelligente, non risiede nella complessità del codice sorgente o nella sofisticazione degli algoritmi puri, ma, in modo sorprendente, nella qualità e nella completezza del contesto che gli viene fornito. La differenza fondamentale tra un prodotto dimostrativo insufficiente, che fatica a performare in scenari reali, e un agente impressionante, capace di svolgere compiti complessi con grande efficacia, risiede proprio nella qualità del contesto che è stato meticolosamente preparato e messo a sua disposizione. Immaginate che un assistente IA debba partecipare a una riunione sulla base di una semplice e-mail; la sua capacità di agire in modo efficace, di comprendere le sfumature della discussione e di prendere decisioni pertinenti dipenderà interamente dalla completezza e dalla pertinenza delle informazioni contestuali che gli vengono fornite prima e durante l'evento. Questa enfasi sulla qualità del contesto è ciò che distingue gli agenti IA di successo e rende il kontext-engineering una disciplina così critica e trasformativa per il futuro dell'intelligenza artificiale.