8 min de lectura

Cómo el acuse de incidentes por IA debe mantenerlos abiertos

El acuse de incidentes por IA debe registrar la responsabilidad sin cerrarlos. Aprende sobre transiciones, aprobaciones, carreras y auditoría.

Cómo el acuse de incidentes por IA debe mantenerlos abiertos

Un agente que acusa recibo de una alerta solo ha hecho una afirmación útil: alguien, ya sea una persona o un sistema, ha aceptado la responsabilidad de investigarla. El agente no ha demostrado que los clientes se hayan recuperado, que la condición de alerta haya desaparecido ni que el siguiente respondedor pueda retirarse. Cualquier integración que convierta el acuse en cierre destruye esa distinción y escribe una ficción en el registro del incidente.

Trata las acciones de incidentes como transiciones de estado separadas, cada una con sus propios permisos. Acusar, resolver, suprimir y enrutar pueden aparecer juntas en la interfaz del sistema de guardias, pero responden a preguntas operativas distintas. Un agente debe llamar a la acción más limitada, una persona debe aprobar la transición con consecuencias cuando la política lo exija y el rastro de auditoría debe identificar a ambos actores.

El acuse registra la responsabilidad, no la recuperación

Acusar recibo significa que un respondedor ha tomado la alerta y ha empezado a investigarla. Cambia quién debe actuar y suele cambiar el comportamiento de la escalación. No dice nada sobre si el fallo sigue existiendo.

La documentación Incidents de PagerDuty establece la distinción de forma explícita: se está trabajando en un incidente acusado, pero todavía no se ha resuelto. El acuse reclama la responsabilidad y detiene la escalación hasta que vence su plazo; la resolución significa que el problema se ha corregido. Ese plazo importa. Si nadie resuelve el incidente antes de que venza, PagerDuty puede devolverlo al estado triggered y reanudar la escalación. Un agente que cierre el incidente al acusarlo elimina silenciosamente ese mecanismo de seguridad.

Google Cloud Monitoring utiliza términos algo distintos, pero conserva la misma frontera. Su documentación define Acknowledged como un incidente abierto que alguien ha marcado manualmente mientras lo investiga. También dice que el acuse no detiene las notificaciones repetidas. Un aplazamiento o un cambio de política controla esas notificaciones, mientras que el cierre se produce después de observar la recuperación, de un cierre manual o de una condición de cierre automático. El comportamiento del producto advierte contra la idea de que todos los verbos de un sistema de guardias tienen los mismos efectos secundarios.

El contrato práctico debe ser claro: acknowledge registra una persona asignada, la hora del acuse y el actor que aceptó el trabajo. Puede pausar una ruta de escalación si el sistema admite ese comportamiento. Debe mantener abierto el estado de recuperación del incidente, conservar las alertas activas y evitar cualquier cambio de las reglas de notificación o enrutamiento, salvo que quien llama solicite otra acción mediante otro control.

Esta frontera también protege las métricas de incidentes. Si el acuse cierra el registro, el tiempo hasta el acuse y el tiempo hasta la recuperación se convierten en una sola marca temporal. El equipo acaba premiando pulsaciones rápidas mientras pierde la medida que explica cuánto tiempo sufrieron realmente los usuarios. Los análisis posteriores heredan el mismo error porque la cronología afirma que el servicio se recuperó antes de que funcionara la mitigación.

Un verbo del agente debe corresponder a una transición

Cada herramienta para agentes debe exponer un verbo operativo y un efecto principal. Las acciones agrupadas parecen cómodas durante una revisión tranquila del diseño, pero resulta imposible razonar sobre ellas durante un fallo.

Acusar responde a quién aceptó el trabajo. Su efecto principal es registrar la responsabilidad y la hora, y no debe implicar que el servicio se recuperó o que la alerta desapareció. Resolver responde a si el incidente ha terminado. Cierra el registro después de obtener pruebas de recuperación y no debe silenciar alertas futuras ni cambiar la responsabilidad como efecto secundario.

Suprimir responde a si una señal seleccionada debe crear un incidente o generar una notificación. Impide determinadas notificaciones o la creación de incidentes dentro de un alcance definido, pero no recupera un incidente que ya está abierto. Enrutar responde a quién debe recibir el trabajo o asumirlo. Cambia el servicio, el equipo, la ruta de escalación o la persona asignada sin afirmar que el destino haya acusado o resuelto nada.

Estas definiciones forman una frontera de autorización. Una persona puede sentirse cómoda dejando que un agente acuse cualquier alerta asignada a su equipo y, al mismo tiempo, exigir la aprobación de una persona para resolverla. Esa misma persona puede permitir la supresión solo durante una ventana de mantenimiento declarada y el enrutamiento solo entre dos servicios. Una capacidad general manage_incident no puede expresar esas decisiones sin ramas ocultas.

Evita una herramienta como handle_page con indicadores para ack, mute, assign y close. Permite al modelo elegir un conjunto según un texto, y una sola frase mal entendida puede seleccionar varias mutaciones. Las herramientas separadas obligan a quien llama a declarar su intención y permiten que la puerta de enlace autorice cada transición por separado.

La separación debe sobrevivir a los adaptadores de cada proveedor. Si un proveedor llama snooze a la acción de silenciar y otro la llama downtime, el adaptador puede asignar ambos nombres a una intención común suppress_notifications. No debe fingir que la supresión y la resolución son intercambiables solo porque ambas pueden dejar el sistema de guardias en silencio.

Una API segura hace imposibles las combinaciones ilegales

Un esquema de solicitud limitado evita más incidentes que una instrucción ingeniosa. La solicitud siguiente puede acusar un incidente existente y no puede introducir a escondidas una operación de cierre, silencio o reasignación.

{
  "operation": "incident.acknowledge",
  "incident_id": "inc_01JQ8K4Q6M",
  "expected_version": 17,
  "actor": {
    "type": "agent",
    "session_id": "ses_01JQ8JY2P3"
  },
  "reason": "Accepted investigation after the database latency page"
}

El servidor, no el agente, debe añadir los datos de identidad que pueda verificar. Un modelo puede proporcionar una razón, pero nadie debe confiar en él para declarar su propio hash ejecutable, su identidad de firma de código, la cuenta de usuario o el resultado de la aprobación. La puerta de enlace deriva esos valores del proceso autenticado y del canal de aprobación.

Una respuesta correcta debe describir la transición exacta y el estado que permanece:

{
  "operation_id": "op_01JQ8K5D7A",
  "incident_id": "inc_01JQ8K4Q6M",
  "transition": "triggered_to_acknowledged",
  "incident_status": "acknowledged",
  "recovery_status": "open",
  "version": 18,
  "approved_by": "usr_2048",
  "approved_at": "2026-07-24T02:14:31Z"
}

Devolver recovery_status: open puede parecer redundante. Consérvalo. Los agentes suelen razonar a partir de la última respuesta recibida, y un estado explícito cuesta menos que pedirle a un modelo que deduzca la semántica del proveedor. La respuesta también ofrece al orquestador una afirmación estable para una prueba: el acuse se completó y la recuperación siguió abierta.

No aceptes campos de conveniencia contradictorios como resolve_if_healthy, mute_for o route_to en la solicitud de acuse. Esos campos vuelven a convertir un endpoint en un paquete de acciones. Si el flujo necesita una segunda acción, debe enviar una segunda solicitud, recibir una decisión independiente y dejar un evento de auditoría separado.

La aprobación pertenece a la transición

La aprobación debe autorizar un cambio de estado descrito, no bendecir a un agente en abstracto. La aprobación de una sesión puede establecer que un proceso conocido puede ejecutarse, pero no debe autorizar automáticamente todas las mutaciones de incidentes que el proceso encuentre más adelante.

Para cada transición, registra la operación propuesta, el incidente de destino, el estado observado antes de la decisión, el alcance solicitado, la sesión del agente solicitante, la persona que aprobó, la hora de la decisión y el método de aprobación. Añade la versión del estado o el identificador de evento del proveedor que vio la persona. Sin ese vínculo, una tarjeta mostrada para el incidente A puede reutilizarse contra el incidente B, o una aprobación concedida mientras el incidente estaba triggered puede ejecutarse después de que otra persona lo resuelva.

La pantalla de aprobación debe usar lenguaje operativo. Acusar el incidente de latencia de base de datos inc_01JQ8K4Q6M y asignar la investigación a la guardia de Pagos se puede revisar. Permitir acción del agente no. Para una resolución, muestra la prueba de recuperación citada por el agente y declara qué sigue activo. Para una supresión, muestra el alcance exacto de la señal, la duración y la caducidad. Para un enrutamiento, muestra el destino actual y el propuesto.

Conserva cuatro identidades en lugar de reunirlas en un campo actor ambiguo:

  • El solicitante es la sesión del agente que propuso el cambio.
  • Quien aprueba es la persona que lo autorizó cuando hacía falta aprobación.
  • El ejecutor es la identidad de la puerta de enlace o de la integración que llamó al proveedor.
  • El sujeto es el incidente, alerta, servicio o ruta que cambió.

Estas identidades responden a preguntas distintas durante una revisión. El solicitante explica por qué empezó la automatización. La persona que aprueba establece la autoridad humana. El ejecutor vincula el evento con las credenciales y los registros del proveedor. El sujeto impide que una decisión válida se desplace a otro recurso.

Sallyport puede exigir una aprobación por llamada para acciones de API HTTP y SSH cuando una clave almacenada así lo requiera, mientras la credencial permanece en su bóveda cifrada y nunca llega al agente. Ese mecanismo encaja con las transiciones de incidentes porque la aprobación puede vincularse a la solicitud concreta al proveedor en lugar de a una promesa libre escrita por el modelo.

Las carreras convierten una automatización plausible en una cronología falsa

Revoca una sesión descontrolada
Sallyport revoca la ejecución activa sin entregar al proceso la credencial del sistema de guardias.

El estado de un incidente cambia mientras un agente razona, espera una aprobación o reintenta una llamada de red. Un diseño que ignore esa demora terminará por acusar un incidente resuelto, apartar el trabajo de un respondedor activo o aplicar una supresión antigua después del mantenimiento.

Usa concurrencia optimista. El agente lee la versión 17, propone un acuse contra la versión 17 y la puerta de enlace solo lo ejecuta si el registro del proveedor aún coincide con el estado relevante. Si otra persona cambia primero el incidente, devuelve un conflicto que indique la diferencia en vez de aplicar silenciosamente la operación al estado nuevo.

{
  "error": "state_conflict",
  "incident_id": "inc_01JQ8K4Q6M",
  "expected_version": 17,
  "actual_version": 19,
  "actual_status": "resolved",
  "retryable": false
}

No enseñes al agente a reintentar todos los conflictos. Un timeout de transporte puede justificar un reintento idempotente con el mismo identificador de operación. Un conflicto de estado exige una lectura nueva y suele exigir otra decisión. Si el incidente ya está resuelto, el acuse ha quedado obsoleto. Si se ha enrutado a otro equipo, la aprobación original quizá no cubra ese destino.

Un fallo común empieza con una aprobación lenta. Un agente lee una alerta triggered de la base de datos y pide a Alice que apruebe el acuse. Mientras la tarjeta espera, Bob mitiga el problema y resuelve el incidente. Alice aprueba entonces la tarjeta obsoleta. Un adaptador ingenuo envía acknowledge, recibe un éxito específico del proveedor o fuerza el incidente para que vuelva a estar activo, y registra a Alice como responsable de un trabajo que ya terminó. El vínculo con la versión detiene la acción antes de que la cronología pierda el sentido.

La idempotencia resuelve otro problema. Da a cada transición propuesta un ID de operación inmutable y conserva su resultado. Si la puerta de enlace pierde la respuesta HTTP después de que el proveedor aplique el acuse, un reintento devuelve el resultado guardado en vez de añadir otra entrada a la cronología o enviar otra notificación. El control de concurrencia protege la intención frente a un estado cambiado; la idempotencia protege una intención frente a la ejecución duplicada.

El enrutamiento y la supresión necesitan permisos propios

El enrutamiento cambia quién carga con la responsabilidad, mientras que la supresión cambia qué señales producen ruido. Ninguna acción demuestra la recuperación, y ninguna debe ocultarse dentro del acuse.

Enruta antes de acusar cuando el servicio actual sea claramente incorrecto y nadie haya aceptado el trabajo. Enruta después del acuse con cuidado, porque alguien puede estar investigando. La transición debe indicar si se mueve la responsabilidad, si el respondedor original sigue suscrito y si empieza la política de escalación del destino. Un agente nunca debe deducir esos efectos a partir del nombre de un equipo.

La supresión necesita un alcance y una caducidad explícitos. La documentación Event Management de PagerDuty dice que las alertas suprimidas se guardan para análisis forense, pero no crean incidentes. La documentación Event Orchestration también describe cómo enrutar eventos sin coincidencia a un servicio o suprimirlos mediante una ruta general. Son decisiones de entrada, no sinónimos de cerrar un incidente existente.

La documentación Downtimes de Datadog traza otra línea útil: un periodo de inactividad silencia las alertas y las notificaciones, pero no impide las transiciones del estado del monitor. Cuando termina y el monitor sigue en estado de alerta, la notificación puede reanudarse. Ese suele ser el comportamiento necesario durante el mantenimiento. El sistema recuerda el estado no saludable en lugar de reescribirlo como saludable solo para detener una notificación.

Por eso, una solicitud de supresión debe incluir el selector de señales, las horas de inicio y fin, la razón, el creador y el comportamiento al caducar. Los selectores amplios, como un servicio entero, merecen una aprobación más estricta que un grupo de monitorización. Una supresión indefinida debe rechazarse o exigir una ruta de excepción explícita. El agente no debe crear un fallo silencioso del que nadie sea responsable.

No suprimas automáticamente después del acuse solo porque el respondedor haya tomado la alerta. Algunos sistemas pausan la escalación con el acuse, mientras que otros mantienen las notificaciones repetidas. Google Cloud Monitoring documenta expresamente que el acuse no detiene esas notificaciones. Conserva el comportamiento del proveedor o solicita la supresión por separado para que quien revise pueda ver por qué cesó el ruido.

La resolución debe seguir a las pruebas, no a la confianza del agente

Resuelve solo cuando las pruebas de recuperación cumplan una condición declarada. Una orden de reparación correcta demuestra que se ejecutó una acción; no demuestra que el servicio se recuperó.

Esta distinción detecta un fallo conocido de la automatización. Un agente reinicia un proceso, recibe un código de salida cero y cierra el incidente. El proceso arranca, falla su comprobación de disponibilidad y vuelve a caer treinta segundos después. La orden funcionó, pero el servicio nunca se recuperó. Cerrar por el éxito de la orden crea dos incidentes, dos alertas y un tiempo de recuperación engañoso en vez de un solo suceso continuo.

Define las pruebas de resolución cerca del tipo de incidente. Un incidente de disponibilidad podría exigir que la condición de alerta desaparezca y se mantenga así durante una ventana de evaluación. Un incidente de cola podría exigir que el número de elementos pendientes y la antigüedad del mensaje más viejo bajen de sus umbrales. Una alerta de certificado solo debe resolverse después de que el endpoint desplegado presente el certificado esperado, no cuando se escriba un archivo en una máquina.

El agente puede reunir pruebas y proponer la resolución. La puerta de enlace debe adjuntar a la aprobación las observaciones, sus marcas temporales, la fuente y cualquier hueco. Si el monitor sigue informando de una condición activa, rechaza el cierre. Google Cloud Monitoring mantiene esta postura para incidentes de métricas: su documentación informa de un error Unable to close incident with active conditions cuando los datos recientes todavía incumplen la política.

La resolución manual sigue teniendo sentido. Los monitores pueden retrasarse, la telemetría puede fallar y un respondedor puede saber que el servicio afectado se retiró de forma intencionada. Haz explícita la excepción con una razón y una persona que la aprueba, y conserva la última observación no saludable. Una excepción debe poder atribuirse; no es una razón para debilitar la transición normal.

El comportamiento de reapertura también pertenece al contrato. Indica si una señal recurrente reabre el mismo incidente o crea uno nuevo, y conserva los identificadores de correlación en ambos casos. Un agente no debe asumir que resolve silencia el siguiente evento. PagerDuty dice que un incidente resuelto puede reabrirse si queda trabajo, mientras que Datadog documenta que resolver un monitor manualmente solo establece su estado en OK hasta la siguiente evaluación. La siguiente evaluación no saludable puede volver a alertar.

El rastro de auditoría debe conservar la decisión

Rastrea quién acusó la alerta
Activity registra cada llamada externa y Sessions identifica la ejecución del agente correspondiente.

Los registros de actividad del proveedor muestran que una credencial de API llamó a un endpoint. Rara vez guardan contexto suficiente para explicar qué propuso un agente, qué aprobó una persona y qué estado vio esa persona. Mantén un registro de decisiones separado y vincúlalo con el evento del proveedor.

Un evento de transición completo contiene el ID de operación inmutable, el hash de la carga de solicitud, la acción normalizada, el destino, los estados anterior y posterior, la identidad solicitante, la identidad aprobadora, la identidad ejecutora, el método de aprobación, las marcas temporales de decisión, el identificador de respuesta del proveedor y el resultado. Registra también las propuestas rechazadas y caducadas. Una supresión denegada explica por qué siguieron las notificaciones; una aprobación caducada explica por qué nunca se ejecutó un acuse propuesto.

Protege la secuencia contra modificaciones silenciosas. El almacenamiento solo de anexado, los escritores restringidos, los controles de conservación y el encadenamiento criptográfico responden a amenazas distintas. Sallyport proyecta sus registros Sessions y Activity desde un único registro de auditoría cifrado y encadenado por hash, y sp audit verify puede comprobar la cadena de texto cifrado sin conexión y sin clave de descifrado. Una integración de incidentes obtiene así pruebas de la ejecución del agente y de cada llamada externa sin exponer la credencial al agente.

No guardes únicamente la explicación en prosa del agente. Los modelos pueden producir resúmenes seguros pero inexactos. Conserva a su lado datos estructurados. Una razón como alerta de latencia aceptada ayuda a una persona a recorrer la cronología; el ID del incidente, la versión del estado, el hash de la solicitud HTTP y la identidad de aprobación permiten verificarla.

Los lectores de auditoría necesitan una semántica estable mientras evoluciona la integración. Asigna una versión al esquema de eventos y a los nombres de acciones normalizados. Si un adaptador cambia su correspondencia con el proveedor, registra la versión que ejecutó cada llamada. De lo contrario, un evento acknowledge antiguo puede resultar ambiguo cuando una versión nueva cambie sus efectos.

El acceso al rastro de auditoría no debe dar acceso a las credenciales del incidente. Separa la capacidad de verificar el orden de los eventos de la capacidad de descifrar campos sensibles de la carga. Elimina los secretos antes de que entren en el registro en lugar de esperar que todos los lectores los manejen correctamente más tarde.

Prueba las transiciones como flujos hostiles

Las pruebas del camino feliz demuestran que un endpoint funciona cuando no ocurre nada interesante. La automatización de incidentes necesita pruebas que interrumpan el flujo entre cada lectura, aprobación, llamada y respuesta.

Empieza con cinco invariantes:

  1. El acuse nunca cambia la recuperación de abierta a cerrada.
  2. La resolución nunca crea ni amplía una supresión.
  3. El enrutamiento nunca implica que el destino haya acusado el incidente.
  4. Cada mutación aprobada identifica al solicitante, aprobador, ejecutor y sujeto.
  5. Una aprobación obsoleta no puede ejecutarse contra otra versión de estado u otro destino.

Después ejecuta el adaptador contra un proveedor simulado que pueda cambiar el estado entre llamadas. Resuelve el incidente mientras un acuse espera aprobación. Cambia la ruta antes de ejecutar una supresión. Devuelve un timeout después de aceptar una solicitud y vuelve a enviar el mismo ID de operación. Revoca la sesión del agente después de la aprobación pero antes de la ejecución. Cada caso debe producir un resultado determinista y un evento de auditoría.

Prueba las diferencias entre proveedores en lugar de borrarlas. Un sistema puede detener la escalación después del acuse; otro puede mantener notificaciones repetidas. La respuesta normalizada puede exponer escalation_paused y notifications_suppressed como datos separados. No prometas un efecto universal que el adaptador no pueda verificar.

Revisa las descripciones de las herramientas con la misma desconfianza que el código. Encárgate de este incidente invita al modelo a elegir un resultado. Registra que la guardia de Pagos aceptó la investigación; mantén abierta la recuperación describe una transición limitada. El texto de la herramienta forma parte de la superficie de control porque determina qué solicitud intenta enviar el agente.

Por último, prueba la ausencia de autoridad. Un agente con permiso de acuse debe recibir una denegación clara cuando llame a resolver, enrutar o suprimir. La denegación no debe ofrecer una alternativa automática que realice otra mutación. Un fallo seguro deja el incidente visible y sin cambios.

La autoridad del agente debe reducirse al crecer las consecuencias

Acusa sin exponer secretos
Sallyport ejecuta la llamada HTTP, por lo que el agente nunca recibe la clave guardada.

El diseño de permisos debe seguir el efecto de cada acción, no la comodidad del flujo que la llama. Leer un incidente, acusar trabajo asignado, mover la responsabilidad, silenciar una señal y declarar la recuperación merecen concesiones cada vez más estrictas cuando sus consecuencias son distintas.

Empieza por capacidades que nombren tanto el verbo como el alcance. incident.acknowledge para el servicio de Pagos es más limitado que incident.write en toda producción. Un permiso de ruta puede limitar los destinos a servicios del mismo grupo. Un permiso de supresión puede limitar los selectores y la duración. Un permiso para resolver puede exigir un perfil de pruebas aprobado. La puerta de enlace debe evaluar esas restricciones usando campos estructurados, nunca la explicación del agente.

El tiempo y la identidad del proceso deben formar parte del permiso. Una sesión iniciada para una tarea de programación no debe conservar autoridad sobre incidentes después de que termine el proceso. Si una persona revoca la sesión mientras una aprobación espera, la ejecución debe fallar aunque la decisión anterior fuera válida en ese momento. La aprobación confirma una transición propuesta; no devuelve la autoridad a un solicitante que ya la perdió.

Separa permiso y aprobación. El permiso responde a si quien solicita puede intentar esa clase de acción. La aprobación responde a si ese intento concreto puede continuar ahora. Exigir aprobación no corrige un permiso demasiado amplio, porque quienes revisan acaban sufriendo fatiga, sobre todo cuando las tarjetas ocultan el alcance. Del mismo modo, un permiso limitado no sustituye la aprobación para una transición con consecuencias si la organización exige una decisión humana.

Trata con más rigor las acciones que reducen la visibilidad. El acuse añade una persona responsable y deja visible el fallo. El enrutamiento puede sacar la alerta de la vista del equipo actual. La supresión puede impedir que la gente oiga hablar de un fallo continuo. La resolución puede eliminar el incidente de las colas activas y alterar informes de rendimiento. Este orden no es universal, pero escribirlo saca a la luz los desacuerdos antes de que un agente los encuentre de madrugada.

Las credenciales deben respetar las mismas fronteras. Si el proveedor ofrece roles o tokens distintos, no des al ejecutor una cuenta que pueda administrar calendarios y servicios solo para acusar un incidente. Si el proveedor solo expone credenciales amplias, aplica la operación limitada en la puerta de enlace y documenta esa limitación en el modelo de amenazas. La auditoría del proveedor mostrará lo que podía hacer la credencial; el registro de la puerta debe mostrar qué se le permitió hacer en esta solicitud.

La revocación necesita un resultado predecible. Revoca la sesión para bloquear toda operación nueva de ese proceso. Revoca una aprobación para bloquear la operación vinculada si la ejecución no ha empezado. Revoca un permiso de ruta o supresión para detener solicitudes posteriores, mientras gestionas las supresiones existentes mediante una transición explícita de cancelación. No borres en silencio la prueba de que existió una decisión anterior.

Los equipos suelen proponer una sola aprobación humana al principio del incidente para que el agente haga el resto. La idea es popular porque las preguntas repetidas interrumpen a los respondedores. Sigue siendo incorrecta cuando mezcla consecuencias. Aprueba una vez la sesión para el acceso rutinario y reserva la aprobación de transición para acciones como una supresión amplia, el enrutamiento entre equipos y la resolución. Así avanza el trabajo de poco riesgo sin convertir el primer clic apresurado en autoridad para cerrar el incidente una hora después.

Antes de desplegar, escribe una matriz de autoridad con acciones como filas y alcances como columnas. En cada celda, decide si el agente puede leer, proponer, ejecutar sin otra decisión o ejecutar solo tras aprobación. Incluye la duración máxima de una supresión, los destinos permitidos, las pruebas aceptables de recuperación y qué sucede si quien debe aprobar no responde. Una celda vacía debe denegar la acción y no heredar el permiso de una etiqueta general.

Ejercita la matriz con la credencial real del proveedor. Una política que deniega la resolución en la puerta de enlace está incompleta si otra herramienta HTTP expuesta permite llamar directamente al endpoint del proveedor. Haz un inventario de todas las rutas al sistema de guardias, incluidas las herramientas genéricas de solicitudes, los ejecutores de órdenes, los relés de webhooks y los scripts guardados. Las credenciales que evitan la puerta de enlace no deben estar disponibles para el proceso del agente.

Las solicitudes de aprobación también necesitan control de frecuencia, pero el límite debe fallar de forma segura. Si un agente inunda a quien revisa con peticiones repetidas de acuse, reúne las propuestas idénticas o deja que caduquen las adicionales. No respondas a la sobrecarga aprobando, resolviendo u ocultando el incidente de forma automática. Registra las solicitudes de más para que el equipo pueda corregir el bucle que las generó.

Un sistema silencioso todavía puede mostrar un incidente abierto

El ruido de las alertas, la responsabilidad del respondedor, la salud del servicio y el enrutamiento entre equipos son dimensiones independientes. Comprimirlas en un solo estado simplifica la interfaz a costa de trasladar la ambigüedad a la automatización, las métricas y los análisis posteriores.

Mantén limitado el acuse aunque el agente lo ejecute a la perfección. Deja que reclame el trabajo, registre quién aprobó esa reclamación y conserve abierto el incidente. Si el flujo también necesita otra ruta, una supresión temporal o una resolución tras comprobar la recuperación, haz visible cada acción como su propia solicitud y decisión.

Ese diseño cuesta algunas llamadas más. A cambio ofrece una cronología en la que puede confiar quien dirija el incidente a las dos de la madrugada: quién tomó la alerta, quién permitió la transición, qué mostraba el sistema en ese momento y por qué se cerró al final.

FAQ

¿Debe un agente de IA resolver un incidente automáticamente?

Sí, pero solo cuando pueda comprobarse una condición de recuperación declarada y el agente tenga autoridad separada para resolver. Una orden correcta o una valoración segura del modelo no bastan; el estado del monitor y las pruebas del servicio deben justificar el cierre.

¿Qué debe ocurrir cuando un agente acusa una alerta?

El sistema debe registrar la responsabilidad, la hora, la identidad solicitante y cualquier persona que deba aprobar. El incidente debe seguir abierto, y la supresión o el enrutamiento solo deben cambiar mediante acciones separadas.

¿Acusar un incidente detiene las notificaciones?

Depende del sistema. PagerDuty puede pausar la escalación hasta que venza el acuse, mientras que Google Cloud Monitoring indica que las notificaciones repetidas continúan; muestra el efecto observado en vez de asumir una regla.

¿Qué diferencia hay entre suprimir y resolver una alerta?

La supresión controla si ciertas señales crean incidentes o envían notificaciones. La resolución afirma que el incidente terminó después de la recuperación, así que usarla solo para silenciar una alerta corrompe el registro.

¿Cómo debe enrutar un incidente un agente de IA?

Usa una acción específica que indique el destino actual, el propuesto y la versión de estado esperada. Debe aclarar si cambian la responsabilidad y la escalación, y no debe marcar al destino como si hubiera acusado el trabajo.

¿Quién debe aparecer en el registro de una acción del agente?

Registra la sesión solicitante, la persona que aprobó, la identidad ejecutora y el sujeto afectado. Reunirlas en un solo campo impide saber quién propuso, autorizó y realizó la transición.

¿Cómo se impide ejecutar una aprobación obsoleta?

Vincúlala al ID del incidente, la acción solicitada, el alcance y la versión que vio quien aprobó. Si cambia cualquier dato antes de ejecutar, devuelve un conflicto y exige una lectura nueva en vez de reintentar a ciegas.

¿Por qué hace falta idempotencia en las acciones?

El proveedor puede aplicar la transición aunque la puerta pierda la respuesta. Reintentar con el mismo ID permite devolver el resultado original sin duplicar entradas de cronología ni notificaciones.

¿Qué pruebas bastan para resolver un incidente?

Usa pruebas ligadas al modo de fallo, como una condición despejada durante una ventana o una cola por debajo de su umbral. El éxito de una orden de reparación solo demuestra que la orden se ejecutó.

¿Puede un permiso cubrir todas las acciones de incidentes?

Puede, pero no debe. Acusar, resolver, suprimir y enrutar tienen consecuencias distintas, por lo que los permisos y aprobaciones separados evitan que una acción inocua dé autoridad para ocultar o cerrar.

Sallyport

Sallyport ejecuta llamadas de API y comandos SSH por tu agente de IA. Las claves se quedan en una bóveda local de tu Mac; tú apruebas cada ejecución y cada acción queda en un registro sellado.

© 2026 Sallyport · Código abierto bajo Apache-2.0 · Oleg Sotnikov