Optimización de costes con Claude: 12 técnicas
Doce hábitos que reducen el gasto en Claude Code y en la API de Claude sin bajar la calidad.
Claude Code
Memoria del proyecto en CLAUDE.md
Contexto una sola vez
- Cuándo ayuda
- Cada sesión empieza explicando otra vez el stack, las convenciones y las restricciones.
- Qué hacer
- Escribe un CLAUDE.md de 300–500 palabras con el stack, las carpetas clave, los comandos, las reglas y la puerta de verificación. Actualízalo cada vez que te sorprendas repitiendo una explicación.
- Por qué funciona
- Se carga una vez por sesión: los tokens de contexto se pagan una vez y no en cada prompt, y las respuestas siguen tus convenciones desde el primer turno.
- Ejemplo
- CLAUDE.md, doce líneas: «Next.js 16 con exportación estática, Tailwind 4, MDX en content/en|es. Los textos viven en messages/en.json y se replican en es.json. Puerta antes de cualquier push: npm run lint && npx tsc --noEmit && npx vitest run && npm run build. Nunca commitear CLAUDE.md.» A partir de ahí ninguna sesión pregunta dónde están los textos.
- Ahorro típico
- 500–2.000 tokens ahorrados por sesión (estimación)
Claude Code
Inclusión selectiva de archivos
Solo lo necesario
- Cuándo ayuda
- Cambias una función pero todo el directorio, tests incluidos, acaba en el contexto.
- Qué hacer
- Nombra el archivo que cambias, los que importa y las definiciones de tipos en uso, nada más. Omite los tests al implementar y los archivos de la funcionalidad al escribir tests.
- Por qué funciona
- Los tokens de entrada son el grueso de la factura y los archivos de más añaden coste sin mejorar la respuesta.
- Ejemplo
- Prompt: «Cambia el og:title en lib/seo/metadata.ts. Importa messages/en.json y lib/site.ts: lee esos dos y nada más.» Tres archivos en el contexto en lugar de toda la carpeta lib/ y sus tests.
- Ahorro típico
- 60–80 % menos tokens por tarea (estimación)
Claude Code
Prompts específicos
Archivo, función, cambio
- Cuándo ayuda
- "Mejora este código" o "¿qué se podría mejorar?" arranca una exploración larga que no pediste.
- Qué hacer
- Indica el archivo, la función, el cambio exacto y cómo verificarlo. Una tarea por prompt; deja el análisis abierto para una sesión aparte.
- Por qué funciona
- Un prompt acotado necesita menos contexto y produce una respuesta más corta y precisa.
- Ejemplo
- Antes: «Mejora el SEO del sitio.» Después: «En lib/seo/jsonld.ts, añade dateModified al nodo Article usando post.lastmod; verifica con npx tsc --noEmit y los tests unitarios existentes.» Un archivo, un cambio, una comprobación.
- Ahorro típico
- 2–5 veces menos tokens que un prompt vago (estimación)
Claude Code
Agrupa tareas relacionadas
Una sesión, un contexto
- Cuándo ayuda
- Tres cambios pequeños en el mismo módulo se hacen en tres sesiones distintas.
- Qué hacer
- Agrupa en una sesión los cambios que tocan los mismos archivos y pasa después al siguiente módulo.
- Por qué funciona
- El módulo se lee al contexto una vez en lugar de tres.
- Ejemplo
- Una sesión para los tres cambios del carrusel de testimonios (cita nueva, recorte de foto, texto alternativo), uno tras otro; después una sesión nueva para el artículo del blog. Los archivos del carrusel se leen una vez, no tres.
- Ahorro típico
- 20–40 % menos gasto en esas tareas (estimación)
Claude Code
/compact en los puntos de control
Comprime el historial
- Cuándo ayuda
- Una sesión lleva 30–45 minutos y cada prompt nuevo arrastra toda la conversación.
- Qué hacer
- Ejecuta /compact después de cada unidad de trabajo, como un commit. Pídele que conserve las decisiones que aún necesitas antes de compactar.
- Por qué funciona
- El historial se sustituye por un resumen corto de decisiones y estado, y los turnos posteriores dejan de pagar por los primeros.
- Ejemplo
- Cuando el testimonio ya está hecho: «/compact conserva la decisión de recortar las fotos a 330×330 y la lista de archivos que faltan.» El siguiente prompt parte de un resumen y no de cuarenta salidas de herramientas.
- Ahorro típico
- 10–20k tokens de historial → 1–3k (estimación)
Claude Code
Mide el gasto
/cost y --verbose
- Cuándo ayuda
- La factura sorprende y nadie sabe qué prompts la causaron.
- Qué hacer
- Ejecuta Claude Code con --verbose durante un día completo y revisa /cost por sesión; anota los dos o tres prompts que dominan.
- Por qué funciona
- Unas pocas cargas de contexto amplias suelen concentrar la mayor parte del gasto, y solo se arregla lo que se ve.
- Ejemplo
- claude --verbose durante un día y después /cost en cada sesión: dos prompts («explica todo el repositorio», «arregla todos los errores de lint») cuestan más que los otros veinte juntos. Esos dos reciben una nota en CLAUDE.md y un alcance más estrecho.
Claude Code
Primero el modo plan
Acuerda y luego construye
- Cuándo ayuda
- Una funcionalidad toca varios archivos y un primer intento equivocado sería caro de deshacer.
- Qué hacer
- Cambia al modo plan, deja que lea y proponga, corrige el plan y aprueba después la implementación.
- Por qué funciona
- Leer es más barato que reescribir: un plan revisado en minutos evita pagar dos veces por el mismo cambio.
- Ejemplo
- En modo plan: «Añade una versión en español de las FAQ.» Claude lee data/faq.ts y la página en ES, propone la lista de archivos y las claves de texto, tachas una suposición errónea y entonces implementa. Nada de código escrito sobre un diseño equivocado.
API de Claude
El modelo adecuado para cada tarea
Haiku → Sonnet → Opus
- Cuándo ayuda
- Todas las peticiones, incluidas clasificación y extracción, corren en el modelo más capaz.
- Qué hacer
- Enruta por tarea: Haiku 5.5 para extracción y clasificación rutinarias, Sonnet 5.5 para código y agentes del día a día, Opus 5.5 donde importa el criterio. Mide la calidad en una muestra antes de cambiar una ruta.
- Por qué funciona
- Los precios de lista por millón de tokens de entrada son 0,10 $ para Haiku 5.5, 2 $ para Sonnet 5.5 y 4 $ para Opus 5.5: el nivel decide la factura más que cualquier truco de prompt.
- Ejemplo
- Flujo de soporte: Haiku 5.5 clasifica el ticket (facturación, error, funcionalidad), Sonnet 5.5 redacta la respuesta, Opus 5.5 revisa solo las decisiones de reembolso por encima de un umbral. Cada ruta medida sobre 200 tickets pasados antes del cambio.
- Ahorro típico
- 0,10 $ frente a 2 $ y 4 $ por millón de tokens de entrada (cifra oficial)
API de Claude
Nivel de esfuerzo
Profundidad que pagas
- Cuándo ayuda
- Chat, clasificación o rutas de alto volumen corren con la misma profundidad de razonamiento que las tareas difíciles.
- Qué hacer
- Define output_config.effort por ruta: low o medium para chat y clasificación, high o xhigh para código agéntico; prueba un esfuerzo menor en el modelo más reciente antes de montar una cascada de modelos.
- Por qué funciona
- El esfuerzo intercambia tokens de razonamiento por coste dentro de un mismo modelo, y un solo modelo mantiene una sola caché de prompt.
- Ejemplo
- El endpoint de chat en Sonnet 5.5 con output_config.effort en «medium»; el trabajo de programación agéntica mantiene «high». Mismo modelo, razonamiento más corto en la ruta fácil, comprobado con una semana de tráfico antes de tocar las demás rutas.
API de Claude
Caché de prompts
Prefijo estable
- Cuándo ayuda
- El mismo system prompt, lista de herramientas o documento de referencia se envía en cada petición.
- Qué hacer
- Coloca primero el contenido estable, añade cache_control al final, deja marcas de tiempo y entrada del usuario después, y comprueba que usage.cache_read_input_tokens no sea cero.
- Por qué funciona
- La entrada en caché se lee a una décima parte del precio normal de entrada, y el prefijo solo tiene que coincidir byte a byte.
- Ejemplo
- Primero el prompt de sistema y el documento de políticas de 40 páginas, cache_control: {"type": "ephemeral"} en ese último bloque, y la pregunta del usuario después. A partir de la segunda llamada, usage.cache_read_input_tokens ronda el tamaño del documento.
- Ahorro típico
- Las lecturas en caché cuestan un 90 % menos (cifra oficial)
API de Claude
API por lotes
Asíncrono a mitad de precio
- Cuándo ayuda
- Evaluaciones, reprocesados, informes nocturnos o cualquier trabajo que no necesite respuesta en segundos.
- Qué hacer
- Envía las peticiones con messages.batches.create, consulta hasta que el lote termine y empareja los resultados por custom_id.
- Por qué funciona
- Las peticiones por lotes se facturan a la mitad del precio estándar a cambio de un procesamiento asíncrono.
- Ejemplo
- Cada noche: 5.000 descripciones de producto que clasificar. messages.batches.create con una petición por producto y custom_id = el id del producto; consultar por la mañana y casar los resultados por custom_id. Mitad de precio y sin malabares con los límites de peticiones.
- Ahorro típico
- 50 % de descuento sobre el precio estándar (cifra oficial)
API de Claude
Contexto de agente ligero
Compacta, recorta, presupuesta
- Cuándo ayuda
- Un bucle de agente largo reenvía todos los resultados de herramientas antiguos y el prompt crece turno a turno.
- Qué hacer
- Activa la compactación del lado del servidor para conversaciones largas, limpia los resultados de herramientas antiguos con la edición de contexto y da a los bucles agénticos un presupuesto de tarea para que se dosifiquen.
- Por qué funciona
- Los prompts más pequeños cuestan menos en cada turno y mantienen al modelo centrado en el paso actual.
- Ejemplo
- Un agente que hace sesenta llamadas a herramientas: compactación activada, resultados de herramientas de más de cinco turnos borrados, presupuesto de tarea de 200k tokens. El turno cincuenta cuesta más o menos lo mismo que el quinto en lugar de reenviar cada lectura de archivo antigua.
Elige una técnica en el mapa para ver cuándo ayuda, qué hacer y por qué funciona.
Cifras oficiales: precios y documentación de la API de Anthropic. Estimaciones: LOW/CODE Agency, "Claude Code Cost Optimization" (sep. 2026) y experiencia en proyectos; los rangos varían según el código base.
