Prompt efficaci per il ragionamento esteso
Mantenga i prompt semplici, eviti le istruzioni passo passo e lasci che il modello ragioni
Prompt efficaci per il ragionamento esteso è una lezione AI Prompt Engineering gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Prompt Engineering, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Prompt Engineering include 4 lezioni in totale.
Scrivere prompt per i modelli di ragionamento è diverso
Le intuizioni sui prompt che ha sviluppato per i modelli standard — chain-of-thought, istruzioni passo passo ed esempi few-shot — spesso le sono controproducenti con i modelli di ragionamento.
I modelli di ragionamento svolgono già un ragionamento interno sofisticato. Dire loro esattamente come pensare può interferire con questo processo. I prompt migliori per i modelli di ragionamento sono più semplici e diretti rispetto a quelli per i modelli standard.
Non impartisca istruzioni passo passo
Con i modelli standard, può scrivere: «Ragioni passo dopo passo. Prima consideri X, poi consideri Y e infine tragga la conclusione Z.» Questo impianto è utile perché i modelli standard non eseguono automaticamente questo tipo di ragionamento.
Con i modelli di ragionamento, questo impianto può vincolare il ragionamento interno del modello a un percorso non ottimale. Indichi invece chiaramente il problema e lasci che sia il modello a stabilire come ragionare al riguardo.
# Standard model: needs scaffolding
STANDARD_PROMPT = (
'Let us think step by step.\n'
'First, identify the variables.\n'
'Then, set up the equation.\n'
'Then, solve for x.\n'
'Finally, verify your answer.\n\n'
'Problem: If 3x + 7 = 22, what is x?'
)
# Reasoning model: just state the problem clearly
REASONING_PROMPT = (
'Solve: If 3x + 7 = 22, what is x?'
# The model handles the step-by-step internally
)
# Both produce correct answers; the reasoning model prompt is simpler
print('Reasoning model prefers the cleaner prompt')Esponga il problema in modo chiaro e completo
Benché debba semplificare il modo in cui impartisce istruzioni al modello di ragionamento, deve essere esaustivo riguardo a ciò che sta chiedendo. Fornisca subito tutto il contesto, i vincoli e i requisiti: il modello li utilizzerà durante il ragionamento interno.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
# Poor: vague problem statement
BAD_PROMPT = 'Write me a good sorting algorithm.'
# Good: clear, complete problem specification
GOOD_PROMPT = (
'Write a Python sorting algorithm with these requirements:\n'
'- Must sort a list of integers in ascending order\n'
'- Must work correctly on empty lists, single-element lists, and lists with duplicates\n'
'- Target time complexity: O(n log n) average case\n'
'- Must not use Python built-in sort() or sorted()\n'
'- Include a brief docstring and 3 test cases\n\n'
'Return only the code, no explanation.'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=8000,
thinking={'type': 'enabled', 'budget_tokens': 5000},
messages=[{'role': 'user', 'content': GOOD_PROMPT}]
)
print(next(b.text for b in response.content if b.type == 'text')[:300])Impostare correttamente budget_tokens
budget_tokens controlla il numero massimo di token di ragionamento. Impostarlo correttamente è il principale parametro di regolazione dei modelli di ragionamento:
- 1,000-2,000: problemi semplici, calcoli rapidi
- 5,000-10,000: programmazione e analisi di complessità media
- 16,000+: problemi matematici molto difficili, progettazione di sistemi complessi, problemi di livello di ricerca
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
def reasoning_call(prompt, budget_tokens=5000):
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=budget_tokens + 2048, # max_tokens must exceed budget_tokens
thinking={
'type': 'enabled',
'budget_tokens': budget_tokens
},
messages=[{'role': 'user', 'content': prompt}]
)
answer = next((b.text for b in response.content if b.type == 'text'), '')
thinking_blocks = [b for b in response.content if b.type == 'thinking']
print(f'Thinking blocks: {len(thinking_blocks)}')
return answer
# Simple problem: small budget
reasoning_call('What is 17 * 23?', budget_tokens=1000)
# Complex problem: larger budget
reasoning_call(
'Design a distributed rate limiter that handles 100k requests/second.',
budget_tokens=10000
)Prompt di sistema minimi
Per i modelli di ragionamento, mantenga minimi i prompt di sistema. Il ragionamento interno del modello è la sua capacità principale: non lo vincoli eccessivamente con lunghe istruzioni sul comportamento.
Buoni prompt di sistema per i modelli di ragionamento: definisca il ruolo, stabilisca il formato dell'output e specifichi i vincoli. Nient'altro.
# Over-engineered system prompt (hurts reasoning models)
BAD_SYSTEM = (
'You are an expert Python developer. '
'Always think step by step. '
'First understand the problem. '
'Then plan your approach. '
'Then implement step by step. '
'Check each step before proceeding. '
'Finally review your solution. '
'Format all code with comments. '
'Add error handling to every function. '
'...'
)
# Minimal system prompt (helps reasoning models)
GOOD_SYSTEM = (
'You are an expert Python developer. '
'Return only code unless explanation is explicitly requested. '
'Use type hints and docstrings.'
)
# The model's internal reasoning handles the restLe istruzioni sul formato dell'output restano importanti
Anche se non dovrebbe indicare come ragionare, dovrebbe specificare chiaramente il formato di output desiderato. Si tratta di qualcosa di distinto dalle istruzioni sul ragionamento: indica al modello che cosa restituire, non come pensare.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
# Clear output format instructions are still important
prompt = (
'Analyze the time and space complexity of this Python function:\n\n'
'def bubble_sort(arr):\n'
' n = len(arr)\n'
' for i in range(n):\n'
' for j in range(0, n-i-1):\n'
' if arr[j] > arr[j+1]:\n'
' arr[j], arr[j+1] = arr[j+1], arr[j]\n\n'
'Return your answer as JSON with keys: '
'time_complexity, space_complexity, explanation (2 sentences max).'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=5000,
thinking={'type': 'enabled', 'budget_tokens': 3000},
messages=[{'role': 'user', 'content': prompt}]
)
print(next(b.text for b in response.content if b.type == 'text'))Meno esempi few-shot
I modelli standard traggono grande vantaggio da 3-5 esempi few-shot. I modelli di ragionamento ne traggono meno vantaggio e un numero eccessivo di esempi può persino essere dannoso, perché riempie la finestra di contesto con contenuti che interferiscono con il ragionamento interno.
Per i modelli di ragionamento, spesso la scelta ottimale è usare da 0 a 1 esempio. Utilizzi gli esempi solo quando il formato dell'output è insolito o ambiguo.
# Standard model: 3 few-shot examples improve performance significantly
STANDARD_FEW_SHOT = (
'Q: 2 + 2 = ?\nA: 4\n\n'
'Q: 5 * 6 = ?\nA: 30\n\n'
'Q: 100 / 4 = ?\nA: 25\n\n'
'Q: 17 + 38 = ?\nA:'
)
# Reasoning model: 0 examples is fine; 1 is enough if format is unclear
REASONING_DIRECT = 'What is 17 + 38?'
# The reasoning model already knows math — examples are overhead, not signal
# Only use 1 example when the output format needs clarification:
REASONING_FORMAT_EXAMPLE = (
'Answer math questions returning only the number.\n'
'Example: Q: 2 + 2 A: 4\n\n'
'Q: 17 + 38'
)Gestire l'incertezza negli output dei modelli di ragionamento
I modelli di ragionamento esprimono più spesso una reale incertezza rispetto ai modelli standard, perché hanno effettivamente riflettuto sul problema. Progetti le sue applicazioni in modo che gestiscano con naturalezza le risposte formulate con cautela.
import anthropic
import re
client = anthropic.Anthropic(api_key='sk-ant-...')
def reasoning_with_confidence(question):
prompt = (
f'{question}\n\n'
f'At the end of your answer, include a confidence statement: '
f'Confidence: [HIGH/MEDIUM/LOW] — [one sentence why]'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=8000,
thinking={'type': 'enabled', 'budget_tokens': 5000},
messages=[{'role': 'user', 'content': prompt}]
)
text = next(b.text for b in response.content if b.type == 'text')
# Parse confidence
match = re.search(r'Confidence: (HIGH|MEDIUM|LOW)', text)
confidence = match.group(1) if match else 'UNKNOWN'
print(f'Confidence: {confidence}')
return text, confidence
answer, conf = reasoning_with_confidence(
'What will AI capabilities look like in 2030?'
)Memorizzare nella cache gli output dei modelli di ragionamento
Le chiamate ai modelli di ragionamento sono costose e lente. Memorizzi nella cache i risultati delle richieste ripetute o prevedibili. Poiché i token di ragionamento possono essere molto numerosi, la memorizzazione nella cache evita di pagare nuovamente latenza e costi per le chiamate ripetute.
import hashlib
import json
import os
cache_dir = '/tmp/reasoning_cache'
os.makedirs(cache_dir, exist_ok=True)
def cached_reasoning_call(prompt, budget_tokens=5000):
# Create cache key from prompt
key = hashlib.sha256(f'{prompt}:{budget_tokens}'.encode()).hexdigest()
cache_file = os.path.join(cache_dir, f'{key}.json')
if os.path.exists(cache_file):
with open(cache_file) as f:
cached = json.load(f)
print('Cache hit!')
return cached['answer']
# Cache miss: call the model
answer = reasoning_call(prompt, budget_tokens)
with open(cache_file, 'w') as f:
json.dump({'prompt': prompt, 'answer': answer}, f)
return answerVerificare gli output dei modelli di ragionamento
I modelli di ragionamento commettono meno errori, ma non sono infallibili, soprattutto riguardo a fatti specifici di un dominio o ad argomenti all'avanguardia. Verifichi sempre gli output su cui si baseranno delle azioni in contesti ad alto rischio.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
def reasoning_with_verification(question):
# Step 1: Get reasoning model answer
r1 = client.messages.create(
model='claude-opus-4-5',
max_tokens=10000,
thinking={'type': 'enabled', 'budget_tokens': 8000},
messages=[{'role': 'user', 'content': question}]
)
answer = next(b.text for b in r1.content if b.type == 'text')
# Step 2: Independent verification call
verify_prompt = (
f'Question: {question}\n\n'
f'Proposed answer: {answer}\n\n'
f'Is this answer correct? Respond with CORRECT, INCORRECT, or UNCERTAIN, '
f'followed by a brief explanation.'
)
r2 = client.messages.create(
model='claude-opus-4-5',
max_tokens=256,
messages=[{'role': 'user', 'content': verify_prompt}]
)
verification = r2.content[0].text
print(f'Verification: {verification[:100]}')
return answer, verificationChecklist pratica per i prompt dei modelli di ragionamento
Quando scrive prompt per i modelli di ragionamento, segua questa checklist:
- Esponga il problema in modo chiaro e completo
- NON includa istruzioni per un ragionamento passo passo
- Mantenga breve il prompt di sistema (solo ruolo, formato e vincoli)
- Utilizzi al massimo 0-1 esempio few-shot
- Specifichi esplicitamente il formato dell'output
- Imposti
budget_tokensin proporzione alla complessità del problema - Pianifichi una latenza di risposta di 10-60 secondi
Verifica delle conoscenze: scrivere prompt per i modelli di ragionamento
Perché si consiglia di usare prompt più semplici con i modelli di ragionamento rispetto ai modelli standard?
Riepilogo: prompt efficaci per il ragionamento esteso
I modelli di ragionamento richiedono prompt più semplici e diretti rispetto ai modelli standard. Non indichi come ragionare: esponga il problema in modo chiaro e completo, quindi lasci che la deliberazione interna del modello gestisca la strategia. Mantenga minimi i prompt di sistema: solo ruolo, formato dell'output e vincoli. Utilizzi da 0 a 1 esempio few-shot. Imposti budget_tokens in base alla complessità del problema (1K per i problemi semplici, 10K+ per quelli difficili). Preveda una latenza significativa e memorizzi i risultati nella cache quando possibile. Specifichi esplicitamente il formato dell'output: è l'unico ambito in cui istruzioni dettagliate restano utili.
Domande Frequenti
La lezione «Prompt efficaci per il ragionamento esteso» è gratuita?
Sì — il testo completo di «Prompt efficaci per il ragionamento esteso» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Prompt Engineering, passa a CoddyKit PRO. Il corso AI Prompt Engineering include 4 lezioni in totale.
Cosa imparerò in «Prompt efficaci per il ragionamento esteso»?
Mantenga i prompt semplici, eviti le istruzioni passo passo e lasci che il modello ragioni Eserciti AI Prompt Engineering con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare AI Prompt Engineering?
Non è richiesta alcuna esperienza precedente. AI Prompt Engineering su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Prompt efficaci per il ragionamento esteso»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione AI Prompt Engineering?
Sì. Ogni lezione AI Prompt Engineering include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Differenze tra i modelli di reasoning
- Prompt efficaci per il ragionamento esteso
- Quando usare modelli di reasoning o standard
- Compromessi tra costi e latenza