¿Qué es Chain-of-Thought (Cadena de Pensamiento) Prompting?
Chain-of-Thought prompting guía al LLM a razonar paso a paso antes de responder, mejorando la precisión en tareas que requieren lógica, matemáticas o múltiples pasos.
// 6 min de lectura · ● updated 2026-06
// antes de leer
Chain-of-Thought (CoT) prompting es una técnica que consiste en pedirle al modelo que muestre su razonamiento paso a paso antes de dar la respuesta final. En lugar de preguntar "¿cuánto es 24 × 37?" y esperar un número, le pides "vamos paso a paso: primero calcula 24 × 30, luego 24 × 7, y suma los resultados". El modelo no solo responde mejor — también te deja ver cómo llegó ahí, lo que hace que los errores sean detectables y corregibles.
Tip Pro: CoT es la técnica de prompting más sencilla que da los mayores saltos de calidad. Si solo aprendes una técnica de prompting, que sea esta.
¿Qué es?
Chain-of-Thought prompting fue introducido por Wei et al. en 2022 y desde entonces se ha convertido en un pilar del prompting avanzado. La idea es simple: los LLMs predicen tokens secuencialmente, y si intercalas pasos de razonamiento intermedios entre la pregunta y la respuesta, el modelo tiene más "espacio computacional" para llegar al resultado correcto.
Hay dos variantes principales:
- CoT manual (few-shot): le das al modelo 2-3 ejemplos donde muestras explícitamente el razonamiento paso a paso, y luego le haces tu pregunta.
- CoT zero-shot: simplemente agregas la frase "Pensemos paso a paso" o "Let's think step by step" al final del prompt. Funciona sorprendentemente bien sin necesidad de ejemplos.
Nota: CoT no modifica el modelo ni su arquitectura. Es puramente una técnica de prompting. Cualquier LLM moderno puede beneficiarse de ella.
Modelo mental
Imagina que le preguntas a un matemático cuánto es 47 × 83. Si le pides la respuesta inmediata, puede equivocarse si va muy rápido. Si le dices "muéstrame el procedimiento", hace los cálculos intermedios, los verifica y llega al resultado correcto. CoT hace exactamente eso con el LLM: le da espacio para "pensar en voz alta".
Sin CoT:
Usuario: "Un tren viaja a 120 km/h. ¿Cuánto tarda en recorrer 360 km?"
LLM: "3 horas." ← puede ser correcto o no, no sabemos cómo llegó
Con CoT:
Usuario: "Un tren viaja a 120 km/h. ¿Cuánto tarda en recorrer 360 km? Pensemos paso a paso."
LLM: "Velocidad = distancia / tiempo, entonces tiempo = distancia / velocidad.
tiempo = 360 km / 120 km/h = 3 horas.
Por lo tanto, tarda 3 horas."
← vemos el razonamiento y podemos verificar¿Cómo se usa?
CoT zero-shot (la forma más simple)
Solo agrega una frase al final del prompt:
prompt = """
Un cliente compró un producto que costaba $450. Tenía un cupón de descuento del 15%
y además pagó un envío de $30. Pagó en 3 cuotas sin interés. ¿Cuánto pagó por cuota?
Pensemos paso a paso.
"""
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)
print(response.choices[0].message.content)El modelo típicamente responderá algo como:
1. Calcular el descuento: 15% de $450 = $67.50
2. Precio con descuento: $450 - $67.50 = $382.50
3. Sumar envío: $382.50 + $30 = $412.50
4. Dividir en 3 cuotas: $412.50 / 3 = $137.50
Respuesta: $137.50 por cuota.Advertencia: CoT zero-shot no funciona igual en todos los modelos. En modelos pequeños (<7B) la frase "Pensemos paso a paso" puede no generar un razonamiento genuino. En GPT-4 y Claude 3.5+ funciona muy bien.
CoT few-shot (con ejemplos)
Para tareas donde el modelo tiende a fallar incluso con zero-shot CoT, puedes darle ejemplos:
prompts_con_razonamiento = """
P: Un lápiz cuesta $15 y una goma cuesta $8. Si compro 3 lápices y 2 gomas,
¿cuánto gasto en total?
R: 3 lápices × $15 = $45. 2 gomas × $8 = $16. Total = $45 + $16 = $61.
La respuesta es $61.
P: Juan tiene 24 años. Su hermana tiene 3 años menos que él, y su primo
tiene el doble de la edad de su hermana. ¿Cuántos años tiene el primo?
R: Edad de la hermana = 24 - 3 = 21 años. Edad del primo = 21 × 2 = 42 años.
La respuesta es 42 años.
P: Un artículo cuesta $200. Si tiene un descuento del 25% y luego se le aplica
un impuesto del 18%, ¿cuál es el precio final?
R:"""Variante: CoT con auto-consistencia (self-consistency)
Ejecutas el mismo prompt CoT varias veces con temperatura > 0, y tomas la respuesta más frecuente:
import json
from collections import Counter
respuestas = []
for _ in range(5):
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user",
"content": "¿Cuánto es 156 + 239? Pensemos paso a paso."}],
temperature=0.7
)
texto = response.choices[0].message.content
# Extraer el número final
import re
numeros = re.findall(r"\b(\d+)\b", texto.split("Respuesta")[-1])
if numeros:
respuestas.append(numeros[-1])
voto_mayoritario = Counter(respuestas).most_common(1)[0][0]
print(f"Respuesta final (consenso): {voto_mayoritario}")Tip Pro: Self-consistency mejora la precisión en problemas matemáticos entre 5-15 puntos porcentuales respecto a CoT simple, a costa de 3-5x más llamadas a la API. Úsalo solo cuando la precisión importe más que el costo.
CoT en prompts de sistema para asistentes
Puedes incorporar CoT como instrucción permanente:
system_prompt = """
Eres un asistente de soporte técnico. Antes de dar una respuesta,
siempre desglosa tu razonamiento paso a paso internamente.
Tu respuesta final debe ser clara y directa para el usuario,
pero debes haber hecho el razonamiento completo antes.
"""Algunos modelos permiten intercalar un "bloque de razonamiento invisible" usando etiquetas como [RAZONAMIENTO] que luego filtras en la respuesta final mostrada al usuario.
¿Cuándo usarlo / cuándo no?
| ✅ Úsalo cuando | ❌ NO lo uses cuando |
|---|---|
| La tarea requiere múltiples pasos lógicos | La respuesta es directa y obvia ("¿qué hora es?") |
| Necesitas que el modelo haga cálculos matemáticos | El prompt es extremadamente simple |
| Quieres poder auditar el razonamiento del modelo | La latencia es crítica (CoT genera más tokens) |
| El modelo tiende a alucinar en cierto tipo de preguntas | Tienes un límite ajustado de tokens de salida |
| Estás resolviendo problemas de física, lógica o programación | El modelo ya responde correctamente sin CoT |
| Usas modelos más pequeños que se benefician del "andamiaje" de pasos | Usas un modelo especializado (ej: fine-tuneado solo para extraer JSON) |
Tip Pro: No uses CoT para tareas donde el modelo ya es casi perfecto sin él. Cada paso extra son tokens que pagas y latencia que acumulas. Si un modelo responde bien sin CoT en un benchmark, no se lo agregues.
Historia y evolución
Ver historia
Chain-of-Thought prompting fue formalizado en el paper "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models" (Wei et al., 2022, Google Research). El paper mostró que agregar ejemplos con razonamiento paso a paso mejoraba dramáticamente el rendimiento en GSM8K (matemáticas escolares), pasando de ~18% a ~58% en PaLM 540B.
En 2023 aparecieron variantes como Tree-of-Thoughts (explora múltiples líneas de razonamiento en paralelo) y Least-to-Most Prompting (descompone problemas grandes en subproblemas). También surgió el debate sobre si CoT realmente representa razonamiento o es solo un artefacto estadístico — la evidencia actual sugiere que es genuinamente útil aunque no necesariamente equivalente al razonamiento humano.
Hoy CoT está incorporado por defecto en sistemas como Claude (que tiene un "modo de pensamiento extendido") y en modelos como o1 de OpenAI, que aplican CoT internamente antes de responder.
// relacionados