Empezar aquí
Guía 04 · guía de modelos

Dejar pensar al modelo

Cómo usar el razonamiento adaptativo y el nivel de esfuerzo, en qué tareas mejora el resultado, en cuáles no y por qué no equivale a pedir explicaciones largas.

Publicado 3 min de lectura

Principio: en tareas que requieren varios pasos de análisis, deja que el modelo razone antes de responder, y ajusta cuánto razona según la dificultad.

Por qué funciona

Un modelo genera la respuesta token a token. Si tiene que dar la conclusión en la primera frase, la conclusión se decide sin haber analizado nada. Si antes escribe su análisis, cada paso se apoya en los anteriores. Es la idea de la cadena de pensamiento que estudiaron Wei et al. (2022) y Kojima et al. (2022). Los modelos actuales la integran: pueden razonar en bloques thinking separados de la respuesta, sin que tengas que pedirlo en el prompt.

Razonamiento adaptativo y esfuerzo

En los modelos actuales, el razonamiento se activa con thinking={"type": "adaptive"}. «Adaptativo» significa que el modelo decide cuánto pensar según la tarea: poco en preguntas sencillas, más en problemas difíciles. Tú lo regulas con el nivel de esfuerzo en output_config={"effort": ...}: low, medium, high, xhigh o max. No todos los modelos aceptan todos los niveles; consulta la documentación oficial.

import anthropic

MODEL = "claude-sonnet-5-5"
client = anthropic.Anthropic()

resp = client.messages.create(
    model=MODEL,
    max_tokens=16000,                     # límite duro: incluye razonamiento y respuesta
    thinking={"type": "adaptive"},
    output_config={"effort": "high"},     # orientativo: cuánto se esfuerza
    messages=[{"role": "user", "content": "Tenemos tres almacenes y estos costes de envío… ¿Qué asignación minimiza el coste total?"}],
)

for bloque in resp.content:
    if bloque.type == "thinking":
        print("[razonamiento]", bloque.thinking[:200], "…")
    elif bloque.type == "text":
        print(bloque.text)
print(resp.stop_reason, resp.usage.output_tokens)
import Anthropic from "@anthropic-ai/sdk";

const MODEL = "claude-sonnet-5-5";
const client = new Anthropic();

const resp = await client.messages.create({
  model: MODEL,
  max_tokens: 16000,
  thinking: { type: "adaptive" },
  output_config: { effort: "high" },
  messages: [{ role: "user", content: "Tenemos tres almacenes y estos costes de envío… ¿Qué asignación minimiza el coste total?" }],
});
for (const b of resp.content) {
  if (b.type === "text") console.log(b.text);
}
console.log(resp.stop_reason, resp.usage.output_tokens);

Dos controles de coste distintos: max_tokens es un límite duro (la respuesta se corta si se alcanza, con stop_reason igual a max_tokens), y effort es orientativo (inclina al modelo a pensar más o menos). Los tokens de razonamiento cuentan como tokens de salida. El modo antiguo, con un presupuesto manual budget_tokens, sigue existiendo en algunos modelos, pero el adaptativo es el recomendado en los actuales.

En un agente con herramientas, conserva los bloques thinking en el historial tal cual llegaron: el modelo los necesita para continuar su razonamiento entre llamadas. Basta con añadir resp.content completo (El bucle agéntico).

Cuándo ayuda

TareaEsfuerzo de partida
Clasificar, extraer campos, reformatearSin razonamiento o low
Responder con documentos, redactar con criterioslow o medium
Depurar código, análisis con varios factores, planificarmedium o high
Matemáticas, lógica, problemas con muchas restriccioneshigh o más
Agentes que planifican tareas largashigh; mide si un nivel menor basta

Son puntos de partida. Prueba con tu conjunto de evals: sube el esfuerzo si fallan casos difíciles y bájalo mientras la calidad se mantenga.

Cuándo no aplica

  • Tareas simples: más razonamiento solo añade latencia y coste. Una clasificación no mejora porque el modelo piense más.
  • Falta de información: si el dato no está en el contexto, pensar más no lo crea. Arregla el contexto (Ingeniería de contexto).
  • Instrucciones ambiguas: el modelo razonará con detalle hacia el objetivo equivocado. Arregla el prompt.
  • Latencia crítica: en voz o autocompletado, el tiempo de pensar se nota. Valora un esfuerzo bajo o desactivarlo.

Regla práctica: empieza sin razonamiento en tareas sencillas y actívalo cuando las evals muestren que lo necesitas.

No confundir con pedir explicaciones largas

Activar el razonamiento y pedir «explica tu razonamiento paso a paso en la respuesta» son cosas distintas.

Decide si este contrato tiene cláusulas abusivas.
Explica detalladamente tu razonamiento paso a paso antes de dar la conclusión.
(con thinking adaptativo y effort "high")
Decide si este contrato tiene cláusulas abusivas.
Responde con la conclusión en una frase y, después, una línea por cláusula problemática
con el número de cláusula y el motivo.

En el «antes», el razonamiento se mezcla con la respuesta, la alarga y el usuario tiene que leerlo todo. En el «después», el modelo piensa en su bloque thinking y la respuesta queda limpia. Si necesitas justificar la decisión ante una persona, pide una justificación breve en la respuesta: es un requisito de formato, aparte del razonamiento interno.

Sin razonamiento activado, pedir al modelo que razone en una etiqueta <analisis> antes de responder sigue siendo una técnica válida. Luego extraes solo lo que hay fuera de la etiqueta.

Para seguir