For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegación principal

Monitoreo de desalineación

Gestiona conversaciones detenidas y alertas de seguridad del proyecto.

El monitoreo de desalineación comprueba si un agente interpreta correctamente las instrucciones del usuario en contextos con consecuencias importantes, como transferir datos sensibles, acceder a ellos o realizar cambios destructivos. Revisa el razonamiento y las acciones del modelo de forma asíncrona y puede detener una conversación cuando identifica un posible problema.

Una señal de alerta indica que las acciones del agente necesitan revisión. No demuestra que el usuario haya infringido una política ni que el agente haya actuado en contra de las instrucciones. El monitoreo puede pasar por alto problemas o señalar actividades legítimas, por lo que debes seguir usando medidas de protección en la aplicación, incluida la aprobación humana para acciones con consecuencias importantes.

Para obtener más contexto, consulta la descripción general del monitoreo de desalineación en el Centro de ayuda.

Cobertura de solicitudes

Para los modelos cubiertos por este sistema, el monitoreo y la detención automática dependen de la API que usa la solicitud y de cómo conserva el contexto de la conversación:

SolicitudesComportamiento
Solicitudes a la API Responses que usan razonamiento persistido, WebSockets o compactación de OpenAISe monitorean. El sistema puede identificar continuaciones de una conversación y bloquear la ejecución posterior.
Solicitudes a la API Responses que no usan ninguno de esos mecanismosSe monitorean. Los webhooks configurados pueden recibir alertas, pero el sistema no detiene automáticamente la conversación.
Solicitudes a la API para completar chatsNo están cubiertas por este sistema de monitoreo. Se siguen aplicando otras comprobaciones de seguridad.

Consulta cómo conservar el razonamiento entre llamadas, el modo WebSocket y la compactación para obtener orientación sobre el contexto de la conversación. Configurar un webhook de alertas no habilita la detención automática.

Gestionar una solicitud detenida

Cuando el monitoreo de desalineación bloquea una solicitud antes de que comience el streaming, la API devuelve HTTP 403, con el tipo de error invalid_request_error y el código misalignment_policy_violation. Identifica el error por su código, no por el texto del mensaje. Las integraciones de streaming también deben gestionar los errores mientras consumen el flujo, incluso después de recibir una salida.

Si tu aplicación recibe este error:

  1. Deja de enviar acciones adicionales para la conversación afectada. No reintentes automáticamente el flujo de trabajo bloqueado.
  2. Conserva los ID de solicitud y respuesta pertinentes, las llamadas a herramientas y los registros de la aplicación de acuerdo con tus políticas de manejo de datos.
  3. Muestra la información disponible sobre el error al usuario u operador responsable de la tarea. Pídele que compare las acciones del agente con el trabajo previsto y que revise los cambios ya realizados.

La API no ofrece un mecanismo general para reanudar una conversación detenida por el monitoreo de desalineación.

Como el monitoreo es asíncrono, es posible que una acción ya se haya completado antes de que el monitoreo identifique un posible problema. Detener una solicitud no deshace las acciones anteriores.

Recibir alertas de seguridad del proyecto

Suscríbete a safety.alert.created para enviar las alertas de monitoreo de un proyecto de la API a un sistema que opere tu equipo. Recibir alertas no sustituye la gestión de errores en las solicitudes a la API.

Sigue las instrucciones de Crear puntos de acceso de webhooks para cada proyecto cuyas alertas quieras recibir. Consulta la guía de Webhooks para obtener información sobre la verificación de firmas y los acuses de recibo, los reintentos y las entregas duplicadas.

El webhook contiene un ID de alerta, en lugar de los detalles de la alerta:

{
  "object": "event",
  "id": "evt_123",
  "type": "safety.alert.created",
  "created_at": 1787659200,
  "data": {
    "id": "alert_0123456789abcdef0123456789abcdef"
  }
}

Después de verificar el webhook y confirmar su recepción, recupera la alerta durante el procesamiento en segundo plano. Reemplaza el valor de ejemplo salert_123 por data.id del webhook. El campo id del evento identifica el evento del webhook, no la alerta. Usa una clave de API autorizada para el mismo proyecto con el permiso api.safety.alerts.read:

curl "https://api.openai.com/v1/safety/alerts/salert_123" \
  -H "Authorization: Bearer ${OPENAI_API_KEY}"
Recuperar una alerta de seguridad del proyecto
# Replace the illustrative IDs and URLs below with your own resource values.

from openai import OpenAI

client = OpenAI()
alert = client.safety.alerts.retrieve("salert_123")
print(alert.error_type, alert.reason)

Usa los valores de request_id y response_id devueltos para encontrar el trabajo afectado en los registros de tu aplicación. Trata la categoría de la alerta como un posible problema que debes investigar. Cuando request_paused es true, el bloqueo de seguridad se registró correctamente; esto no confirma que la ejecución se haya detenido ni que se hayan revertido las acciones anteriores. Revisa el estado de la tarea y los registros de herramientas en tu aplicación.

El valor de reason de la alerta puede ser null, incluso para solicitudes con retención cero de datos (ZDR). Un valor no nulo de reason es una descripción de la categoría, no una transcripción ni un informe completo de investigación. Conserva los registros que necesites de acuerdo con las políticas de datos de tu organización. Consulta Tus datos para obtener información sobre los controles de datos de la API.

Si la recuperación devuelve 404 con el código safety_alert_not_found, revisa el ID de alerta y las credenciales del proyecto. Los registros inexistentes, inaccesibles o incompletos pueden devolver este error. La entrega y la recuperación de alertas no proporcionan un historial de auditoría completo.