0Pricing
AI Prompt Engineering · Lección

Prompts eficaces para el razonamiento prolongado

Mantenga los prompts sencillos, evite las instrucciones paso a paso y confíe en el razonamiento del modelo.

Prompts eficaces para el razonamiento prolongado es una lección gratuita de AI Prompt Engineering en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Prompt Engineering, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Prompt Engineering incluye 4 lecciones en total.

Crear prompts para modelos de razonamiento es diferente

Las intuiciones sobre prompting que desarrolló para los modelos estándar —cadena de pensamiento, instrucciones paso a paso y ejemplos few-shot— a menudo juegan en su contra con los modelos de razonamiento.

Los modelos de razonamiento ya realizan un razonamiento interno sofisticado. Indicarles exactamente cómo pensar puede interferir con ese proceso. Los mejores prompts para modelos de razonamiento son más sencillos y directos que los prompts para modelos estándar.

No dé instrucciones paso a paso

Con los modelos estándar, puede escribir: «Piense paso a paso. Primero considere X, después considere Y y, por último, concluya Z». Esta estructura de apoyo resulta útil porque los modelos estándar no lo hacen automáticamente.

Con los modelos de razonamiento, esta estructura puede limitar el razonamiento interno del modelo a un camino subóptimo. En su lugar, exponga el problema con claridad y deje que el modelo determine cómo razonarlo.

# 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')

Exponga el problema de forma clara y completa

Aunque debe simplificar cómo da instrucciones al modelo de razonamiento, debe ser exhaustivo respecto a qué solicita. Proporcione de antemano todo el contexto, las restricciones y los requisitos; el modelo los utilizará durante su razonamiento 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])

Configuración adecuada de budget_tokens

budget_tokens controla el número máximo de tokens de razonamiento. Configurarlo correctamente es el principal parámetro de ajuste de los modelos de razonamiento:

  • 1.000-2.000: problemas sencillos y cálculos rápidos
  • 5.000-10.000: programación y análisis de complejidad media
  • 16.000+: problemas matemáticos muy difíciles, diseño de sistemas complejos y problemas de nivel de investigación
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
)

Prompts del sistema mínimos

En los modelos de razonamiento, mantenga los prompts del sistema al mínimo. El razonamiento interno del modelo es su principal capacidad; no lo limite en exceso con instrucciones de comportamiento extensas.

Un buen prompt del sistema para un modelo de razonamiento establece el rol, define el formato de salida y especifica las restricciones. Eso es todo.

# 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 rest

Las instrucciones sobre el formato de salida siguen siendo importantes

Aunque no debe indicar cómo razonar, sí debe especificar claramente el formato de salida deseado. Esto es distinto de las instrucciones de razonamiento: indica al modelo qué debe devolver, no cómo debe 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 ejemplos few-shot

Los modelos estándar se benefician mucho de 3-5 ejemplos few-shot. Los modelos de razonamiento se benefician menos, y un exceso de ejemplos puede perjudicarles al llenar la ventana de contexto con contenido que interfiere con el razonamiento interno.

En los modelos de razonamiento, 0-1 ejemplos suele ser lo óptimo. Utilice ejemplos únicamente cuando el formato de salida sea inusual 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'
)

Gestión de la incertidumbre en las respuestas de los modelos de razonamiento

Los modelos de razonamiento tienen más probabilidades de expresar una incertidumbre genuina que los modelos estándar (porque realmente han reflexionado sobre el problema). Diseñe sus aplicaciones para gestionar correctamente las respuestas matizadas.

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?'
)

Almacenamiento en caché de las respuestas de los modelos de razonamiento

Las llamadas a modelos de razonamiento son costosas y lentas. Almacene en caché los resultados de las consultas repetidas o predecibles. Como los tokens de razonamiento pueden ser muy numerosos, la caché evita volver a pagar el coste y la latencia en las llamadas posteriores.

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 answer

Verificación de las respuestas de los modelos de razonamiento

Los modelos de razonamiento cometen menos errores, pero no son infalibles, especialmente con datos específicos de un dominio o temas de vanguardia. Verifique siempre las respuestas que se vayan a utilizar en contextos de alto riesgo.

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, verification

Lista práctica para crear prompts de modelos de razonamiento

Al redactar prompts para modelos de razonamiento, siga esta lista:

  • Exponga el problema de forma clara y completa
  • NO incluya instrucciones de razonamiento paso a paso
  • Mantenga breve el prompt del sistema (solo rol, formato y restricciones)
  • Utilice como máximo 0-1 ejemplos few-shot
  • Especifique explícitamente el formato de salida
  • Establezca budget_tokens de forma proporcional a la complejidad del problema
  • Planifique una latencia de respuesta de 10-60 segundos

Comprobación de conocimientos: creación de prompts para modelos de razonamiento

¿Por qué se recomienda utilizar prompts más sencillos con los modelos de razonamiento que con los modelos estándar?

Resumen: prompts eficaces para extended thinking

Los modelos de razonamiento necesitan prompts más sencillos y directos que los modelos estándar. No indique cómo razonar; exponga el problema de forma clara y completa y deje que la deliberación interna del modelo se encargue de la estrategia. Mantenga los prompts del sistema al mínimo: solo rol, formato de salida y restricciones. Utilice 0-1 ejemplos few-shot. Establezca budget_tokens según la complejidad del problema (1K para problemas sencillos, 10K+ para los difíciles). Planifique una latencia considerable y almacene los resultados en caché siempre que sea posible. Especifique explícitamente el formato de salida; esa es la única área en la que las instrucciones detalladas siguen siendo útiles.

Preguntas frecuentes

¿La lección «Prompts eficaces para el razonamiento prolongado» es gratis?

Sí — el texto completo de «Prompts eficaces para el razonamiento prolongado» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Prompt Engineering, actualiza a CoddyKit PRO. El curso de AI Prompt Engineering incluye 4 lecciones en total.

¿Qué aprenderé en «Prompts eficaces para el razonamiento prolongado»?

Mantenga los prompts sencillos, evite las instrucciones paso a paso y confíe en el razonamiento del modelo. Practicas AI Prompt Engineering con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AI Prompt Engineering?

No se requiere experiencia previa. AI Prompt Engineering en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Prompts eficaces para el razonamiento prolongado»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AI Prompt Engineering?

Sí. Cada lección de AI Prompt Engineering incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. En qué se diferencian los modelos de razonamiento
  2. Prompts eficaces para el razonamiento prolongado
  3. Cuándo usar modelos de razonamiento frente a modelos estándar
  4. Compromisos entre coste y latencia
← Volver a AI Prompt Engineering