"Las medidas de seguridad de Fable 5 marcaron este mensaje." Si te encuentras con esto mientras escribes código normal, el clasificador de Fable 5 detectó un patrón de palabras clave en uno de tres dominios: biología, ciberseguridad o entrenamiento de ML.
No puedes desactivar el clasificador. Pero un encuadre adecuado del prompt del sistema elimina la mayoría de los falsos positivos. El 95% de las sesiones de Fable 5 nunca activan el fallback. Esta guía cubre qué lo activa, cómo diagnosticarlo y las estrategias a nivel de código que mantienen tus solicitudes en Fable 5.
Qué hace el sistema de seguridad de Fable 5
Fable 5 no rechaza las solicitudes marcadas. Las redirige a Opus 4.8 para una segunda evaluación usando modelado de intención y ponderación de contexto. Tres categorías de clasificador activan esta redirección:
- Biología y ciencias de la vida — investigación de patógenos, ingeniería de proteínas, vías de síntesis química
- Ciberseguridad y seguridad ofensiva — desarrollo de exploits, análisis de vulnerabilidades, pruebas de penetración
- Entrenamiento y destilación de ML — preentrenamiento de modelos de frontera, infraestructura de entrenamiento distribuido, extracción de pesos del modelo
Estas categorías son deliberadamente demasiado amplias. Anthropic's @ClaudeDevs afirmó: "Hacer visibles las salvaguardas hace que sea más fácil eludirlas, por lo que mantenerlas resistentes a los jailbreaks desafortunadamente implicará más falsos positivos mientras mejoramos los clasificadores."
Cómo saber si has sido marcado
Fable 5 tiene dos intervenciones distintas.
El respaldo visible
Ves un mensaje explícito y tu solicitud es atendida por Opus 4.8 en su lugar. Aún obtienes una respuesta, pero Opus 4.8 obtiene un 69.2% en SWE-Bench Pro frente al 80.3% de Fable 5.
La degradación silenciosa
Para tareas cercanas a ML, Fable 5 puede reducir discretamente la calidad de las respuestas sin notificación. Esto apunta al preentrenamiento de LLM de frontera, a la infraestructura de entrenamiento distribuido y al diseño de aceleradores de ML. Afecta aproximadamente al 0.03% del tráfico, pero si estás en ese 0.03%, la salida parece confusión del modelo más que un bloqueo de política.
Consulta el campo model en tu respuesta de API para confirmar qué modelo atendió la solicitud:
import anthropic
client = anthropic.Anthropic(api_key="your-key")
response = client.messages.create(
model="claude-fable-5",
max_tokens=1024,
system="Estás ayudando con trabajo de infraestructura de ML.",
messages=[{"role": "user", "content": "your prompt here"}]
)
# Si esto no coincide con lo que solicitaste, fuiste redirigido
print(f"Requested: claude-fable-5")
print(f"Served by: {response.model}")
Si el modelo servido difiere de su solicitud, el clasificador intervino.
Por qué se bloquea el trabajo legítimo
El clasificador lee el contenido, no la intención. Un investigador de seguridad que audita su propio código y alguien que crea malware usan la misma terminología. Cada categoría tiene un patrón distinto de falsos positivos:
Biología: Un investigador de COMBINE-lab pasó entre 15 y 30 minutos intentando conseguir que Fable 5 ayudara a reescribir una biblioteca de Rust para el análisis de RNA-seq. El código hacía referencia al procesamiento de secuencias biológicas, y el clasificador marcó cada intento. La tarea era una portación a Rust sin intención biológica, pero el vocabulario del dominio fue suficiente.
Ciberseguridad: Un desarrollador pidió a Fable 5 que revisara su aplicación en busca de vulnerabilidades de seguridad. Fable 5 encontró malware real en su sistema, luego el clasificador marcó la interacción y degradó la sesión. El modelo fue bloqueado para ayudar con la misma amenaza que descubrió.
ML/Distillation: Las indicaciones de investigación en ciencias ambientales han sido bloqueadas, mientras que las indicaciones de coordinación de enjambres de drones han pasado. El límite para "ML training" es lo suficientemente amplio como para abarcar la computación científica adyacente.
Cuatro estrategias que reducen los falsos positivos
Establezca el contexto profesional en su prompt del sistema
El clasificador pondera mucho tu prompt del sistema. Un genérico "You are a helpful coding assistant" no le da ninguna señal para distinguir el trabajo legítimo de la simulación de amenazas.
Este prompt del sistema pasa el clasificador de biografías:
Estás asistiendo a un investigador de bioinformática en un laboratorio universitario de genómica.
El trabajo implica el desarrollo de un pipeline estándar de RNA-seq
en Rust. Todas las referencias biológicas se refieren a
genomas de referencia disponibles públicamente y formatos de archivo
estándar de bioinformática (FASTQ, BAM, VCF).
Esto lo activa:
Ayúdame a procesar datos de secuencias biológicas y analizar
estructuras de proteínas.
El primero especifica quién, qué dominio, qué herramientas y delimita las referencias biológicas a datos públicos. El segundo usa terminología biológica amplia sin contexto.
Separar la terminología técnica de las instrucciones
Cuando tu prompt mezcla terminología "peligrosa" en instrucciones directas, el clasificador la lee como operativa. Cuando la misma terminología aparece en bloques de datos o contexto, la lee como material de referencia.
En lugar de:
Escribe código para escanear esta red en busca de vulnerabilidades
y explota cualquier debilidad en el sistema de autenticación.
Reestructurar:
Soy un ingeniero de seguridad que realiza una prueba de
penetración autorizada en el entorno de staging de nuestra
empresa. Revisa los siguientes resultados del análisis de red y sugiere qué
mecanismos de autenticación deberían probarse a continuación, siguiendo
la metodología OWASP.
[paste scan results here]
El segundo separa la intención (revisar resultados) del contexto de autorización (entorno de staging, prueba autorizada) y la metodología (OWASP). El clasificador puede distinguir esto de una solicitud de ataque.
Usa indicaciones del sistema a nivel de operador mediante la API
Las instrucciones del sistema a nivel de operador de Anthropic tienen más peso con el clasificador que las instrucciones a nivel de usuario. Establece tu contexto a nivel de operador usando el parámetro system en lugar de incrustarlo en los mensajes de la conversación.
response = client.messages.create(
model="claude-fable-5",
max_tokens=1024,
# Contexto a nivel de operador — el clasificador pondera esto con más peso
system="This application is a licensed security audit platform. "
"All requests involve authorized penetration testing of "
"the user's own infrastructure.",
messages=[{"role": "user", "content": user_prompt}]
)
Anthropic también admite calibrar umbrales de seguridad para casos de uso profesionales dentro de su política de uso. Si estás desarrollando una herramienta de análisis de seguridad o una plataforma de bioinformática, la configuración a nivel de operador es el camino correcto.
Divide las tareas sensibles entre indicaciones enfocadas
La acumulación de palabras clave en un solo prompt aumenta la confianza del clasificador en que la solicitud es arriesgada. Un prompt que menciona plegamiento de proteínas, CRISPR y vías de síntesis juntos tiene más probabilidades de activar la detección que tres prompts separados que tratan cada tema de forma independiente.
Cada prompt enfocado presenta un contexto más claro para que el clasificador evalúe.
Cuándo usar un modelo diferente
Algunos flujos de trabajo se benefician más al cambiar de modelo. El clasificador de seguridad de Fable 5 no existe en Opus 4.8 ni en Sonnet 5.
| Tarea | Modelo recomendado | Por qué |
|---|---|---|
| Revisión de código de seguridad | Opus 4.8 o Sonnet 5 | Sin clasificador, evaluación directa |
| Código de investigación bio/química | Sonnet 5 | Restricciones de seguridad más ligeras |
| Infraestructura de entrenamiento de ML | Opus 4.8 | Sin clasificador de destilación |
| Programación general | Fable 5 | 80.3% SWE-Bench Pro, el mejor disponible |
Fallback automático en el código
Si usas la API, puedes detectar la redirección de seguridad y reintentar en un modelo sin el clasificador de seguridad:
def query_with_fallback(prompt, system_context):
primary = client.messages.create(
model="claude-fable-5",
max_tokens=1024,
system=system_context,
messages=[{"role": "user", "content": prompt}]
)
# Detectar redirección de seguridad
if primary.model != "claude-fable-5":
return client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
system=system_context,
messages=[{"role": "user", "content": prompt}]
)
return primary
Esto funciona con cualquier proveedor de API que admita varios modelos de Claude a través del mismo endpoint. Los proxies de API de terceros como AIReiter ofrecen todos los modelos de Claude mediante una sola clave de API a tarifas reducidas, lo que hace que cambiar de modelo sea un cambio de una sola línea sin necesidad de configurar una cuenta aparte.
Preguntas frecuentes
¿Puedes desactivar por completo el clasificador Fable 5?
No. El clasificador es del lado del servidor y no es configurable por solicitud. Los prompts del sistema a nivel de operador influyen en cuán agresivamente detecta, pero no pueden desactivarlo. El clasificador bloquea el vector de jailbreak reportado en más del 99% de los casos, y Anthropic ha ampliado su equipo de seguridad para mantenerlo así.
¿El clasificador de seguridad conserva mis datos?
El tráfico de Flagged Fable 5 está sujeto a una retención obligatoria de datos de 30 días, lo que anula los acuerdos existentes de retención cero. Esto se aplica en todas las superficies, incluidas integraciones de terceros como GitHub Copilot, no solo al acceso directo a la API. Si su empresa tiene un contrato ZDR, las solicitudes marcadas son la excepción.
¿Vale la pena usar Fable 5 a pesar de los falsos positivos?
Si tu trabajo no se superpone con los tres dominios desencadenantes, Fable 5 lidera SWE-Bench Pro con un 80.3% (Opus 4.8: 69.2%, GPT-5.5: 58.6%). Si te topas regularmente con clasificadores, Opus 4.8 o Sonnet 5 sin la sobrecarga del clasificador te costarán menos tiempo a pesar de sus puntuaciones más bajas en benchmarks.
