Agente
Un agente è un sistema guidato da un LLM che persegue un obiettivo su più passi decidendo quali azioni intraprendere, eseguendole tramite strumenti, osservando i risultati e ripetendo il ciclo finché il compito non è completato o non scatta una condizione di arresto. A differenza di una singola chiamata prompt-risposta, un agente mantiene lo stato tra le iterazioni e controlla il proprio flusso. Il tratto distintivo è che è il modello, non una logica cablata, a scegliere il passo successivo.
Flusso Agentico (Agentic Workflow)
Un flusso agentico è un'orchestrazione in cui un LLM ragiona, agisce e osserva ripetutamente all'interno di un ciclo di controllo, invece di produrre una sola risposta finale. Anthropic distingue i "workflow", dove il percorso è predefinito nel codice, dagli "agenti", dove il modello dirige dinamicamente il proprio processo. La maggior parte dei sistemi in produzione sono workflow con pochi passi agentici, perché i percorsi prevedibili sono più facili da testare ed economici da eseguire.
Azione
Un'azione è un'operazione concreta che un agente emette per modificare il mondo o raccogliere informazioni, tipicamente una chiamata a uno strumento con argomenti strutturati. L'agente propone un'azione, un esecutore la esegue e il risultato torna come osservazione. Limitare lo spazio delle azioni (un insieme di strumenti finito e ben tipizzato) è la leva principale per mantenere gli agenti affidabili.
ReAct
ReAct (Reasoning + Acting) è un pattern di prompting in cui il modello alterna ragionamento in linguaggio naturale ("Thought") con chiamate a strumenti ("Action") e relativi risultati ("Observation") in un ciclo ripetuto. Migliora il tasso di successo rispetto agli approcci di solo ragionamento o sola azione, perché consente al modello di pianificare e raccogliere evidenze nella stessa traccia. È l'antenato concettuale della maggior parte dei moderni cicli di tool-use.
Strumento (Tool)
Uno strumento è una capacità esterna esposta a un LLM come funzione invocabile con un nome, una descrizione e uno schema di input tipizzato, che permette al modello di recuperare dati o compiere azioni impossibili dai soli parametri. Il modello restituisce una richiesta strutturata di invocazione; il tuo codice la esegue e ne restituisce il risultato. I buoni strumenti sono pochi, ben documentati e difficili da usare male.
Tool Use (Function Calling)
Il tool use, detto anche function calling, è il meccanismo con cui un LLM produce una richiesta strutturata per invocare una funzione definita dallo sviluppatore invece di testo libero. L'API restituisce il nome dello strumento e gli argomenti JSON validati rispetto allo schema; l'applicazione esegue la funzione e ne reimmette il risultato per il turno successivo. È il fondamento di quasi tutte le capacità degli agenti.
RAG (Retrieval-Augmented Generation)
Il RAG è un pattern che recupera documenti rilevanti da una base di conoscenza esterna e li inietta nel prompt, così il modello risponde a partire dalle evidenze fornite anziché dalla memoria parametrica. Riduce le allucinazioni, consente dati freschi e proprietari e rende le risposte citabili. Un sistema RAG ha due metà: un retriever (ricerca/embedding) e un generatore (l'LLM condizionato sul contesto recuperato).
Retriever
Il retriever è il componente di un sistema RAG che, data una query, restituisce i passaggi più rilevanti da un corpus, tipicamente tramite similarità vettoriale, ricerca lessicale o un ibrido dei due. La sua qualità fissa il tetto della qualità delle risposte: il generatore non può usare evidenze che il retriever non riesce a far emergere. Il recupero si valuta di solito con recall@k e precision@k.
Embedding
Un embedding è un vettore numerico denso che rappresenta il significato semantico di un testo (o altri dati), in modo che significati simili siano mappati in punti vicini nello spazio vettoriale. Il recupero usa gli embedding per trovare passaggi i cui vettori sono vicini al vettore della query secondo una distanza come la similarità del coseno. Il modello di embedding e la sua dimensionalità devono essere coerenti tra indicizzazione e interrogazione.
Database Vettoriale
Un database vettoriale memorizza embedding e supporta la ricerca approssimata dei vicini più prossimi (ANN) su di essi, spesso con filtri sui metadati. Esempi sono pgvector, Pinecone, Weaviate, Qdrant e Milvus. La caratteristica distintiva è un indice ANN (come HNSW o IVF) che baratta risultati esatti per latenza di query sub-lineare su larga scala.
HNSW
HNSW (Hierarchical Navigable Small World) è un indice ANN basato su grafi che organizza i vettori in grafi di prossimità a livelli per una ricerca veloce in tempo logaritmico. Offre un eccellente compromesso recall-latenza ed è l'indice predefinito in molti vector store. I parametri chiave sono M (connettività del grafo) ed efConstruction/efSearch (sforzo in costruzione e in query).
Chunking
Il chunking è il processo di suddivisione dei documenti sorgente in pezzi della dimensione di un passaggio prima dell'embedding, così che ogni chunk sia autosufficiente e abbastanza piccolo da essere recuperato con precisione. Chunk troppo grandi diluiscono la rilevanza; chunk troppo piccoli perdono contesto. Le strategie tipiche suddividono sulla struttura (titoli, paragrafi) con un limite di token e un eventuale overlap.
Finestra di Contesto
La finestra di contesto è il numero massimo di token che un modello può considerare in una singola richiesta, comprendendo il system prompt, la cronologia, il contesto recuperato e l'output generato. Superarla impone troncamento o riassunto. Finestre più ampie facilitano ma non eliminano l'ingegneria del contesto, perché il segnale rilevante può comunque perdersi tra i distrattori.
Token
Un token è l'unità atomica che un modello legge e genera, di solito un frammento di sotto-parola prodotto da un tokenizer, in media circa tre quarti di una parola inglese. Prezzi, limiti di contesto e latenza si misurano tutti in token. Contare i token (non i caratteri) è essenziale per dimensionare i prompt e stimare i costi.
Prompt Engineering
Il prompt engineering è la pratica di progettare istruzioni, esempi e struttura di un prompt per guidare in modo affidabile il modello verso il comportamento desiderato. Le tecniche includono la definizione del ruolo, un inquadramento chiaro del compito, esempi few-shot, vincoli sul formato di output e richieste esplicite di ragionamento. Per gli agenti si estende alle descrizioni degli strumenti e alle condizioni di arresto del ciclo.
System Prompt
Un system prompt è il blocco di istruzioni ad alta priorità che definisce ruolo, ambito, regole e formato di output di un assistente per l'intera conversazione, separato dai messaggi turno per turno dell'utente. È il punto in cui collocare persona, guardrail e regole di grounding. I modelli lo pesano fortemente, quindi è il luogo principale dove codificare comportamenti non negoziabili.
Few-Shot Prompting
Il few-shot prompting fornisce nel prompt una manciata di esempi input/output così che il modello inferisca il pattern desiderato senza fine-tuning. Migliora l'aderenza al formato e l'accuratezza, specie per output strutturati. Gli esempi devono essere diversificati, corretti e rappresentativi dei casi limite, perché il modello li imita da vicino.
Chain-of-Thought
Il chain-of-thought (CoT) prompting chiede al modello di produrre passi di ragionamento intermedi prima della risposta finale, migliorando l'accuratezza su problemi a più passi come matematica e logica. Il compromesso è più token e più latenza. Nei prodotti rivolti all'utente il ragionamento viene spesso generato ma nascosto, mostrando solo la conclusione.
Allucinazione
Un'allucinazione è un output del modello fluente e sicuro ma fattualmente errato o non supportato da alcuna fonte. Negli agenti e nel RAG è il rischio centrale di affidabilità, tipicamente mitigato ancorando le risposte al contesto recuperato, richiedendo citazioni e permettendo al modello di dichiarare di non sapere. Non può essere eliminata del tutto, solo ridotta e rilevata.
Grounding
Il grounding è la pratica di vincolare la risposta del modello a evidenze fornite e verificabili (passaggi recuperati, output di strumenti, dati strutturati) anziché alla memoria parametrica. Un sistema ben ancorato rende ogni affermazione fattuale tracciabile a una fonte e rifiuta quando l'evidenza manca. È la difesa principale contro le allucinazioni nei sistemi RAG e agentici.
Faithfulness (Fedeltà)
La faithfulness misura se una risposta generata è implicata dal contesto fornito, senza affermazioni che il contesto non supporta. È una metrica centrale di valutazione del RAG (usata da RAGAS e strumenti simili) ed è distinta dalla correttezza: una risposta può essere fedele a una fonte sbagliata. Un'alta fedeltà è ciò che rende una risposta RAG affidabile e verificabile.
MCP (Model Context Protocol)
Il Model Context Protocol è uno standard aperto, introdotto da Anthropic, per connettere applicazioni LLM a strumenti, fonti di dati e prompt esterni attraverso un'interfaccia client-server uniforme. Un server MCP espone risorse, strumenti e prompt; un client MCP (l'app host) li consuma. Punta a essere la "USB-C delle integrazioni AI", sostituendo la colla ad-hoc per ogni strumento.
Schema di Funzione
Uno schema di funzione è la dichiarazione in JSON Schema di nome, descrizione e parametri tipizzati di uno strumento, che il modello usa per decidere quando e come chiamarlo. Descrizioni precise e tipi vincolati (enum, campi obbligatori) migliorano sensibilmente l'accuratezza delle chiamate. Lo schema è il contratto: il modello lo legge per pianificare e il tuo codice valida rispetto a esso.
Output Strutturato
L'output strutturato è una risposta del modello vincolata a un formato analizzabile dalla macchina, di solito JSON conforme a uno schema, così che il codice a valle possa consumarlo senza fragile parsing testuale. Le API moderne lo impongono tramite decodifica vincolata o l'interfaccia di tool-call. È essenziale per concatenare passi, popolare database e qualsiasi integrazione non conversazionale.
Orchestrazione
L'orchestrazione è lo strato che coordina passi, strumenti, modelli e stato di un'applicazione agentica, decidendo cosa eseguire e quando e come i risultati fluiscono tra le fasi. Framework come LangGraph, LlamaIndex e l'OpenAI Agents SDK forniscono primitive di orchestrazione. La scelta dell'orchestrazione plasma osservabilità, gestione degli errori e facilità di test del sistema.
Memoria
La memoria è il meccanismo con cui un agente conserva informazioni tra i turni o tra le sessioni oltre l'immediata finestra di contesto. La memoria a breve termine è il buffer della conversazione; la memoria a lungo termine persiste i fatti su uno store esterno (spesso un database vettoriale) e li recupera a richiesta. Senza una memoria esplicita, un agente è privo di stato tra le richieste.
Pianificatore (Planner)
Un pianificatore è il componente o passo di prompt che scompone un obiettivo di alto livello in un insieme ordinato di sotto-compiti prima che inizi l'esecuzione. Le architetture plan-and-execute separano la pianificazione dall'azione, così il piano può essere ispezionato, messo in cache o rivisto. La pianificazione migliora l'affidabilità sui compiti lunghi ma aggiunge latenza e una modalità di fallimento se il piano stesso è sbagliato.
Sistema Multi-Agente
Un sistema multi-agente suddivide un problema tra più agenti specializzati (per esempio un ricercatore, un programmatore e un revisore) che collaborano, spesso coordinati da un agente orchestratore. Può migliorare la qualità su compiti scomponibili ma moltiplica costo, latenza e complessità di coordinamento. La guida comune è ricorrervi solo quando un singolo agente con buoni strumenti si dimostra insufficiente.
Guardrail
I guardrail sono i controlli di sicurezza e di policy posti attorno agli input e agli output di un LLM, come validazione degli input, filtri sui contenuti, strumenti in allow-list, verifiche dello schema di output e gate di approvazione umana per azioni rischiose. Vincolano l'agente a comportamenti accettabili anche quando il modello sbaglia. La difesa in profondità, applicata su più strati, è più robusta di un singolo controllo.
Human-in-the-Loop
Lo human-in-the-loop (HITL) è un design in cui una persona rivede, approva o corregge le azioni di un agente in punti di controllo definiti, specialmente prima di operazioni irreversibili o ad alto impatto. Baratta autonomia per sicurezza ed è lo standard per agenti che inviano messaggi, spostano denaro o modificano sistemi in produzione. Gate di approvazione ben posizionati sono spesso ciò che separa una demo da un agente distribuibile.
Temperature
La temperature è un parametro di campionamento che controlla la casualità dell'output del modello: valori bassi lo rendono più deterministico e focalizzato, valori alti più vario e creativo. Per gli agenti e i compiti di estrazione si preferisce di solito una temperature bassa per coerenza; per l'ideazione un valore più alto aiuta. Interagisce con top-p e va regolata, non lasciata ai valori predefiniti alla cieca.
Top-p (Nucleus Sampling)
Il top-p, o nucleus sampling, limita la selezione dei token al più piccolo insieme di candidati la cui probabilità cumulativa supera una soglia p, campionando solo da quel nucleo. È un'alternativa alla temperature per controllare la diversità ed è spesso usato insieme a essa. Abbassare il top-p stringe l'output verso i token ad alta probabilità.
Prompt Injection
Il prompt injection è un attacco in cui istruzioni avversarie inserite nell'input dell'utente o in contenuti recuperati dirottano un agente a ignorare le istruzioni originali o a usare male i propri strumenti. L'injection indiretto, in cui il payload si nasconde in una pagina web o in un documento recuperato, è particolarmente pericoloso per gli agenti che usano strumenti. Le mitigazioni includono isolamento dell'input, strumenti a privilegio minimo e approvazione umana per le azioni sensibili.
Jailbreak
Un jailbreak è un tentativo di aggirare l'addestramento alla sicurezza o le istruzioni di sistema di un modello per ottenere comportamenti proibiti o fuori ambito, spesso tramite framing di role-play od offuscamento. Si distingue dal prompt injection perché prende di mira direttamente le policy del modello anziché dirottare le istruzioni di un'applicazione. Le difese combinano la sicurezza a livello di modello con i guardrail a livello applicativo.
Fine-Tuning
Il fine-tuning adatta un modello pre-addestrato a un compito o stile specifico addestrandolo ulteriormente su un dataset etichettato curato, modificandone i pesi. Può migliorare aderenza al formato, tono di dominio ed efficienza su compiti ristretti, ma è più costoso e meno flessibile di prompting o RAG per iniettare conoscenza. La regola comune è: prova prima prompting e RAG, fai fine-tuning per il comportamento, non per i fatti.
RLHF
L'RLHF (Reinforcement Learning from Human Feedback) è un metodo di addestramento che allinea un modello alle preferenze umane addestrando un modello di reward su confronti umani tra output, e poi ottimizzando la policy rispetto a esso. È una ragione chiave per cui i moderni modelli di chat seguono le istruzioni e rifiutano richieste dannose. Plasma il comportamento predefinito ma non sostituisce grounding e guardrail a livello applicativo.
Valutazione (Eval)
La valutazione è la misurazione sistematica della qualità di un sistema LLM rispetto a un test set fisso, usando metriche come faithfulness, answer relevancy, context recall e successo del compito. Per gli agenti, le eval coprono anche la correttezza delle chiamate agli strumenti e il completamento end-to-end. Trattare le eval come gate di regressione in CI è la disciplina che trasforma il ritocco dei prompt in ingegneria.
LLM-as-a-Judge
L'LLM-as-a-judge è una tecnica di valutazione che usa un modello capace per assegnare punteggi o confrontare output rispetto a una rubrica o a un riferimento, scalando la valutazione oltre la revisione manuale. È utile per qualità soggettive come utilità e fedeltà, ma va calibrata rispetto a etichette umane e tenuta d'occhio per i bias (come preferire risposte più lunghe o elencate per prime). È uno strumento per la scala, non un sostituto della verità di base.
Reranking
Il reranking è un secondo stadio di recupero che riordina un insieme iniziale di candidati con un modello più costoso e più accurato (tipicamente un cross-encoder) per portare in cima i passaggi migliori. Migliora la precision@k senza il costo di eseguire il modello pesante sull'intero corpus. Il pattern comune è un recupero ANN veloce di molti candidati, poi il rerank a un piccolo insieme finale.
Ricerca Ibrida
La ricerca ibrida combina il recupero lessicale (keyword/BM25) con il recupero vettoriale denso e fonde i punteggi, catturando sia i match esatti di termini sia la similarità semantica. Supera entrambi i metodi presi singolarmente su query eterogenee, specie quelle con termini rari, codici o nomi che gli embedding gestiscono male. I metodi di fusione dei punteggi includono il Reciprocal Rank Fusion (RRF).
Streaming
Lo streaming è la consegna dell'output del modello token per token man mano che viene generato, anziché attendere la risposta completa. Migliora nettamente la latenza percepita nelle interfacce di chat e consente agli agenti di agire sull'output parziale. Complica la gestione delle tool-call e il recupero dagli errori, quindi le pipeline di streaming richiedono un'attenta gestione dello stato.
Latenza
La latenza è il tempo tra una richiesta e una risposta utilizzabile, comunemente suddiviso in time-to-first-token e tempo totale di generazione. Per gli agenti si accumula a ogni iterazione del ciclo e a ogni tool call, quindi un agente a cinque passi può sembrare lento anche con un modello veloce. Ridurre il numero di iterazioni, parallelizzare le tool call e usare modelli più piccoli per i sotto-compiti sono le leve principali.
Prompt Caching
Il prompt caching riusa la rappresentazione calcolata di un prefisso di prompt statico (come un lungo system prompt o un blocco few-shot) tra più richieste, riducendo costo e latenza per la porzione ripetuta. È offerto dalle principali API ed è particolarmente prezioso per gli agenti che reinviano un grande contesto fisso a ogni turno. La parte cacheabile deve essere un prefisso stabile collocato prima del contenuto variabile.
Idempotenza
L'idempotenza è la proprietà per cui eseguire un'operazione più volte ha lo stesso effetto di eseguirla una sola volta. Negli agenti è cruciale perché retry, cicli ed esecuzione at-least-once possono rieseguire una tool call; una chiave di idempotenza consente all'esecutore di deduplicare gli effetti collaterali. Progettare gli strumenti per essere idempotenti è ciò che rende sicuri i retry degli agenti.
Token Budget
Un token budget è l'allocazione esplicita della finestra di contesto tra system prompt, cronologia, contesto recuperato e output atteso, pianificata in modo che la richiesta rientri nella finestra con un margine. Gestirlo comporta tagliare la cronologia, limitare i chunk recuperati e riassumere i turni più vecchi. Senza un budget, gli agenti a lunga esecuzione degradano silenziosamente man mano che il contesto trabocca.
Context Engineering
Il context engineering è la disciplina di assemblare nella finestra del modello esattamente le informazioni giuste per un dato passo: i passaggi recuperati rilevanti, i risultati degli strumenti, la memoria e le istruzioni, e nulla che distragga. Generalizza il prompt engineering all'intero contesto, assemblato dinamicamente, di un agente. Un buon context engineering è spesso la correzione a più alto impatto per la qualità di un agente.
Condizione di Arresto
Una condizione di arresto è la regola che termina il ciclo di un agente, come il modello che emette una risposta finale, il raggiungimento di un numero massimo di iterazioni, l'esaurimento di un budget di token o costo, o il superamento di una soglia di errori. Gli agenti robusti vincolano sempre i propri cicli per prevenire costi fuori controllo e loop infiniti. Una condizione di arresto mancante o debole è una causa comune di fallimenti costosi.
Similarità del Coseno
La similarità del coseno misura la vicinanza di due vettori tramite il coseno dell'angolo tra essi, ignorando la magnitudine, con 1 che indica direzione identica e 0 ortogonalità. È la metrica di distanza più comune per confrontare embedding testuali nel recupero. Molti vector store normalizzano i vettori così che similarità del coseno e prodotto scalare risultino equivalenti.