Che cos'è il prompt engineering?
Il prompt engineering è la pratica di progettare l'input a un modello linguistico - istruzioni, esempi, contesto e formattazione - perché il modello produca in modo affidabile l'output di cui hai bisogno. Comprende la scelta del system prompt, la strutturazione del compito, la fornitura di esempi, l'impostazione dei parametri di decodifica e la validazione dei risultati. Man mano che le applicazioni sono diventate più complesse si è ampliato in ingegneria del contesto: la cura dell'intero stato informativo che il modello vede, non solo la formulazione di una singola istruzione.
Qual è la differenza tra system prompt e user prompt?
Un system prompt imposta un comportamento duraturo e valido per l'intera conversazione - ruolo, vincoli, tono, formato di output e regole di sicurezza - mentre uno user prompt porta la richiesta specifica di un singolo turno. Il system prompt è il posto giusto per tutto ciò che deve valere per l'intera sessione, e con l'API Anthropic si passa nel parametro dedicato system e non come messaggio. Tenere le istruzioni stabili nel system prompt e il contenuto variabile nei turni utente rende anche efficace il caching dei prompt.
Quando usare il few-shot invece dello zero-shot prompting?
Usa lo zero-shot quando il compito è comune e basta un'istruzione chiara, perché mantiene i prompt brevi ed economici. Passa al few-shot quando serve un formato di output specifico, una convenzione di etichettatura di dominio o più coerenza di quanta diano le sole istruzioni - pochi esempi corretti e diversificati permettono al modello di inferire il pattern per analogia. Se un paio di esempi non stabilizzano il comportamento, spesso il problema è un'istruzione ambigua più che un numero insufficiente di esempi.
Come evito che il modello allucini?
La difesa più efficace è l'ancoraggio: recupera contesto autorevole e istruisci il modello a rispondere solo da quel contesto e a dire che non sa quando il contesto è insufficiente. Abbassare la temperatura, chiedere citazioni ai passaggi forniti e validare le affermazioni rispetto alle fonti riducono ulteriormente l'invenzione. Nessun prompt elimina del tutto le allucinazioni, quindi i sistemi di produzione abbinano l'ancoraggio a una verifica programmatica dei fatti critici.
Qual è la differenza tra RAG e fine-tuning?
Il RAG inietta documenti rilevanti nel prompt al momento della query, così la conoscenza resta attuale e aggiornabile senza riaddestramento e le risposte possono citare le fonti. Il fine-tuning modifica i pesi del modello per interiorizzare un comportamento, un formato o uno stile, ed è migliore per insegnare una competenza coerente che per fornire fatti che cambiano. Molti sistemi di produzione li combinano: fine-tuning per la forma e il comportamento, recupero per fatti aggiornati.
Come dovrei strutturare un prompt complesso?
Separa il prompt in sezioni chiaramente etichettate - ruolo, istruzioni, contesto o documenti, esempi e richiesta dell'utente - usando delimitatori espliciti perché il modello distingua le istruzioni dai dati. Per Claude, Anthropic consiglia tag in stile XML come e per questi confini. Metti il contenuto lungo e stabile per primo per sfruttare il caching dei prompt e termina con un indicatore di output che mostri esattamente come deve iniziare la risposta.
Quale temperatura dovrei usare?
Usa una temperatura bassa (vicina a zero) per estrazione, classificazione, output strutturato e compiti fattuali in cui vuoi determinismo e coerenza. Usa una temperatura più alta per brainstorming, scrittura creativa o per generare alternative diverse. Regola temperatura oppure top-p, non entrambi, e ricorda che anche temperatura zero non è perfettamente deterministica sulla maggior parte dei modelli ospitati.
Come ottengo output JSON affidabile da un modello?
Preferisci la funzionalità di output strutturato o di tool/function calling della piattaforma, che vincola la generazione a uno schema che definisci tu, anziché chiedere JSON in testo libero e interpretarlo. Se devi proprio chiedere JSON direttamente, fornisci lo schema esatto, dai un esempio, pre-riempi la parentesi graffa di apertura e aggiungi una sequenza di stop - e poi valida sempre il risultato interpretato e gestisci i fallimenti. Trattare l'output del modello come non attendibile e validarlo è imprescindibile in produzione.
Che cos'è il prompt injection e come mi difendo?
Il prompt injection è un attacco in cui istruzioni avversariali nascoste nell'input dell'utente o in contenuti recuperati/esterni (injection indiretta) ingannano il modello facendogli ignorare le regole o compiere azioni indesiderate; è il rischio numero uno nella OWASP Top 10 per le applicazioni LLM. Le difese sono stratificate: delimita ed etichetta il contenuto non attendibile, istruisci il modello a trattarlo come dato e non come istruzione, vincola quali strumenti e output sono possibili e valida gli output nel codice. Nessun controllo a livello di prompt da solo è sufficiente, quindi è essenziale una progettazione a privilegio minimo attorno al modello.
Come valuto se un prompt è buono?
Costruisci una eval: un dataset di input rappresentativi con output attesi o criteri di giudizio, e valuta le varianti di prompt rispetto ad esso anziché giudicare a sensazione. Per i compiti aperti usa un LLM-as-a-judge con una rubrica, calibrato su etichette umane, e per il RAG traccia fedeltà e pertinenza della risposta. Un set aureo fisso ti permette anche di rilevare regressioni quando cambi il prompt o aggiorni il modello.
La chain-of-thought migliora sempre i risultati?
La chain-of-thought aiuta in modo affidabile su compiti di ragionamento a più passi, matematica e pianificazione, ma aggiunge latenza e costo in token e può perfino peggiorare i compiti semplici dove introduce deliberazione superflua. Sui modelli di ragionamento moderni il pensiero esteso è spesso integrato e controllato da un'impostazione di sforzo o budget di ragionamento anziché da un'istruzione "ragiona passo dopo passo". Usala dove il compito richiede davvero passi intermedi e misura anziché assumere.
Che cos'è il caching dei prompt e quando aiuta?
Il caching dei prompt memorizza la rappresentazione elaborata di un prefisso di prompt stabile, così che le richieste ripetute che condividono quel prefisso saltino il ricalcolo, riducendo sia latenza sia costo. Aiuta soprattutto quando un lungo system prompt, uno schema, un insieme di strumenti o un documento viene riusato in molte chiamate - ad esempio un agente di supporto clienti con un blocco di policy fisso. Con l'API Anthropic collochi i punti di interruzione cache_control sul contenuto stabile e tieni il contenuto variabile dopo di essi.
Dovrei usare un agente o un workflow fisso?
Usa un workflow fisso quando i passi sono noti in anticipo, perché l'orchestrazione codificata è più prevedibile, testabile ed economica. Ricorri a un agente - dove il modello decide l'azione successiva in un ciclo - solo quando il percorso varia davvero con l'input e non può essere enumerato. La linea guida di Anthropic è partire dalla cosa più semplice che funziona e aggiungere autonomia agentica solo quando la sua flessibilità ripaga il costo in affidabilità e debuggabilità.
Come riduco costo e latenza dei miei prompt?
Taglia prima i token: snellisci il system prompt, recupera meno passaggi e più rilevanti e pota la cronologia della conversazione, perché ogni token costa denaro e tempo. Usa il caching dei prompt per i prefissi stabili, instrada le richieste facili verso un modello più piccolo, limita max_tokens e fai streaming dell'output per abbassare la latenza percepita. Misura la latenza P95 e P99, non solo la media, perché è la coda lenta che gli utenti percepiscono.
Quanti esempi includere in un prompt few-shot?
Parti con tre-cinque esempi diversificati e corretti che coprano le variazioni e i casi limite che ti interessano, poi aggiungine altri solo se una eval mostra che aiuta. Più esempi possono migliorare l'accuratezza fino a un certo punto ma aumentano il costo e possono soffocare il compito vero nella finestra di contesto. Il numero giusto è empirico, quindi lascia decidere al tuo set di valutazione anziché tirare a indovinare.
Come gestisco la cronologia in una chat lunga?
Tratta la cronologia come parte del budget di token e curala: tieni il system prompt e i turni recenti, e riassumi o scarta il contenuto più vecchio quando smette di contribuire al compito corrente. Lasciare crescere la cronologia grezza senza limiti degrada la qualità (context rot) e gonfia costo e latenza. I pattern comuni includono riassunti progressivi, recupero sui turni passati e il fissaggio dei soli fatti che devono persistere.
Il prompt engineering può sostituire del tutto fine-tuning o RAG?
Spesso sì per comportamento, formato e stile di ragionamento, che il prompting orienta bene ed economicamente; ma no per due cose che i prompt non possono fornire - conoscenza che il modello non ha, per cui serve il RAG, e una competenza specializzata profondamente coerente su larga scala, che il fine-tuning offre in modo più affidabile. Il default pratico è esaurire prima il prompt engineering perché è la leva più rapida ed economica, poi aggiungere il recupero per i fatti e il fine-tuning solo quando il prompting si arena. La maggior parte dei sistemi di produzione finisce per combinare tutti e tre.