Radar · 14/07/2026 · coding

Cómo detener las frases recurrentes de Claude (y por qué importa)

Qué pasó. Johanna Larsson publicó un script que intercepta el output de Claude Desktop y reemplaza las frases recurrentes (“load-bearing”, “honest take”, “you’re absolutely right”) con variantes a elección. El mecanismo usa el hook MessageDisplay de Claude Desktop: un script Python en ~/.claude/hooks/ que lee cada delta de texto y lo reescribe antes de que llegue a pantalla. La configuración va en ~/.claude/settings.json. El post cosechó 378 puntos y 429 comentarios en Hacker News.

Por qué te importa. Si usas Claude en conversaciones largas, reconoces el problema: ciertas fórmulas vuelven decenas de veces, y después de un tiempo distraen. El método funciona para neutralizar el síntoma, pero dice algo más grande: el tono de un modelo es una elección de diseño, no un hecho natural. Los tics lingüísticos que ves son resultado del post-training (como contábamos en el paper sobre Constitutional AI), y quien los encuentra insoportables puede corregirlos en local en lugar de esperar a que Anthropic los lima. En la práctica, el hook es interesante para otro uso: procesar el output antes de que llegue al usuario — por ejemplo añadir timestamps, traducir al vuelo, o archivar una copia.

Si quieres probarlo. El script original está en jola.dev/posts/how-to-stop-claude-from-saying-load-bearing. Copia el Python en ~/.claude/hooks/wordswap.sh, hazlo ejecutable (chmod +x), y añade el bloque JSON en ~/.claude/settings.json. Funciona en macOS, Linux y Windows (con WSL o Git Bash). El script de arriba no reemplaza frases dentro de código o JSON: los reemplazos van en texto natural.

En detalle

De dónde viene el problema

Los modelos lingüísticos aprenden a escribir observando miles de millones de textos, y después reciben un segundo entrenamiento (el RLHF o Constitutional AI) que los impulsa a preferir ciertos tonos. Claude fue entrenado para ser cortés, reflexivo y cauteloso, y esas características se manifiestan en fórmulas lingüísticas recurrentes. “Load-bearing” es un término técnico que Claude usa en contextos genéricos para decir “importante”; “honest take” es una manera de marcar una declaración personal; “you’re absolutely right” es una señal de acuerdo que puede sonar excesiva. Ninguno de estos es un error, pero la frecuencia los transforma en ruido.

El post-training no elimina los tics: los desplaza. Anthropic podría reducir la frecuencia de algunas frases actualizando los pesos o el system prompt, pero cada intervención tiene trade-offs (menos “load-bearing” podría significar menos precisión en arquitecturas de software, digamos). El problema está estudiado: el paper sobre sycophancy muestra que los modelos entrenados para estar de acuerdo desarrollan patrones lingüísticos que los delatan.

Cómo funciona el hook

Claude Desktop soporta hooks de extensión: scripts externos que leen y transforman el contenido antes de que llegue a la interfaz. El tipo MessageDisplay captura cada “delta” de texto (Claude genera en streaming) y permite reemplazarlo con otra cosa. El script de Larsson es un filtro regex que busca las frases clave y las reemplaza con alternativas definidas en un diccionario Python. El JSON devuelto contiene hookSpecificOutput.displayContent, que Claude Desktop usa en lugar del texto original.

El mecanismo no toca la respuesta del modelo: la caché y la ventana de contexto siguen viendo el texto original. El reemplazo ocurre solo en la visualización, así que si copias el output o lo reutilizas en un prompt, obtienes la versión modificada. Este es un límite para algunos flujos (por ejemplo si archivas las conversaciones) y una ventaja para otros (el modelo continúa comportándose como fue entrenado, tú solo ves una traducción superficial).

Qué dice la discusión en Hacker News

Los 429 comentarios se dividen en tres frentes:

  1. Quienes lo ven como un workaround necesario: usuarios que usan Claude para sesiones largas (refactoring, análisis técnico) y encuentran las fórmulas repetidas fastidiosas al punto de preferir un filtro en lugar de cambiar de modelo.
  2. Quienes prefieren corregir desde el origen: sugieren que Anthropic debería ofrecer un control de tono en los settings, en lugar de obligar a los usuarios a escribir scripts.
  3. Quienes defienden el tono original: encuentran que las frases recurrentes son inofensivas y que la percepción de fastidio es subjetiva. Algunos citan el fenómeno de la “frequency illusion” (comienzas a notar algo y después lo ves en todas partes).

La discusión toca también un tema más amplio: ¿la voz de un modelo es modificable por el usuario final? En un sistema cerrado la respuesta es no, pero un hook local como este abre una vía intermedia. No cambia el modelo, pero cambia la experiencia, y para muchos es suficiente.

Implicaciones prácticas

El método vale también más allá del caso específico. Un hook MessageDisplay puede:

  • Traducir al vuelo el output a otro idioma, útil para equipos multilingües que trabajan en la misma sesión.
  • Añadir metadatos a cada respuesta (timestamps, ID de sesión) para auditoría o archiviación.
  • Filtrar contenidos sensibles antes de la visualización, por ejemplo ocultando API keys o información personal que el modelo reportó por error.

El hook no está documentado de manera extensa en la guía oficial de Claude Desktop, y no hay garantías de estabilidad entre versiones: Anthropic podría cambiar o eliminar la interfaz sin previo aviso. Quien lo use para casos de producción debería monitorear las actualizaciones.

Cuánto importa realmente

El hecho de que un script tan simple haya generado casi 400 upvotes dice dos cosas. Primero: las personas que usan Claude intensamente tienen opiniones fuertes sobre su tono, y no todas son positivas. Segundo: existe demanda de herramientas que modifiquen la experiencia de usuario en modelos propietarios sin esperar a que el vendor cambie de dirección.

Pero el problema de fondo persiste: si un modelo necesita un filtro para ser soportable en sesiones largas, quizá el post-training optimizó para la conversación corta y descuidó la resistencia en el tiempo. Los usuarios reportan patrones similares en otros modelos (GPT tiene sus tics, Gemini también), así que no es una debilidad única de Claude. Es una característica de los modelos entrenados para sonar humanos: tienden a converger en fórmulas que funcionan mediamente bien, y esas fórmulas se hacen visibles cuando generas miles de líneas.

Si quieres evitar el problema sin escribir hooks, una opción es pedir explícitamente un tono diferente en el system prompt o en el primer mensaje: “Responde de manera directa, sin fórmulas de cortesía o marcadores de acuerdo.” Funciona, pero debe repetirse en cada nueva sesión, y el efecto se degrada en threads largos. El hook es más estable porque opera después de que el modelo ya ha generado, así que no depende de qué tan bien el modelo sigue tus instrucciones iniciales.

Escribe para buscar en curso, playbooks, skills, papers…