Introduzione

Stiamo vivendo un momento di svolta nella storia dell'intelligenza artificiale. Da modelli semplici e mirati a compiti specifici, stiamo passando a agenti avanzati che sanno pianificare, agire e adattarsi. In questo nuovo scenario, il contesto è fondamentale per garantire interazioni significative e coese.

In questo ambiente, l’ingegneria del contesto entra in gioco, diventando una disciplina cruciale per progettare e fornire l'informazione giusta al momento giusto agli agenti di AI. Strumenti come la funzionalità di chiamata openAI, la memoria a lungo termine, l'uso di strumenti e i flussi di lavoro agili rendono l'ingegneria del contesto non solo un vantaggio, ma una necessità.

Che cos’è esattamente l’ingegneria del contesto?

Alla base, l’ingegneria del contesto mira a far sì che gli agenti di AI “pensino” in modo più simile all'essere umano, mantenendo memoria, coerenza e rilevanza. Questo significa identificare quali informazioni sono necessarie per un determinato compito o obiettivo, strutturarle in modo intelligente (che si tratti di preferenze degli utenti, documenti, conversazioni precedenti o intenti) e alimentarle al sistema in un modo che permetta l'elaborazione e l'utilizzo.

Questo può essere fatto tramite suggerimenti artigianali ben progettati, recuperando informazioni da una base di conoscenza (spesso indicata come RAG – retrieval-augmented generation) oppure integrando memoria e utilizzo degli strumenti. Ciascuno di questi metodi svolge un ruolo nella manutenzione della coerenza e della profondità a lungo termine.

I blocchi fondamentali per un AI più intelligente

I componenti principali dell’ingegneria del contesto includono la progettazione delle domande, che continua a rappresentare uno strumento potente per guidare le risposte. Il RAG consente agli agenti di reperire informazioni rilevanti al momento necessario, sia da documenti interni che da API esterne.

La memoria rappresenta un’altra funzione essenziale, grazie alla quale gli agenti possono personalizzare le risposte e "ricordare" attraverso piú sessioni. Infine, l'uso di strumenti e la chiamata di funzioni permettono agli agenti di attuare azioni specifiche, come prenotare un incontro, interrogare un database, addirittura eseguire codice, nel mezzo di una conversazione.

Perché il contesto fa la differenza

Senza un contesto ben strutturato, persino i modelli linguistici più avanzati possono fallire ripetutamente. Si ottengono risposte ripetitive, generiche e poco precise, con ragionamento fragile e interazioni di breve durata. Con un contesto ben sviluppato, gli stessi sistemi possono mantenere coerenza, fornire risposte personalizzate, risolvere problemi complessi e comportarsi come partner collaborativi.

Pensiamo alla differenza tra un bot di chat che dimentica tutto tra le sessioni e un assistente che conosce la tua storia, ricorda i tuoi obiettivi e comprende i tuoi strumenti preferiti. Il primo è un'innovazione tecnologica, mentre il secondo è un vero cambiamento.

Come si ingegnerizza il contesto

La pratica dell'ingegneria del contesto si basa su quattro approcci principali:

    • Scrittura: Consiste nel conservare il contesto esternamente, come appunti temporanei durante una sessione o ricordi a lungo termine che persistono tra le sessioni.
    • Selezione: Il prossimo passo consiste nel decidere quale contesto caricare per un dato compito, recuperando informazioni pertinenti come fatti, note, descrizioni o esempi.
    • Compressione: Per le piú moderne reti neurali linguistiche, con limiti di token, non è possibile includere tout. I metodi di sintesi (come la sintesi ricorsiva o gerarchica) aiutano a ridurre grandi quantità di dati in input digestibili.
    • Isolamento: È importante separare diversi tipi di contesto, mantenendo distinti gli strumenti, la memoria di lunga durata e la logica interna. Questo impedisce confusioni o generazioni di dati errate.

Dove l'ingegneria del contesto brilla di più

Alcuni degli usi piú interessanti già mostrano l'impatto dell’ingegneria ben fatta:

    • Agenti di supporto clienti che richiamano problemi precedenti e combinano questa conoscenza con documenti interni per offrire risposte informate.
    • Agenti per sviluppatori che collaborano con codici specifici e contesti di progetto per scrivere o correggere codici in modo più efficiente.
    • Agenti per dati che interrogano pannelli aziendali, fornendo risposte basate su dati storici o in tempo reale.
    • Assistenti personali che imparano abitudini, preferenze e interazioni passate per ottimizzare task.

Nel caso di questi agenti, l’agente diventa una figura capace di collaborare digitalmente, non solo una strumento.

Le sfide dell'ingegneria del contesto

Sebbene l’ingegneria del contesto abbia un impatto enorme, non è priva di ostacoli. I piú pressanti includono:

    • Limiti di token: I modelli di reti neurali linguistiche grandi (LLM) operano all'interno di finestre di contesto fisse. Se gli input superano questa soglia, informazioni importanti possono essere perse.
    • Creazione di dati false: Quando i modelli mancano di informazioni chiare, possono inventare informazioni non corrette, producendo output errati o fuorvianti.
    • Deterioramento del contesto: Negli interazioni a lungo termine, specialmente senza una memoria persistente, gli agenti possono perdere di vista gli obiettivi o i compiti iniziali.

La gestione di questi problemi è parte dell’arte e della scienza dell'ingegneria del contesto, distingue agenti medi da quelli veramente intelligenti.

Ingengeria dei suggerimenti vs. Ingengeria del contesto: Qual è la differenza?

Per apprezzare davvero la forza dell'ingegneria del contesto, è utile confrontarla con la sua antesignana:

Immagina di costruire un assistente legale. Un approccio con ingegneria dei suggerimenti potrebbe apparire così:

"Sei un assistente legale. Riassumi questa contratto in inglese semplice."

Questo modello potrebbe offrire una risposta generica, solo in base al testo ricevuto. Ora, considera un approccio con ingegneria del contesto:

    • Il sistema recupera il contesto giuridico relativo, come leggi specifiche del territorio o precedenti interazioni con l'utente.
    • Carica il contratto direttamente da un archivio di documenti, allegando casi e preferenze precendenti.
  • Il