Cada llamada de uno de tus agentes que rechaza la pasarela alojada queda como petición bloqueada: la hora, el agente, el destino, el método, la ruta y el estado, la IP de quien llama y los ids de las detecciones. El cuerpo de la petición nunca se guarda. Las peticiones bloqueadas se guardan 30 días, y para leerlas Egress IA tiene que estar activado en la organización.
Códigos de bloqueo
| Código | Etiqueta del panel | Por qué |
|---|---|---|
injection_detected | Inyección de prompt | La petición llevaba órdenes que intentan anular las instrucciones del modelo (Bloquear la inyección de prompts activado) |
data_leak_blocked | Fuga de datos | La petición llevaba un secreto o un número de tarjeta (Bloquear fugas de datos activado) |
ssrf_blocked | SSRF | El destino resolvía a una dirección interna o privada |
egress_blocked | Destino no permitido | El agente llamó a un destino que no tiene permitido |
body_too_large | Cuerpo demasiado grande | El cuerpo pasaba de los límites de la pasarela (8 MiB, o 1 MiB de texto que inspeccionar) |
Las llamadas con un token desconocido o incorrecto (401) no se guardan: no se pueden atribuir a ninguna organización. La referencia recoge cada respuesta de la pasarela.
Leerlas
Abre Egress IA → Peticiones bloqueadas. La tabla enseña las peticiones de los últimos 7 días, las más recientes primero, con filtros por Código y Destino y una búsqueda libre por ruta, agente, IP y detección. En vivo muestra los bloqueos nuevos según los comunica la pasarela.
GET …/egress/events (donde … es https://dash.openwaf.dev/v1/orgs/{org}) devuelve una página de bloqueos, los más recientes primero, con los mismos filtros y la misma forma que los eventos de seguridad de una zona:
curl -sS "https://dash.openwaf.dev/v1/orgs/$ORG/egress/events?rule_name=injection_detected&host=openrouter&limit=50" \
-H "Authorization: Bearer $OPENWAF_TOKEN"Cada elemento es un evento de seguridad con action block, attack_type egress, rule_name el código, host el destino, user_agent el nombre del agente y msg los ids de las detecciones separados por comas. La ventana es since/until (RFC 3339; por defecto las últimas 24 horas, como mucho 31 días); otros filtros son ip, path, status, q y sus variantes not_, todos repetibles; limit va de 1 a 1000 (100 por defecto) y next_cursor da la página siguiente con cursor.
GET …/egress/events/stream sigue los bloqueos nuevos como Server-Sent Events y se reanuda desde Last-Event-ID. No está en los SDK.
egress_events lista las llamadas rechazadas de una ventana (range 1h, 24h por defecto, o 7d), si quieres solo de un code, un target o un agent, hasta limit (50 por defecto, como mucho 500). Sirve con cualquier rol de toda la organización.
Qué hacer con un bloqueo
egress_blocked: permite el destino en los destinos del agente, si el agente debe llamarlo.injection_detectedydata_leak_blocked: lee los ids de las detecciones. Si el texto venía de un documento o de una página web que leyó el agente, la pasarela ha hecho su trabajo. Para un agente que tenga que procesar ese tipo de texto, desactiva esa protección solo en ese agente.ssrf_blocked: no se puede usar un destino propio cuyo nombre resuelve a una dirección privada; apúntalo a un nombre público.body_too_large: envía los ficheros grandes por URL o con la API de ficheros del proveedor, o divide la petición.