effidevFlutter · Edge de Cloudflare · Optimización de costes en la nube
Español

Cómo optimizar el costo de tokens con el Pensamiento Adaptativo (Adaptive Thinking) y el parámetro Effort de Claude Sonnet 5

API de Pensamiento Adaptativo de Claude Sonnet 5 y optimización del costo de tokens

Claude Sonnet 5, que se ha consolidado como el nuevo estándar del mercado de modelos de IA de frontera en 2026, es una actualización directa (drop-in) que mantiene la misma estructura de solicitud/respuesta de la API que la generación anterior (Claude Sonnet 4.6), pero en la forma de controlar el razonamiento (Thinking) es completamente distinta. El razonamiento extendido manual que se usaba hasta Claude Sonnet 4.6 (thinking: { type: "enabled", budget_tokens: N }) se eliminó por completo en Sonnet 5 y ahora devuelve un error 400; en su lugar, el Pensamiento Adaptativo (Adaptive Thinking), activado por defecto, junto con el parámetro output_config.effort, controla la profundidad del razonamiento y el consumo de tokens.

Esta guía aborda la estructura de control combinada thinking: { type: "adaptive" } + effort de la API de Claude Sonnet 5, el impacto del nuevo tokenizador en el cálculo del costo de tokens, y patrones prácticos para optimizar el costo por solicitud en pipelines de producción.

Puntos clave

  • Si se omite el campo thinking en la solicitud, Claude Sonnet 5 funciona con el Pensamiento Adaptativo activado por defecto (hasta Sonnet 4.6 ocurría lo contrario: estaba desactivado por defecto). Para desactivarlo hay que especificar explícitamente thinking: { type: "disabled" }.
  • La profundidad del razonamiento ya no se controla con un valor entero de budget_tokens, sino con un nivel en output_config: { effort: "low" | "medium" | "high" | "xhigh" | "max" }. El valor por defecto es high.
  • Establecer temperature, top_p o top_k en un valor distinto del predeterminado devuelve un error 400 — una restricción nueva que no existía en Sonnet 4.6.
  • Sonnet 5 utiliza un nuevo tokenizador, por lo que el mismo texto se calcula con aproximadamente un 30% más de tokens que en Sonnet 4.6. Esto afecta el costo no por el precio por token, sino porque aumenta la cantidad misma de tokens.
  • El precio de lanzamiento de $2 de entrada / $10 de salida (por millón de tokens) se aplica hasta el 31 de agosto de 2026, tras lo cual pasa al precio estándar de $3 / $15.

Arquitectura de control del razonamiento en Claude Sonnet 5

Parámetro / Modo effort: "low" effort: "high" (por defecto) effort: "xhigh"
Caso de uso recomendado Clasificación simple, respuestas de chatbot, solicitudes de alta frecuencia y baja latencia Razonamiento complejo, problemas de codificación difíciles, tareas agénticas Tareas de codificación/agénticas de larga duración (30 minutos o más)
Forma de razonar El Pensamiento Adaptativo se omite en la mayoría de las solicitudes El Pensamiento Adaptativo se activa cuando es necesario Razonamiento más profundo y frecuente
Velocidad/costo El más rápido y económico Punto de equilibrio (mismo comportamiento que omitir el parámetro) El consumo de tokens aumenta considerablemente

Si no se especifica effort, el comportamiento es idéntico al de high. max es el nivel que ofrece el máximo rendimiento sin límite de consumo de tokens, y solo debe usarse para problemas realmente difíciles.


Código práctico para llamar a la API de Claude Sonnet 5

Este es un código práctico en un entorno Node.js / TypeScript que ajusta dinámicamente effort según la dificultad de la tarea usando el SDK de Anthropic. Si se reutiliza tal cual el thinking.budget_tokens usado en Sonnet 4.6 o versiones anteriores, se produce un error 400 — al migrar hay que cambiarlo obligatoriamente como se muestra a continuación.

import Anthropic from '@anthropic-ai/sdk';

const anthropic = new Anthropic({
  apiKey: process.env.ANTHROPIC_API_KEY,
});

type Effort = 'low' | 'medium' | 'high' | 'xhigh' | 'max';

async function runAdaptiveThinking(prompt: string, effort: Effort) {
  const response = await anthropic.messages.create({
    model: 'claude-sonnet-5',
    max_tokens: 8192,
    // El { type: 'enabled', budget_tokens: N } que se usaba hasta Sonnet 4.6
    // fue eliminado en Sonnet 5 y ahora devuelve un error 400. Solo hay que
    // especificarlo cuando se quiere desactivar; si se omite, el Pensamiento
    // Adaptativo funciona activado por defecto.
    thinking: { type: 'adaptive' },
    output_config: { effort },
    messages: [
      {
        role: 'user',
        content: prompt,
      },
    ],
  });

  for (const block of response.content) {
    if (block.type === 'thinking') {
      console.log('[Claude Sonnet 5 Thinking]:', block.thinking);
    } else if (block.type === 'text') {
      console.log('[Claude Sonnet 5 Response]:', block.text);
    }
  }
}

// Para tareas simples usar low; para refactorizaciones complejas o tareas agénticas, xhigh
await runAdaptiveThinking('이 JSON을 스키마에 맞게 정규화해줘', 'low');
await runAdaptiveThinking('이 레포의 순환 의존성을 찾아서 리팩토링 계획을 세워줘', 'xhigh');

Para solicitudes en las que se quiere desactivar completamente el razonamiento (respuestas simples donde la latencia es absolutamente crítica), se especifica thinking: { type: 'disabled' }. Puede resultar tentador ajustar también temperature o top_p, pero en Sonnet 5 el simple hecho de enviar un parámetro de muestreo distinto del valor predeterminado produce un error 400, así que el control del tono debe reemplazarse con instrucciones en el system prompt.


Nuevo tokenizador y estrategias de optimización de costos en producción

  1. Recontar tokens, no reutilizar (Recount, Don’t Reuse): No se debe reutilizar tal cual el número de tokens o el presupuesto medido con Sonnet 4.6 como referencia. Dado que el mismo texto se calcula con aproximadamente un 30% más de tokens en el nuevo tokenizador, hay que volver a medir con la Token Counting API todos los valores relacionados con el presupuesto de tokens, incluido max_tokens.
  2. Enrutamiento dinámico de Effort (Task Complexity Router): Se mide la complejidad de la solicitud del usuario o del número de cambios de código y se asigna automáticamente el valor de effort correspondiente. Para respuestas simples y de alta frecuencia se reduce el costo con low, y para codificación agéntica o análisis profundo se sube a xhigh.
  3. Prompt Caching: Al pasar una base de código extensa o definiciones de tipos de una biblioteca como System Prompt, se especifica cache_control: { type: "ephemeral" } para obtener hasta un 90% de descuento en tokens cuando se produce un acierto de caché (cache hit). Sin embargo, si se cambia el valor de effort dentro de la misma conversación, el prefijo en caché se invalida, por lo que conviene mantener el effort definido al inicio de la sesión durante toda esa sesión para favorecer la tasa de aciertos de caché.
  4. Aprovechar el período de precio de lanzamiento: Hasta el 31 de agosto de 2026 se aplica el precio de lanzamiento de $2 de entrada / $10 de salida (por millón de tokens). Después pasará al precio estándar de $3 / $15, por lo que conviene concentrar las pruebas de migración a gran escala o los trabajos de backfill dentro de este período para reducir costos.

Si se enruta el Pensamiento Adaptativo y el parámetro effort de Claude Sonnet 5 según las necesidades del sistema de producción, es posible compensar la mayor carga en el costo por token frente a Sonnet 4.6 y, al mismo tiempo, mantener un costo de pipeline predecible.