Prompt Engineering Basics: A Practical Glossary Entry
Una spiegazione chiara e senza fronzoli dei fondamenti del prompt engineering, con esempi e tecniche che puoi usare subito.
Il prompt engineering è la pratica di scrivere testo di input che induce un modello linguistico a produrre l'output che desideri davvero. Si colloca da qualche parte tra la scrittura e il debugging: non stai codificando nel senso tradizionale, ma stai testando ipotesi su come un modello interpreta le istruzioni e iterando quando fa errori.
Che cosa è effettivamente un prompt
Un prompt è tutto ciò che invii a un modello prima che generi una risposta — istruzioni, contesto, esempi e la domanda o il compito vero e proprio. La maggior parte dei modelli chat moderni lo divide in ruoli: un messaggio di sistema (imposta il comportamento e i vincoli), messaggi utente (la richiesta effettiva) e talvolta messaggi assistente (turni precedenti o esempi). Se stai usando un'API come quella di OpenAI o Anthropic, li imposterai esplicitamente nel codice. Se stai usando un'interfaccia chat, il prompt di sistema è spesso nascosto o impostato una sola volta all'inizio di una conversazione.
Perché la stessa domanda riceve risposte diverse
I modelli linguistici prevedono il token successivo in base a tutto ciò che lo ha preceduto, inclusa la tua formulazione, l'ordine delle parole e persino la punteggiatura. Chiedi "Spiega la ricorsione" e riceverai una risposta generica da libro di testo. Chiedi "Spiega la ricorsione a uno sviluppatore junior che capisce i cicli ma non la ricorsione, usando un singolo esempio Python con un caso base e un caso ricorsivo" e otterrai qualcosa di molto più utile. La specificità del tuo input modella direttamente la specificità dell'output. Questo è lo spunto fondamentale di cui i principianti hanno bisogno: il modello non sta leggendo i tuoi pensieri, sta facendo pattern-matching sulle tue parole.
Tecniche fondamentali che vale la pena imparare per prime
Zero-shot prompting significa chiedere direttamente senza esempi: "Scrivi un regex che corrisponda ai numeri di telefono negli USA." Funziona bene per compiti comuni e ben definiti.
Few-shot prompting significa fornire al modello uno o più esempi dello schema input/output che desideri prima di chiedergli di continuare lo schema. Se vuoi che un modello classifichi i ticket di supporto in categorie, mostrargli prima tre esempi etichettati produrrà risultati più coerenti che descrivere le categorie solo in prosa.
Chain-of-thought prompting chiede al modello di ragionare step by step prima di dare una risposta finale, spesso aggiungendo letteralmente "pensa step by step" oppure chiedendogli di mostrare il suo lavoro. Questo aiuta con la matematica, la logica e i compiti multi-step, anche se aumenta anche l'utilizzo dei token e la lunghezza della risposta.
Role prompting assegna al modello una persona — "Sei un ingegnere della sicurezza senior che revisionano questo codice per cercare vulnerabilità" — il che può cambiare il tono, il vocabolario e il tipo di dettagli che priorizza. Non concede al modello nuove capacità, ma ancora l'output allo stile che desideri.
La struttura conta più dell'ingegno
I principianti spesso assumono che il prompt engineering sia questione di trovare una frase magica. In pratica, la struttura batte l'ingegno quasi sempre. Dividi il tuo prompt in parti chiare: contesto, compito, vincoli e formato. Per esempio:
Contesto: Stai revisionando un'app Python Flask per un audit di sicurezza.
Compito: Identifica i rischi di SQL injection nel codice sottostante.
Vincoli: Contrassegna solo i problemi nelle route /login e /search.
Formato: Restituisci un elenco numerato con il numero di riga e una spiegazione di una frase.
Questo tipo di formattazione esplicita riduce l'ambiguità e rende gli output più facili da analizzare a livello di programmazione se stai concatenando i prompt insieme in uno script.
Errori comuni agli inizi
Un errore frequente è la vaghezza mascherata da brevità — chiedere "migliora questo" senza definire cosa significhi "migliore" (più veloce? più leggibile? più sicuro?). Un altro è riempire un singolo prompt con cinque compiti non correlati, il che tende a produrre risposte superficiali a tutti e cinque invece di una risposta solida a uno. I principianti dimenticano anche che i modelli non hanno memoria tra le chiamate API separate a meno che tu non passi esplicitamente la cronologia della conversazione precedente, il che confonde le persone quando costruiscono qualcosa di stateful.
Testare e iterare come un ingegnere
Tratta i prompt come codice che versioni e testi, non come testo usa e getta che butti via. Mantieni un log delle variazioni del prompt e dei loro output, soprattutto per qualsiasi cosa che riutilizzerai in produzione, come un bot di supporto clienti o un assistente di revisione del codice. Piccoli cambiamenti di formulazione — "riassumi" vs "riassumi in esattamente tre punti elenco" — possono produrre risultati significativamente diversi, e l'unico modo per sapere cosa funziona per il tuo caso d'uso è eseguire il confronto tu stesso piuttosto che assumere.
Dove questo si inserisce nel costruire cose reali
Una volta che i prompt diventano affidabili, il passo successivo è di solito l'uso programmatico: chiamare un'API con le impostazioni di temperature e max_tokens sintonizzate per il tuo compito, aggiungere logica di retry per output malformati e convalidare le risposte prima che raggiungano un utente. È qui che il prompt engineering inizia a sovrapporsi alla disciplina di ingegneria del software regolare, ed è un buon punto per passare dalla sperimentazione in una finestra chat alla scrittura di script veri.
Se vuoi andare oltre, consulta i segmenti di Korra Studio su come lavorare con le API LLM in Python e su come costruire da zero piccoli strumenti alimentati da AI.
Scritto con assistenza AI, revisionato e pubblicato da Michal Pilch (CISSP), Korra Studio.
Questa è una nota dalla knowledge base di Korra Studio — la piattaforma abbina ogni argomento a mentoring 1-to-1.
Inizia gratisarrow_forward