@ecommartinez: Claude Code es una herramienta...
Claude Code es una herramienta poderosa pero puede volverse costosa rápidamente si no controlas tu consumo de tokens. Cada solicitud, cada archivo leído, cada mensaje enviado consume tokens. En un proyecto complejo, puede representar cientos de miles de tokens por sesión.
Esta guía está dirigida a todos los que usan Claude Code de forma intensiva: desarrolladores, fundadores técnicos, creadores de agentes autónomos. El objetivo: dividir tu consumo de tokens entre 2 y 5 veces sin sacrificar la calidad del trabajo producido.
Módulo 1 : Entender cómo Claude Code consume tokens
Cómo funciona la ventana de contexto
Cada vez que Claude Code procesa una tarea, envía y recibe tokens. El consumo se divide en dos categorías:
Tokens de entrada (input): todo lo que Claude recibe : tu instrucción, los archivos leídos, el historial de conversación, el contenido del CLAUDE.md, los resultados de las herramientas.
Tokens de salida (output): lo que Claude genera : el código escrito, las explicaciones, las llamadas a herramientas.
Los tokens de entrada son generalmente más baratos que los de salida, pero representan la mayoría del consumo en tareas largas.
Los 5 grandes pozos de tokens
Aquí están las principales fuentes de consumo innecesario:
Módulo 2 : Optimizar tus archivos CLAUDE.md
El CLAUDE.md se lee en cada sesión. Suele ser la primera fuente de optimización.
Regla de oro: el CLAUDE.md debe ser quirúrgico
❌ Mala práctica:
# Mi proyecto
Este proyecto es una aplicación web construida con Next.js 14, TypeScript,
Prisma, PostgreSQL, Tailwind CSS. Usamos Vercel para el despliegue.
La arquitectura sigue los principios DDD con bounded contexts...
[300 líneas de contexto general]✅ Buena práctica:
# Stack: Next.js 14 + TypeScript + Prisma + PostgreSQL + Tailwind
# Deploy: Vercel | DB: Supabase
# Convenciones: ver /docs/conventions.md (leer solo si necesario)
# Tests: Jest + Playwright — siempre ejecutar antes del commitEstrategia de CLAUDE.md anidados
Claude Code soporta archivos CLAUDE.md en subcarpetas. Usa esta jerarquía:
De este modo, Claude solo carga el CLAUDE.md pertinente según dónde trabaje, en lugar de cargar todo el contexto global cada vez.
Módulo 3 : Redactar prompts que consuman menos
El principio del prompt quirúrgico
Cuanto más preciso sea tu prompt, menos necesita explorar Claude. Un prompt vago obliga a Claude a leer más archivos, hacer más preguntas, generar más código "por si acaso".
❌ Prompt costoso:
Mejora el módulo de autenticación✅ Prompt económico:
En /src/auth/login.ts, líneas 45-67: reemplaza la validación de email
por la función validateEmail() de /src/utils/validators.ts.
No toques nada más.Los 10 patrones de prompts económicos
Patrón 1 — Scope explícito
Trabaja únicamente en [ARCHIVO]. No leas otros archivos.
Patrón 2 — Instrucción de no-lectura
No necesitas leer el resto del codebase. Aquí está todo el contexto:
[contexto mínimo pegado directamente]
Patrón 3 — Formato de salida restringido
Responde únicamente con el código modificado, sin explicación.
Formato: bloque de código único.
Patrón 4 — Referencia precisa
Modifica únicamente la función `processPayment()` en este archivo:
[pegar solo la función, no el archivo completo]
Patrón 5 — Batch inteligente
Aquí hay 5 modificaciones para el mismo archivo.
Hazlas todas en una sola pasada:
1. [modificación 1]
2. [modificación 2]
...
Patrón 6 — Contexto inline
Sin leer ningún archivo, crea una función que [descripción precisa].
Firma esperada: [firma exacta]
Retorno esperado: [tipo de retorno]
Patrón 7 — Limitar herramientas
Para esta tarea, usa únicamente Read y Write.
No uses Bash, Search ni Browse.
Patrón 8 — Respuesta estructurada
Responde con este formato JSON únicamente:
{"file": "...", "changes": [...], "reason": "..."}
Patrón 9 — Tarea atómica
Una sola tarea: [tarea muy precisa].
Stop after that. Do not continue or suggest next steps.
Patrón 10 — Modo sin explicaciones
Code only. No comments, no explanations, no alternatives.
Módulo 4 : Gestionar el historial y las sesiones
El historial de conversación se recarga en cada turno. En una sesión larga, puede representar 50 a 70% del costo total.
Estrategia de sesiones cortas y enfocadas
Divide tu trabajo en sesiones atómicas:
# Sesión 1: "Crea el schema Prisma para el módulo Users"
→ /clear
# Sesión 2: "Crea las rutas API Users usando este schema: [pegar el schema]"
→ /clear
# Sesión 3: "Escribe los tests para estas rutas: [pegar las rutas]"Cada sesión parte de cero. Pasas el contexto necesario manualmente, pero evitas la acumulación de todo el historial anterior.
Módulo 5 : Configuración avanzada para agentes autónomos
Elegir el modelo correcto según la tarea
Una de las optimizaciones más sencillas y de mayor impacto es usar el modelo adecuado para cada tarea.
Prompt caching: la funcionalidad más infravalorada
El prompt caching permite no refacturar los tokens de un prompt de sistema repetido. Crucial para agentes que envían el mismo contexto en cada llamada.
response = client.messages.create(
model="claude-opus-4-5",
system=[
{
"type": "text",
"text": "[TU CONTEXTO LARGO QUE NO CAMBIA]",
"cache_control": {"type": "ephemeral"} # ← La magia
}
],
messages=[{"role": "user", "content": user_message}]
)Ahorro típico: 60 a 90% en tokens de entrada repetidos.
Arquitectura multi-agentes económica
En lugar de un agente monolítico que gestiona todo con un contexto enorme:
Cada agente recibe únicamente lo que necesita para su tarea específica. El ahorro puede llegar al 90%+ en arquitecturas complejas.
Módulo 6 : Técnicas avanzadas de compresión de contexto
Filtrar los resultados de herramientas
Cuando Claude usa herramientas (bash, search), los resultados se añaden al contexto. Un grep que devuelve 500 líneas : pagas por todas.
# Instrucción en tu CLAUDE.md o prompt de sistema:
"When using bash commands, always pipe output to limit results:
- grep: add | head -20
- find: add -maxdepth 2
- ls: add | head -30
Never display more than 30 lines of command output."Pasar diffs en lugar de archivos completos
En lugar de pedir a Claude que lea un archivo completo para una pequeña modificación:
# Genera un diff del contexto relevante
git diff HEAD~1 -- src/components/Button.tsx | head -50
Luego pega este diff en tu prompt. Claude entiende los diffs y no necesita el archivo completo.
### El patrón "Context Sandwich"
Estructura tus prompts largos para maximizar la eficiencia:
[INSTRUCCIÓN CORTA Y PRECISA]
[CONTEXTO MÍNIMO INDISPENSABLE]
[INSTRUCCIÓN DE REPETICIÓN / RECORDATORIO DE RESTRICCIONES]Los LLMs prestan más atención al principio y al final. Repitiendo las restricciones al final, evitas salidas demasiado largas causadas por un olvido.
Módulo 7 — Monitoreo y métricas
Las 3 métricas a vigilar
import anthropic
client = anthropic.Anthropic()
# Después de cada llamada:
print(f"Input tokens: {response.usage.input_tokens}")
print(f"Output tokens: {response.usage.output_tokens}")
print(f"Cache read: {response.usage.cache_read_input_tokens}")
print(f"Cache creation: {response.usage.cache_creation_input_tokens}")Tokens por tarea : identifica las tareas anormalmente costosas. Ratio input/output : un ratio > 10:1 indica un contexto sobredimensionado. Tasa de cache hit : debe ser > 70% en agentes repetitivos.
Módulo 8 : Checklist de optimización
Antes de lanzar un agente o una sesión Claude Code, pasa por esta checklist:
✅ Checklist pre-sesión
✅ Checklist post-sesión
Recursos y Próximos Pasos
Explora los extended thinking tokens y cuándo desactivarlos, implementa un presupuesto automático de tokens por proyecto, y crea plantillas de prompts reutilizables para tareas recurrentes.
Si has leído hasta aquí, bien mereces que te regale una guía, ¿no? ☺️
He creado 2 guías sobre Claude 4.6 y Claude Code con mi socio y amigo @Adamaestr0_, te las dejo justo aquí.





