← Claude Code Hub
✦ Tip #195 Sep 12, 2026

Effort en Claude Code: ajústalo por modelo una vez y no lo toques más

Si cambias de modelo a menudo has estado moviendo dos mandos, el modelo y el nivel de razonamiento. El segundo ya viaja pegado al primero, y tu settings.json tiene una clave nueva que no escribiste tú.

Effort por modelo en Claude Code: un settings.json con una entrada por modelo y tres escalas de effort con el punto en un sitio distinto en cada modelo, Sonnet en low, Fable 5.1 en high y Opus 5 en xhigh

TL;DR Un nivel por modelo. Corre /effort en cada modelo que uses y confirma con Enter: se guarda en modelSettings.<modelo>.effortLevel y esa entrada gana al effortLevel global del mismo archivo. s lo deja en esta sesión y /effort auto borra el del modelo activo.

Si usas más de un modelo, llevas tiempo moviendo dos mandos. Primero /model, luego /effort, porque el nivel de razonamiento que quieres en el modelo que investiga una hora no es el que quieres en el que te renombra tres variables. Desde la v2.1.251 el segundo mando viaja pegado al primero: Claude Code guarda el nivel por modelo, así que lo pones una vez en cada uno y cambiar de modelo ya te trae el nivel que le corresponde.

Mismo archivo de settings, dos modelos, dos niveles:

$ claude --model sonnet --settings '{"effortLevel":"high","modelSettings":{
    "claude-sonnet-5":{"effortLevel":"low"},
    "claude-opus-5":{"effortLevel":"xhigh"}}}' -p "/whicheffort"
EFFORT=low

$ claude --model opus   (el mismo --settings)
EFFORT=xhigh

Ni toqué /effort ni cambié el archivo entre las dos líneas. Cambié de modelo. (/whicheffort es la skill de seis líneas del tip de la precedencia: sigue siendo la única forma de leer el nivel real desde un script.)

Dónde se guarda el nivel

Abre tu configuración de usuario y mira las dos claves que deciden esto:

$ jq '{effortLevel, modelSettings}' ~/.claude/settings.json
{
  "effortLevel": "high",
  "modelSettings": {
    "claude-opus-5": { "effortLevel": "high" },
    "claude-fable-5": { "effortLevel": "high" },
    "claude-fable-5-1": { "effortLevel": "high" }
  }
}

El effortLevel de arriba lo escribí yo hace meses. Las tres entradas de abajo no: las ha ido escribiendo /effort solo, cada vez que confirmaba un nivel con Enter estando en un modelo distinto. Y como las tres dicen lo mismo que la clave global, llevo meses con un único nivel de razonamiento para tres modelos que uso para cosas que no se parecen. Escribir este tip es lo que me ha hecho abrir el archivo.

Dos detalles que importan al leerlo:

  • La entrada del modelo gana a la clave global dentro del mismo archivo. Es lo que prueba la primera línea de la prueba de arriba: effortLevel: "high" y aun así EFFORT=low, porque claude-sonnet-5 tenía low.
  • Se guarda con el nombre canónico (claude-opus-5) y aplica igual cuando arrancas con el alias: esa prueba salió de un --model sonnet contra una entrada claude-sonnet-5.

Y una cosa que no cambia: una entrada de otro modelo no te toca nada. Con claude-opus-5 en xhigh y corriendo Sonnet, sigues en lo que diga Sonnet.

Cómo dejarlo puesto

1. Mira en qué nivel estás ahora

/effort sin argumentos te lo dice para el modelo que tienes puesto. Si hay algo guardado, Current effort level: high. Si no hay nada, Effort level: auto (currently high), que es el default del modelo.

2. Guarda el nivel de ese modelo

/effort medium

Claude Code responde Set effort level to medium (saved as your default for new sessions) y escribe la entrada. El slider de /effort (y el de /model, con las flechas) hace lo mismo al confirmar con Enter. Si solo lo quieres para esta sesión, pulsa s en el slider: la respuesta cambia a (this session only) y no se guarda nada. Es el mismo reparto Enter / s que /model tiene para el modelo.

Un caso aparte: en Fable 5, Opus 4.8 y Opus 4.7, el modelo impone su propio default hasta que confirmas un nivel a mano. Confirmar con Enter (o teclear /effort <nivel>) lo libera; arrancar con --effort no. Opus 5 y Fable 5.1 no tienen esa retención.

3. Repite en el siguiente modelo

/model para cambiar, /effort <nivel> para fijarlo ahí. Cuál merece cuál es la conversación de Sonnet 5, Opus 5 y Fable: el que delega y verifica aguanta un nivel bajo mucho mejor que el que investiga solo.

4. Si te arrepientes

/effort auto

Borra lo guardado del modelo activo y lo devuelve a su default. No toca las entradas de los otros modelos ni la clave global.

Referencia

Cómo lo pones Alcance Qué deja escrito
/effort <nivel> o Enter en el slider Ese modelo, también en sesiones nuevas modelSettings.<modelo>.effortLevel
s en el slider de /effort o /model Solo esta sesión Nada
/effort max Solo esta sesión Nada, max no se acepta en settings
/effort auto Vuelve al default de ese modelo Quita esa entrada
effortLevel a mano en settings Los modelos sin entrada propia Lo que escribas
--effort al lanzar Solo esa sesión Nada
CLAUDE_CODE_EFFORT_LEVEL La sesión, y pisa todo lo de arriba Nada

El tope por modelo: maxEffortLevel

Dentro de la entrada del modelo cabe otra cosa: maxEffortLevel. Recorta cualquier nivel que pidas por encima, incluido el flag con el que arrancas.

$ claude --model sonnet --effort xhigh \
    --settings '{"modelSettings":{"claude-sonnet-5":{"maxEffortLevel":"low"}}}' \
    -p "/whicheffort"
Effort 'xhigh' exceeds the cap for claude-sonnet-5 set by your settings or organization; using 'low'
EFFORT=low

El aviso es la excepción: el effort en settings falla callado cuando escribes un nivel que no existe, y este tope es el único que te dice que ha recortado lo que pediste.

El modelo de tus subagentes

Tus subagentes no heredan tu nivel por defecto. Corren en el modelo que Claude les pase al invocarlos, o en el de su definición, y solo si nada de eso aplica heredan el de tu conversación. CLAUDE_CODE_SUBAGENT_MODEL entra por detrás de los dos primeros: desde la v2.1.251 es un valor por defecto, no una imposición. Si quieres que gane a todo, acompáñala:

{
  "env": {
    "CLAUDE_CODE_SUBAGENT_MODEL": "haiku",
    "CLAUDE_CODE_SUBAGENT_MODEL_FORCE": "1"
  }
}

Y el sitio donde compruebas que se aplicó es el panel /tasks. La fila de cada subagente lleva el modelo en el que corre, y le añade el nivel de effort cuando su definición, o la skill de la que salió, trae effort en el frontmatter. La fila, tal como sale en el panel:

craft:review › Adversarial review of cache-marker patch
9m 21s · 118.4k tokens · 45 tools · Opus 5 (1M context)

Queda un motivo viejo para no tocar el mando a mitad de tarea: cambiar el effort rompía la caché y la siguiente petición releía la conversación entera. En Fable 5.1 con API key o suscripción ya no, desde la v2.1.260: Claude Code aplica el nivel nuevo sin preguntarte. En los demás modelos sigue preguntando antes de romperla, y por eso conviene que el nivel esté puesto de antes.

Documentación oficial: Model configuration: adjust effort level · modelSettings · Sub-agents: choose a model

Requisitos

  • Comprobado en Claude Code v2.1.269. Lo ejecutado son las pruebas con --settings de este tip, incluido el aviso del tope. Las respuestas de /effort, s y /effort auto son las cadenas exactas del binario de la v2.1.269, no una sesión interactiva capturada, y la fila de /tasks sale del propio panel.
  • modelSettings necesita la v2.1.251, la tecla s del slider la v2.1.257, el maxEffortLevel por modelo la v2.1.267 y el modelo en la fila de /tasks la v2.1.242.
  • Guardar el nivel con Enter es cosa de una sesión interactiva en tu máquina: con -p, /effort solo vale para esa sesión y no escribe nada.
Guía gratuita

Los 51 esenciales, en una guía.

Una página por tip. Cinco capítulos. Lo que de verdad uso a diario en producción. Sin teoría, sin humo.

  • I. Empieza bien 10 tips
  • II. Conciencia 3 tips
  • III. Maestría 22 tips
  • IV. Autonomía 10 tips
  • V. Comparativa 6 tips
¿Eres desarrollador/a Web profesional?

Recibirás la guía por email · Te unes a la newsletter Gravitas · Cancela cuando quieras

de 51
#

Wmedia · 51 Tips
Guía gratuita · 51 tips · 5 capítulos

Los 51 esenciales, en una guía.

¿Eres desarrollador/a Web profesional? · Cancela cuando quieras
Workshop para equipos

Multiplica el output de tu equipo sin sacrificar calidad: workshop AI First de 6 a 8 horas, online, sobre la plataforma Claude.

Ver el workshop

¿Quieres los 51 esenciales de Claude Code en una guía?