Prompts eficazes para raciocínio prolongado
Mantenha os prompts simples, evite instruções passo a passo e confie no raciocínio do modelo.
Prompts eficazes para raciocínio prolongado é uma aula grátis de AI Prompt Engineering no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Prompt Engineering, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Prompt Engineering inclui 4 aulas no total.
Criar instruções para modelos de raciocínio é diferente
As intuições sobre instruções que foram desenvolvidas para modelos padrão — cadeia de raciocínio, instruções passo a passo e exemplos de referência — muitas vezes acabam atrapalhando quando se trata de modelos de raciocínio.
Os modelos de raciocínio já realizam um raciocínio interno sofisticado. Dizer-lhes exatamente como pensar pode interferir nesse processo. As melhores instruções para modelos de raciocínio são mais simples e diretas que as instruções para modelos padrão.
Não dê instruções passo a passo
Com modelos padrão, pode-se escrever: "Pense passo a passo. Primeiro, considere X; depois, considere Y; por fim, conclua Z." Essa estrutura de apoio ajuda porque os modelos padrão não fazem isso automaticamente.
Com modelos de raciocínio, essa estrutura pode restringir o raciocínio interno do modelo a um caminho abaixo do ideal. Em vez disso, apresente o problema com clareza e deixe que o modelo determine como raciocinar sobre ele.
# 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')Apresente o problema de forma clara e completa
Embora seja importante simplificar como instruir o modelo de raciocínio, deve-se ser minucioso sobre o que está sendo solicitado. Forneça todo o contexto, as restrições e os requisitos desde o início — o modelo os utilizará durante o raciocínio 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])Configurando budget_tokens de forma adequada
budget_tokens controla o número máximo de tokens de raciocínio. Defini-lo corretamente é o principal parâmetro de ajuste dos modelos de raciocínio:
- 1.000 a 2.000: problemas simples, cálculos rápidos
- 5.000 a 10.000: programação e análise de complexidade média
- 16.000+: matemática mais difícil, projeto de sistemas complexos, problemas de nível de pesquisa
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
)Instruções de sistema mínimas
Para modelos de raciocínio, mantenha as instruções de sistema mínimas. O raciocínio interno do modelo é sua principal capacidade — não o restrinja excessivamente com instruções comportamentais longas.
Boas instruções de sistema para modelos de raciocínio: defina a função, o formato da saída e as restrições. Só isso.
# 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 restAs instruções sobre o formato da saída continuam importantes
Embora não se deva instruir como raciocinar, é importante especificar claramente o formato de saída desejado. Isso é diferente das instruções de raciocínio — informa ao modelo o que retornar, não como pensar.
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'))Menos exemplos de referência
Os modelos padrão se beneficiam muito de 3 a 5 exemplos de referência. Os modelos de raciocínio se beneficiam menos, e exemplos demais podem até prejudicar o resultado ao preencher a janela de contexto com conteúdo que interfere no raciocínio interno.
Para modelos de raciocínio, geralmente o ideal é usar 0 ou 1 exemplo. Use exemplos somente quando o formato da saída for incomum ou ambíguo.
# 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'
)Lidando com a incerteza nas saídas dos modelos de raciocínio
Os modelos de raciocínio têm mais probabilidade de expressar incerteza genuína do que os modelos padrão (porque realmente refletiram sobre o problema). Desenvolva suas aplicações para lidar adequadamente com respostas cautelosas.
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?'
)Armazenando em cache as saídas dos modelos de raciocínio
As chamadas a modelos de raciocínio são caras e lentas. Armazene em cache os resultados de consultas repetidas ou previsíveis. Como os tokens de raciocínio podem ser muito numerosos, o armazenamento em cache evita incorrer novamente na latência e no custo em chamadas repetidas.
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 answerVerificando as saídas dos modelos de raciocínio
Os modelos de raciocínio cometem menos erros, mas não são infalíveis — especialmente em fatos específicos de um domínio ou em temas de ponta. Sempre verifique as saídas que serão utilizadas em ações em contextos de alto risco.
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, verificationLista de verificação prática para instruções de modelos de raciocínio
Ao escrever instruções para modelos de raciocínio, siga esta lista de verificação:
- Apresente o problema de forma clara e completa
- Não inclua instruções de raciocínio passo a passo (NOT)
- Mantenha a instrução de sistema curta (somente função, formato e restrições)
- Use no máximo 0 ou 1 exemplo de referência
- Especifique o formato da saída explicitamente
- Defina
budget_tokensde forma proporcional à complexidade do problema - Planeje uma latência de resposta de 10 a 60 segundos
Verificação de conhecimento: instruções para modelos de raciocínio
Por que se recomenda usar instruções mais simples com modelos de raciocínio em comparação com modelos padrão?
Recapitulação: instruções eficazes para raciocínio estendido
Os modelos de raciocínio precisam de instruções mais simples e diretas que os modelos padrão. Não instrua como raciocinar — apresente o problema de forma clara e completa e deixe que a deliberação interna do modelo cuide da estratégia. Mantenha as instruções de sistema mínimas: somente função, formato da saída e restrições. Use 0 ou 1 exemplo de referência. Defina budget_tokens de acordo com a complexidade do problema (1 mil para tarefas simples, 10 mil ou mais para tarefas difíceis). Planeje uma latência significativa e armazene os resultados em cache quando possível. Especifique o formato da saída explicitamente — essa é a área em que instruções detalhadas ainda ajudam.
Perguntas Frequentes
A aula “Prompts eficazes para raciocínio prolongado” é grátis?
Sim — o texto completo de “Prompts eficazes para raciocínio prolongado” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Prompt Engineering, atualize para CoddyKit PRO. O curso de AI Prompt Engineering inclui 4 aulas no total.
O que vou aprender em “Prompts eficazes para raciocínio prolongado”?
Mantenha os prompts simples, evite instruções passo a passo e confie no raciocínio do modelo. Você pratica AI Prompt Engineering com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AI Prompt Engineering?
Nenhuma experiência prévia é necessária. AI Prompt Engineering no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Prompts eficazes para raciocínio prolongado”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AI Prompt Engineering?
Sim. Cada aula de AI Prompt Engineering inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Como os modelos de raciocínio são diferentes
- Prompts eficazes para raciocínio prolongado
- Quando usar modelos de raciocínio ou modelos padrão
- Relações de compromisso entre custo e latência