Motivación
- En las notas de lanzamiento de Claude Opus 4.7, la parte que más llamó la atención fue el "aumento en el uso de tokens".
- Ahora que vivimos en una época en la que, si tienes suficientes tokens y tiempo, se pueden hacer muchísimas más cosas, la eficiencia de tokens también sigue siendo un tema importante.
- Desde alrededor de marzo, la comunidad se encendió por el hecho de que Claude Code redujo discretamente el TTL del caché de 1 hora → 5 minutos.
- Al medirlo con Opus 4.7, surgió un análisis que muestra que consume casi 1.5 veces más tokens que 4.6.
- También existe un repositorio de investigación sobre la eficiencia del caché de Claude Code.
- Me surgió la duda: "¿Habrá una forma de mejorar la eficiencia de tokens en Claude Code y Codex cambiando algunos valores de configuración?". Analicé la documentación oficial de Claude Code (configuración/variables de entorno/IDE), la documentación oficial de Codex (configuración/variables de entorno/MCP), así como el código fuente de Codex, y obtuve resultados significativos.
- Además del modo interactivo que uso normalmente, también aprendí muchas formas de mejorar la eficiencia de tokens, la velocidad de arranque y la estabilidad en modo no interactivo y programable.
Prompt para analizar mi estado actual
Sin rodeos, aquí va un prompt para quienes quieran revisar cómo tienen configurado su agente de programación:
Lee https://gist.github.com/spilist/c468cbf1ed0ffc91100f813aabdcd520/… y ejecútalo tal cual
Qué es lo que realmente consume tokens
En los agentes de programación, normalmente hay tres vías por las que se fugan tokens:
- Texto adicional que se adjunta automáticamente en cada sesión o en cada turno.
- Salidas demasiado largas de llamadas a herramientas que quedan en el historial de la conversación.
- Llamadas adicionales causadas por conexiones externas, como búsqueda, conectores o integración con IDE.
A continuación se presentan las palancas con las que se pueden reducir esos tres puntos en Claude Code y Codex. (Se omiten las básicas, como desactivar servidores MCP/plugins que no se usan o ajustar el modelo y el nivel de razonamiento).
- En el blog están explicados con detalle cada ajuste, así como sus trade-offs.
Claude Code (última versión verificada: 2.1.114)
-
includeGitInstructions: false
-
autoConnectIde: false
-
CLAUDE_CODE_GLOB_NO_IGNORE=false
-
Configurar un límite superior de salida (
BASH_MAX_OUTPUT_LENGTH,CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS,MAX_MCP_OUTPUT_TOKENS) -
Variables de entorno y flags para tareas cortas y simples, o para modo no interactivo
ENABLE_CLAUDEAI_MCP_SERVERS=false: desactivar servidores MCPCLAUDE_CODE_DISABLE_AUTO_MEMORY=1: evitar que se carguen memorias guardadas automáticamenteCLAUDE_CODE_DISABLE_CLAUDE_MDS=1: ignorarCLAUDE.mdglobales/de proyectoCLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1: excluir del prompt del sistema los subagentes integrados y las definiciones de skills--tools: activar de forma selectiva las herramientas nativas. Con--tools ""se desactivan todas. En workers que de verdad solo usan la inteligencia del modelo, se pueden apagar todas; pero si le pides tareas simples en modo interactivo, si apagas todo no podrá hacer nada, así que conviene dejar solo lo necesario, por ejemplo"Bash,Edit,Glob,Grep,Read,Write"--strict-mcp-config: usar solo la configuración MCP especificada por CLI e ignorar la configuración MCP global. Permite inyectar limpiamente solo los conectores necesarios por worker.--disable-slash-commands: saca del prompt del sistema las definiciones de comandos con slash como/helpo/clear--no-session-persistence: evita usar la ruta de guardado/reanudación de sesión, para que no queden rastros de ejecuciones de una sola vez--exclude-dynamic-system-prompt-sections: excluye secciones que cambian según la máquina o el entorno para mejorar la tasa de reutilización del caché del prompt--system-prompt: directamente, también se puede reemplazar por completo el prompt del sistema de Claude
-
Vaciar
attribution
Codex CLI (última versión verificada: 0.121.0 + código fuente de Codex en Github correspondiente a esa versión)
- Desactivar los MCP (apps/connectores) conectados a ChatGPT (
features.apps = false) web_search = "disabled"- Configurar un límite superior de salida (
tool_output_token_limit) - Flags para que funcione bien en modo no interactivo
--profile: permite agrupar ciertos ajustes (web_search = "disabled",tool_output_token_limit = 2000, etc.) y aplicarlos de forma selectiva--json+--output-last-message FILE: facilita el parseo/extracción en pipelines y reduce el reconsumo de tokens en etapas posteriores de procesamiento--sandbox read-only: en automatizaciones que solo necesitan lectura, bloquea intentos de escritura no intencionales → bucles de reintento → desperdicio de tokens--skip-git-repo-check: permite ejecutarlo incluso si no es un directorio confiable--ephemeral: no guarda archivos de sesión en disco--color never: deja más limpia la salida por pipe
- Vaciar
attribution
Para cerrar
Verifiqué los hechos con cuidado, pero por supuesto puede haber errores. Les agradecería mucho que me los reportaran con confianza.
5 comentarios
Parece un artículo que puede servir como muy buena referencia. Si en el texto el enfoque es cerrar la válvula de los "tokens de entrada",
yo me he encontrado muchas veces con casos donde el problema es que simplemente hay demasiadas "cosas registradas", así que hice una herramienta llamada claude-slim.
Es un CLI que escanea, clasifica y organiza situaciones como que de 60 skills no se use ni la mitad una sola vez, o que
CLAUDE.mdse vuelva demasiado grande por los plugins. El conteo de tokens está basado en js-tiktoken,y en lugar de eliminar, mueve los elementos a
skills.disabled/para que se puedan restaurar en cualquier momento.https://github.com/iops-leo/claude-slim
Creo que complementa exactamente la dirección de las configuraciones del artículo, así que sería bueno usarlos en paralelo.
¡Oh, gracias por compartirlo!
Gracias por compartir esta buena información. En realidad, siento que el uso de tokens en sí ya se ha reducido demasiado, así que ojalá lo aumentaran en Claude. Como el arnés se queda corriendo y se corta a la mitad...
Gracias. Como Claude también consume muchos tokens y su trabajo me deja algo menos satisfecho en comparación con Codex, últimamente estoy trabajando más con Codex.
Gracias.