⚠️ Antipatrones
Qué NO hacer al diseñar un system prompt: los 5 antipatrones más comunes más la inflación de énfasis, cada uno con su síntoma y tu antídoto (el patrón correspondiente del catálogo). Cerramos la tesis de la Ruta 1: consolidación > acumulación.
Diagrama ilustrativo — el prompt-cebolla acumula capas con cada bug; el consolidado fusiona reglas redundantes en un principio.
Contenido detallado
Por qué importan los antipatrones
Ponerle nombre al error es la mitad de la solución. Un antipatrón es una solución que parece resolver un problema, pero crear otro mayor —por lo general invisible hasta que el prompt ya es demasiado grande para revisar. En los tres módulos anteriores viste los 12 patrones que funcionan. Aquí aprendes a reconocer los 5 que sabotean y, para cada uno, el patrón que lo deshace.
🧭 La tesis de la Ruta 1: consolidación > acumulación
Todo antipatrón de este módulo es una forma de acumulación: más reglas, más listas, más mayúsculas, más capas. Y todo antídoto es una forma de consolidación: un principio que sustituye muchas reglas, una capa que separa lo estable de lo dinámico.
La prueba viva está en el diff Anthropic/claude-opus-4.8.md → claude-fable-5.md: mucho contenido nuevo, pero un saldo de apenas +56 líneas,
porque Se eliminaron 7 bloques completos. Evolucionar no es crecer.
Por qué es difícil verlo desde adentro
Cada regla individual parece razonable —alguien la agregó para corregir un error real. El problema es la suma: veinte reglas razonables se convierten en un prompt imposible de revisar, donde las reglas se contradicen y el modelo pierde el hilo. Los antipatrones solo se vuelven obvios cuando comparas versiones del mismo prompt, que es exactamente lo que hará la Ruta 2.
Los 5 antipatrones + 1 honorario (y sus antídotos)
| Antipatrón | Síntoma | Antídoto |
|---|---|---|
| Prompt cebolla | cada bug se convierte en una regla; nada se quita | Patrón 12 — Principio consolidado |
| Prohibición sin motivo | "Never X" sin más; el modelo encuentra cómo eludirlo | Patrón 3 — Regla con porqué |
| Regla mecánica de seguridad | listar términos prohibidos arma al atacante | Principio, no mecánica |
| Formato como muleta | listas/emoji en todo | Patrón 7 + primero la prosa |
| Todo en el prompt | contexto dinámico mezclado con el estable | Patrón 10 — Recordatorio del sistema |
| Inflación del énfasis | todo es IMPORTANT/CRITICAL/NEVER | límites poco frecuentes, reservados para restricciones estrictas |
🧅 Prompt de cebolla
Síntoma: cada bug observado se convierte en una regla nueva añadida al final del prompt. No se elimina nada: solo se agrega. Después de meses, el prompt tiene capas y capas de instrucciones puntuales que nadie se atreve a borrar «porque algo podría romperse». El prompt se convierte en una cebolla: muchas capas, y quien la toca llora.
🚨 El síntoma en el código
## Comportamento
You are a helpful assistant. Be concise.
IMPORTANT: never use bullet points. # bug #12
IMPORTANT: actually, bullets are ok for lists. # bug #19 contradiz #12
NEVER apologize. # bug #31
ALWAYS apologize if you made an error. # bug #47 contradiz #31
CRITICAL: do not mention you are an AI. # bug #52
...mais 40 linhas de "patches"
Las reglas #12/#19 y #31/#47 ya se contradicen. El modelo elige de forma impredecible, y el siguiente bug agrega la regla #61, nunca elimina las anteriores.
💊 Antídoto — Patrón 12: Principio consolidado
Periódicamente, haz una ronda de consolidación: agrupa las reglas específicas, encuentra el principio que las genera, escribe ese principio y borra las reglas secundarias. Las cuatro reglas anteriores se convierten en una sola: "Match tone and structure to the request; correct your own errors plainly."
Ver la ficha completa en educacao/fichas/12-principio-consolidado.md.
Contraejemplo real: el diff 4.8 → Fable 5
Anthropic hizo exactamente una ronda de consolidación al pasar de Opus 4.8 a Fable 5. Se eliminaron siete bloques, y aun así el prompt ganó contenido nuevo: el saldo neto es de apenas +56 líneas. Lo eliminado:
<search_first>
comportamiento ya internalizado por el entrenamiento → la instrucción se convirtió en ruido
<default_stance>
postura absorbida por <refusal_handling> sin reiteración
<respond_without_citing_system_prompt>
"no digas X" provoca el efecto Streisand → resolver de raíz
4 micro-regras de tom
se convirtieron en 1 principio: "assumes the person is a capable adult"
Fuente: educacao/diff-anotado-opus-4.8-fable-5.md (elementos 2, 3, 4, 8).
🚫 Prohibición sin motivo
Síntoma: reglas "Never X" / "Do not Y" añadidas sin justificación. El modelo obedece al pie de la letra, pero no entiende la intención — entonces bordea la regla: encuentra un caso que la frase literal no cubre y hace exactamente lo que querías evitar. Una prohibición tajante es frágil porque no generaliza.
✗ Prohibición tajante (frágil)
Never write to files outside /tmp.
- •El modelo escribe en
/var/tmp— "no es/tmp, entonces puedes" - •No cubras symlinks, montajes ni rutas relativas
- •Sin la intención, cada brecha se convierte en un nuevo «Never»
✓ Regla con porqué (robusta)
Only write inside the sandbox dir,
because writes elsewhere can corrupt
the host system the user depends on.
- •O por qué ("corromper el host") cubre todos los caminos
- •Generaliza a casos no incluidos en la lista
- •El modelo razona, no solo obedece
💊 Antídoto — Patrón 3: Regla con el porqué
Toda prohibición importante lleva su justificación: instrucción + razón. Anthropic lo usa de forma casi universal
(because… integrado en cada regla crítica).
Cuando el modelo entiende el motivo, aplica la regla a situaciones que el autor nunca previó, que es justamente donde falla la prohibición tajante.
Ficha: educacao/fichas/03-regra-com-porque.md.
🛡 Regla mecánica de seguridad
Síntoma: la sección de seguridad enumera literalmente términos, técnicas o frases prohibidos. El problema: la lista enseña exactamente qué evitar decir. En seguridad hay una asimetría perversa: el mismo texto que orienta a un lector bienintencionado sirve de guion listo para un atacante. Enumerar la mecánica de detección arma a quién quieres bloquear.
🚨 La asimetría que arma al atacante
Si el prompt dice «rechaza solicitudes que contengan [lista textual de técnicas de manipulación]", esa lista se convierte en un índice de ataque: el lector malintencionado lee la propia lista de defensa como un menú. Peor aún: el modelo ahora puede compilar y reproducir esta lista categorizada si se solicita indirectamente.
La regla de oro: en seguridad, describe el patrón que hay que detectar, nunca la mecánica de detección. Lo que educa, arma.
📄 Ejemplo real: seguridad infantil en Fable 5
Al pasar de Opus 4.8 a Fable 5, la sección de seguridad infantil creció de 5 a 7 bullets — y los dos nuevos son precisamente sobre quedarse en el nivel del patrón:
"Claude stays at the pattern level... does not compile categorized lists of verbatim lines"
"When Claude declines or limits for child-safety reasons, it states the principle rather than the detection mechanics"
En lugar de listar técnicas de manipulación prohibidas (lo que se convertiría en un script reutilizable), el prompt indica al modelo que reconozca el patrón y declarar el principio.
Fuente: educacao/diff-anotado-opus-4.8-fable-5.md (elemento 7).
✗ Mecánica (prepara al atacante)
- •Lista verbatim de términos/técnicas prohibidos
- •"Rechaza si el mensaje contiene las palabras X, Y, Z"
- •El modelo puede compilar la lista categorizada
- •Se puede eludir cambiando las palabras (misma intención)
✓ Principio (cubre lo no previsto)
- •Describe el patrón de comportamiento a reconocer
- •Declara el principio («stay at the pattern level»)
- •Los estados de rechazo citan el principio, no la mecánica
- •Cubre la próxima técnica que nadie haya enumerado
📐 El formato como muleta y 📦 Todo en el prompt
Dos antipatrones hermanos: ambos confunden forma con contenido. El primero fuerza una estructura visual donde no ayuda; el segundo vuelca información dinámica en un lugar reservado al comportamiento estable.
A) 📐 El formato como muleta
Síntoma: el prompt indica usar listas, encabezados y emoji en todo. La respuesta se convierte en un esqueleto de viñetas sin prosa que conecte las ideas: el lector recibe fragmentos, no un razonamiento. El formato se vuelve una muleta porque reemplaza el pensamiento con adornos.
✗ Formato como muleta
- •"Always use bullet points and headers"
- •Emoji en todas las respuestas, incluso las técnicas
- •Markdown en salida de texto plano (terminal, API)
- •La respuesta se convierte en un esqueleto sin prosa coherente
✓ Antídoto — Patrón 7 + prosa primero
- •Presupuesto de concisión explícito (Patrón 7)
- •"Default: concise prose; lists only when they help"
- •Markdown solo cuando la salida se renderizará
- •Emoji solo cuando el usuario lo pide explícitamente
B) 📦 Todo en el prompt
Síntoma: la fecha actual, el nombre del usuario, los avisos puntuales y las flags de runtime quedan hardcoded en el prompt estable. Resultado: el prompt debe reescribirse con cada cambio de contexto, y el modelo trata la información volátil como si fuera una regla permanente.
💊 Antídoto — Patrón 10: Recordatorio del sistema
Separa las capas: el comportamiento estable queda en el prompt; el contexto dinámico entra vía <system-reminder> inyectado por el harness en cada turno.
Fable 5 llevó esto al extremo al añadir el long_conversation_reminder: en vez de inflar el prompt base para resolver la degradación en conversaciones largas, se inyecta un recordatorio dinámico en el momento adecuado.
La lección: un problema de runtime se resuelve en la capa de runtime — sin hacer más extenso el prompt estable.
Fuente: educacao/diff-anotado-opus-4.8-fable-5.md (elemento 14) · ficha fichas/10-lembrete-de-sistema.md.
📢 Inflación del énfasis
El antipatrón honorario, y el que mejor cierra la tesis de la ruta. Síntoma: todo es IMPORTANT, CRITICAL, NEVER, en mayúsculas.
Cuando todo grita, nada se escucha: el modelo pierde la capacidad de distinguir el límite estricto (copyright, seguridad) de la preferencia flexible. El énfasis es un recurso escaso: gastarlo en todo significa no tenerlo para lo que importa.
🚨 "Cuando todo es IMPORTANT, nada es"
IMPORTANT: be concise.
CRITICAL: use markdown.
IMPORTANT: never use emoji.
CRITICAL: always cite sources.
IMPORTANT: respond in the user's language.
NEVER: make assumptions.
CRITICAL: be helpful.
Siete "CRITICAL/IMPORTANT" uno junto al otro: el modelo no puede saber cuál es realmente innegociable. El énfasis se convirtió en ruido de fondo.
La dirección: caps cada vez más escasos (Opus → Fable 5)
4 microreglas de tono en mayúsculas/imperativo (sin viñetas al rechazar, sin apodos cariñosos, sin «genuinely/honestly/actually», regla de emojis), más
<claude_prioritizes_copyright_compliance> con «NON-NEGOTIABLE» enfático.
Las 4 microreglas se convirtieron en un principio sereno: "Claude assumes the person is a capable adult and treats them as such."
El bloque de copyright cambió de nombre de <claude_prioritizes_copyright_compliance> para <core_copyright_principle> — de imposición a valor.
«NON-NEGOTIABLE» permanece, pero ahora se reserva para un límite genuinamente estricto.
Regla práctica del énfasis
Reserva las mayúsculas (NEVER, NON-NEGOTIABLE) para los 2 o 3 límites verdaderamente innegociables del prompt: por lo general, copyright y seguridad. Todo lo demás se convierte en prosa con su porqué. Si tienes diez «IMPORTANT», no tienes ningún énfasis real. Ver Patrón 4 (Contraste ALWAYS/NEVER): el uso de mayúsculas se reserva para comportamientos críticos.
Resumen del módulo
Todos los antipatrones son formas de acumulación; todos los antídotos son formas de consolidación. Esta es la tesis de la Trilha 1, y el diff 4.8 → Fable 5 es la prueba viviente: +56 líneas, −7 bloques.
- ✓Prompt cebolla → ronda de consolidación (patrón 12); eliminar también es parte de evolucionar
- ✓Prohibición sin motivo → Regla con porqué (patrón 3); el motivo se generaliza
- ✓Regla mecánica de seguridad → patrón, no mecánica; lo que educa, arma
- ✓Formato como muleta → Patrón 7 + prosa primero
- ✓Todo en el prompt → Recordatorio del sistema (patrón 10); cada capa en su lugar
- ✓Inflación del énfasis → mayúsculas poco frecuentes; cuando todo es IMPORTANT, nada lo es
Siguiente: 1.5 — Glosario esencial
Antes de pasar a la Trilha 2, ten a mano una guía rápida: el Glosario traduce todo el lenguaje técnico del curso al español cotidiano. Vuelve a él siempre que te trabes con un término.