Introduzione

L’ingegneria del contesto si riferisce alla pratica di progettare sistemi capaci di definire quale informazione un modello di Intelligenza Artificiale (IA) visualizza prima di generare una risposta a input dell'utente. Esula non solo dalla formattazione delle istruzioni, ma modella l'ambiente intero in cui l’IA opera. Questa pratica considera i dati, le strutture, gli strumenti, i vincoli, le politiche e i meccanismi che determinano gli input visti dal modello in ogni momento. In pratica, un buon ingegnere del contesto stabilisce un piccolo set di token rilevanti che aumentano la probabilità di ottenere una risposta di alta qualità.

Relazione con l'ingegneria dei prompt

Si può pensare all’ingegneria dei prompt come a una disciplina precedente e complementare all’ingegneria del contesto. Mentre l’ingegneria del prompt si concentra sui testi, sulle sequenze e istruzioni di superficie, l’ingegneria del contesto estende questa disciplina verso l’architettura e l’orchestrazione. Tratta il prompt come solo un livello all'interno di un sistema più largo, che seleziona, struttura e consegna le informazioni corrette nel formato giusto, in modo che un modello di linguaggio a grandi dimensioni possa eseguire il compito assegnato in modo efficace.

Cos’è il contesto nell'intelligenza artificiale?

Nelle sistemi di intelligenza artificiale, il concetto di contesto indica tutto ciò a cui un grande modello di linguaggio (LLM - Large Language Model) può accedere quando produce una risposta. Questo include non solo l'ultima query dell’utente, ma anche l'insieme completo di informazioni, regole, memoria e strumenti che modellano come il modello interpreta la richiesta. L’intera quantità di informazioni che il sistema può elaborare in un dato momento si chiama finestra di contesto.

Strati di contesto nell’IA

Il contesto è composto da diversi strati che lavorano insieme per guidare il comportamento del modello:

    • Promemoria di sistema: Definisce il ruolo, i confini e il comportamento del modello. Questo strato può includere regole, esempi, guard rail e richieste di stile che persistono nel corso di diversi turni.
    • Promemoria utente: Rappresenta la richiesta immediata, una breve, specifica input che indica al modello cosa deve fare al momento.
    • Stato o storia della conversazione: Funziona come una memoria breve, fornendo al modello una continuità all’interno delle interazioni successive inclusi dialoghi passati, passaggi di ragionamento e decisioni operate.
    • Memoria a lungo termine: Persiste attraverso sessioni differenti. Contiene preferenze stabili, fatti, sommari di progetti o informazioni che il sistema è progettato per introdurre nuovamente in futuro.
    • Informazione recuperata: Fornisce al modello conoscenze esterne aggiornate ottenute da documenti, database o API.
    • Generazione con l'applicazione della conoscenza recuperata: Trasforma questa informazione in un strato dinamico di conoscenza specifica del settore.
    • Strumenti disponibili: Comprendono le azioni che un LLM può eseguire grazie alle chiamate agli strumenti o ai server MCP: funzioni chiamabili, endpoint API o comandi con input e output definiti.
    • Definizioni del formato dell'output strutturato: Indicano come la risposta deve essere formattata, ad esempio richiedendo un oggetto JSON, una tabella o uno schema specifico.

Quando fallisce il contesto?

Il termine "fallimento del contesto" descrive un insieme di casi comuni in cui sistemi di contesto dell’IA non funzionano come previsto. Questi errori rientrano in quattro principali categorie:

    • Avvelenamento del contesto: Accade quando una falsità o un errore fattiaccio entra nel contesto e viene successivamente utilizzato come se fosse vero. Negli anni, il modello potrebbe costruire su questa base fallace, amplificando errori e compromettendo la capacità di ragionare.
    • Distrazione del contesto: Si verifica quando il contesto diventa troppo grande o verboso. Invece di basare la risposta sulle informazioni di formazione, il modello si concentra eccessivamente sulla storia accumulata, replicando azioni passate o aggrappandosi a informazioni obsolete.
    • Conflitto di contesto: Si verifica quando informazioni secondarie entrate dentro il contesto vengono prese per rilevanti, causando output errati o strumenti mal richiamati.
    • Contrapposizione di contesto: Accade quando un insieme nuovo di informazioni entra nel contesto e contraddice i dati iniziali forniti. Se il contesto cresce, le assunzioni antecedenti o risposte parziali potrebbero contrastare con informazioni più chiare che arrivano successivamente — causando comportamenti incoerenti od errati.

Perché dimensione non è sempre una risposta

Nel campo dell'IA, aziende come OpenAI e Anthropic hanno introdotto capacità che gestiscono finestre di contesto sempre più grandi. Tuttavia, la dimensione massiccia del contenuto da gestire non garantisce per forza risultati di qualità superiore. Addirittura, finestre di contesto più grandi sono suscettibili a errori maggiori di quelli sopra menzionati. Senza una gestione deliberata del contesto — mediante validazione, sintesi, recupero selettivo, potatura o isolamento — anche le finestre di contesto estese possono portare risultati imprevedibili od incoerenti.

Tecniche e strategie di ingegneria del contesto

L’ingegneria del contesto mira ad affrontare questi tipi di fallimenti. Ecco alcune delle strategie principali da applicare:

    • Selezione della base di knowledge o tools: Scegli fonti di dati esterne, database, documenti o strumenti che il sistema può utilizzare. Una base ben curata conduce al retrieval di informazioni rilevanti e riduce il rumore.
    • Ordinamento o compressione del contesto: Decidi che informazioni meritano spazio e quali devono essere breviate o eliminate. I sistemi tendono ad accumulare molto più testo di quanto necessario per il modello, e quindi la potatura o la riorganizzazione mantiene i contenuti più rilevanti.
    • Progettazione della memorizzazione e retrieval a lungo termine: Definisce come informazioni persistenti, inclusi preferenze dell'utente, sommari di progetti, fatti di specifici domini o risultati di sessioni anteriori vengano conservati e reintegrati quando necessario. Un esempio pratico è memorizzare lo stile di scrittura preferito di un utente una volta e farlo rientrare automaticamente.
  • Struttura e output definito: Forniscono formati prevedibili per contesto e risposte. Dare al modello dati