Claude Platform Docs
  • Mensajes
  • Agentes gestionados
  • Administración

Search...
⌘K
Primeros pasos
Introducción a ClaudeInicio rápido
Desarrollar con Claude
Descripción general de funcionesUso de la API de MensajesMotivos de detención y respaldoRechazos y respaldoCrédito de respaldo
Capacidades del modelo
Pensamiento extendidoPensamiento adaptativoEsfuerzoPresupuestos de tareas (beta)Modo rápido (vista previa de investigación)Salidas estructuradasCitasStreaming de mensajesProcesamiento por lotesResultados de búsquedaStreaming de rechazosSoporte multilingüeEmbeddings
Herramientas
Descripción generalCómo funciona el uso de herramientasTutorial: Crear un agente que usa herramientasDefinir herramientasGestionar llamadas a herramientasUso de herramientas en paraleloTool Runner (SDK)Uso de herramientas estrictoHerramientas de servidorHerramienta de búsqueda webHerramienta de obtención webHerramienta de ejecución de códigoHerramienta de asesorHerramienta de búsqueda de herramientasHerramienta de memoriaHerramienta BashHerramienta de editor de textoHerramienta de uso de computadoraSolución de problemas
Infraestructura de herramientas
Referencia de herramientasGestionar el contexto de herramientasCombinaciones de herramientasUso de herramientas con almacenamiento en caché de promptsLlamadas programáticas a herramientasStreaming detallado de herramientas
Gestión de contexto
Ventanas de contextoCompactaciónEdición de contextoAlmacenamiento en caché de promptsMensajes del sistema a mitad de conversaciónCrear un modo de orquestaciónDiagnóstico de caché (beta)Conteo de tokens
Trabajar con archivos
API de archivosCompatibilidad con PDF
Habilidades
Descripción generalInicio rápidoMejores prácticasHabilidades para empresasHabilidades en la API
MCP
Servidores MCP remotosConector MCP
Claude en plataformas en la nube
Amazon BedrockAmazon Bedrock (heredado)Claude Platform en AWSGoogle CloudMicrosoft Foundry

Log in
Streaming de rechazos
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Claude Platform Docs

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Claude on AWS
  • Claude on Google Cloud

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Mensajes/Capacidades del modelo

Rechazos en streaming

Detecta y gestiona las razones de detención por rechazo en respuestas de streaming, y reintenta las solicitudes rechazadas en un modelo alternativo.

A partir de los modelos Claude 4, las respuestas de streaming de la API de Claude devuelven stop_reason: "refusal" cuando los clasificadores de streaming intervienen para gestionar posibles infracciones de políticas. Esta función de seguridad ayuda a mantener el cumplimiento del contenido durante el streaming en tiempo real.



Esta página explica cómo aparecen los rechazos en las respuestas de streaming. Para conocer cada valor de stop_reason y cómo gestionarlo, consulta Razones de detención y alternativas. Para reintentar solicitudes rechazadas en otro modelo de Claude, consulta Rechazos y alternativas.

Formato de respuesta de la API

Cuando los clasificadores de streaming detectan contenido que infringe las políticas de Anthropic, la API devuelve esta respuesta:

{
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Hello.."
    }
  ],
  "stop_reason": "refusal"
}


No se incluye ningún mensaje de rechazo adicional. Debes gestionar la respuesta y proporcionar mensajes apropiados para el usuario.

Restablecer el contexto después de un rechazo

Cuando recibas stop_reason: refusal, debes restablecer el contexto de la conversación antes de continuar. Puedes eliminar o reformular el turno que provocó el rechazo, o borrar por completo el historial de la conversación. Si intentas continuar sin restablecer el contexto, seguirás recibiendo rechazos.



Las métricas de uso se siguen proporcionando en la respuesta, incluso cuando esta es rechazada.

Cuando un rechazo llega antes de que Claude genere cualquier salida, no se te factura la solicitud en la API de Claude, y los recuentos de uso en esa respuesta son solo informativos. Cuando Claude genera salida antes del rechazo, sí se te factura esa solicitud.



Restablecer el contexto no es la única forma de recuperarse. También puedes reintentar la solicitud rechazada en un modelo de Claude diferente, y la página Rechazos y alternativas muestra cómo configurarlo con la alternativa del lado del servidor, el middleware del SDK o un reintento manual.

Guía de implementación

A continuación se muestra cómo detectar y gestionar los rechazos de streaming en tu aplicación:

client = anthropic.Anthropic()
messages = []


def reset_conversation():
    """Reset conversation context after refusal"""
    global messages
    messages = []
    print("Conversation reset due to refusal")


try:
    with client.messages.stream(
        max_tokens=1024,
        messages=messages + [{"role": "user", "content": "Hello"}],
        model="claude-opus-4-8",
    ) as stream:
        for event in stream:
            # Verificar si hay un rechazo en el delta del mensaje
            if event.type == "message_delta":
                if event.delta.stop_reason == "refusal":
                    reset_conversation()
                    break
except Exception as e:
    print(f"Error: {e}")

Tipos de rechazo actuales

Actualmente, la API gestiona los rechazos de tres formas diferentes:

Tipo de rechazoFormato de respuestaCuándo ocurre
Rechazos del clasificador de streamingstop_reason: refusalDurante el streaming, cuando el contenido infringe las políticas
Validación de entrada de la API y derechos de autorCódigos de error 400Cuando la entrada no supera las comprobaciones de validación
Rechazos generados por el modeloRespuestas de texto estándarCuando el propio modelo decide rechazar


Las futuras versiones de la API ampliarán el patrón stop_reason: refusal para unificar la gestión de rechazos en todos los tipos.

Prácticas recomendadas

  • Monitorea los rechazos: Incluye comprobaciones de stop_reason: refusal en tu gestión de errores
  • Restablece automáticamente: Implementa el restablecimiento automático del contexto cuando se detecten rechazos
  • Recurre a otro modelo: Configura la alternativa del lado del servidor o el middleware del SDK para que las solicitudes rechazadas se reintenten en otro modelo de Claude en lugar de mostrar un rechazo al usuario
  • Canjea el crédito de alternativa en reintentos manuales: Si implementas el reintento tú mismo, pasa el token de crédito de alternativa del rechazo para que el reintento no pague dos veces el costo de la caché de prompts
  • Proporciona mensajes personalizados: Crea mensajes amigables para el usuario para mejorar la experiencia cuando ocurran rechazos
  • Rastrea patrones de rechazo: Monitorea la frecuencia de rechazos para identificar posibles problemas con tus prompts

Notas de migración

Si implementaste la gestión de rechazos cuando esta función se lanzó por primera vez, o la estás añadiendo a una integración existente, verifica lo siguiente:

  • Los rechazos son respuestas, no errores. Un rechazo llega como una respuesta HTTP 200 exitosa con stop_reason: "refusal", por lo que el monitoreo basado únicamente en tasas de error no lo detectará. Rastrea los rechazos como una señal independiente.
  • Los modelos más recientes devuelven más detalles. En Claude Fable 5, un rechazo también incluye un objeto stop_details que identifica la categoría de política detrás de la negativa. Consulta Rechazos y alternativas para ver la estructura completa de la respuesta.
  • Reintenta en un modelo diferente. Reenviar una solicitud rechazada al mismo modelo generalmente resulta en otro rechazo. En lugar de solo restablecer el contexto, reintenta en un modelo alternativo con la alternativa del lado del servidor, el middleware del SDK o un reintento manual, y canjea el crédito de alternativa cuando implementes el reintento tú mismo.
  • Revisa los resultados de lotes en busca de rechazos. Una solicitud rechazada en un Lote de mensajes se devuelve como un resultado exitoso con stop_reason: "refusal", no como un resultado con error.
  • Centraliza la gestión en stop_reason. La API continúa consolidando la gestión de rechazos en torno a stop_reason: "refusal", así que bifurca según la razón de detención en lugar de según el comportamiento específico del modelo.

Próximos pasos

Rechazos y alternativas

Reintenta solicitudes rechazadas en otro modelo de Claude, del lado del servidor o en tu cliente.


Razones de detención y alternativas

Cada valor de stop_reason y cómo gestionarlo.


Mensajes en streaming

Transmite respuestas y lee stop_reason de los eventos message_delta a medida que llegan.


Soporte multilingüe

Atiende a usuarios en distintos idiomas con las capacidades multilingües de Claude.

Was this page helpful?

  • Formato de respuesta de la API
  • Restablecer el contexto después de un rechazo
  • Guía de implementación
  • Tipos de rechazo actuales
  • Prácticas recomendadas
  • Notas de migración
  • Próximos pasos