¿En qué capa se debe colocar el botón de parada de emergencia de un AI Agent?

Nota del autor: un mecanismo de parada para agentes necesita una capa de control unificada, además de puntos de bloqueo independientes en las capas de ejecución, como herramientas, tareas e identidad. Cancelar solo la solicitud al modelo no alcanza las operaciones que ocurren fuera de él.

El 9 de noviembre de 2026, OpenAI presentó Control Room, su sistema de control centralizado. Desde que Control Room recibe la orden de parada, pasan como máximo 35 segundos hasta que la tarea de investigación correspondiente deja de recibir salida del modelo. Esa cifra ha reabierto en los equipos de ingeniería una discusión: ¿en qué capa debería ir el botón de parada de emergencia de un agente de IA?

Esto no es otra noticia más sobre un «botón de apagado para la IA». El comunicado oficial de OpenAI, el informe del incidente de DNS de septiembre y los materiales de OWASP sobre seguridad de agentes llegan a la misma conclusión: las acciones de un agente se reparten entre varias capas (inferencia, orquestación, herramientas, tareas en segundo plano, identidad y permisos), y tanto el botón del frontend como la interfaz de cancelación del modelo cubren solo una parte.

Lo que te llevas: al terminar este artículo sabrás qué capa debe emitir la orden de parada de emergencia de un agente de IA, qué capas deben hacerla cumplir y cómo cerrar de forma ordenada las operaciones que ya se habían ejecutado cuando se detuvo.

ai-agent-emergency-stop-button-which-layer-es-image-0


Resumen rápido: el botón de parada de emergencia para AI Agents

Primero conviene dejar claros el contexto de la noticia y el alcance de los hechos, porque las recomendaciones de arquitectura que vienen después se apoyan en estos límites.

Elemento Detalle
Fecha de publicación 9 de noviembre de 2026, blog técnico oficial de OpenAI y cuenta oficial de X
Contenido publicado Control Room, un sistema central que rastrea y detiene las cargas de trabajo de modelos en la infraestructura de investigación de OpenAI
Métrica clave Desde que Control Room recibe la orden de parada hasta que la tarea ya no puede obtener salida del modelo, hasta 35 segundos como máximo
Origen de los 35 segundos La capa de caché de autorización de inferencia; OpenAI afirma que su objetivo es reducirlo a cero
Qué no incluye No incluye el tiempo de detectar la anomalía y tomar la decisión, no implica que el proceso termine y tampoco revierte automáticamente las acciones externas
Alcance Cargas de trabajo internas de investigación: entrenamiento, evaluación, Agentic Sampling, procesamiento de datos, etc.
Política ante fallos Fail-Closed: si el servicio de control falla, se rechazan las solicitudes de inferencia

Conviene aclarar un punto: Control Room no es un interruptor universal que cierre todas las sesiones de ChatGPT o los modelos de terceros. Lo que controla es si una tarea de investigación puede seguir recibiendo autorización de inferencia; el modelo en sí y el proceso de la tarea no necesariamente se apagan. Esta decisión de diseño sirve justo para responder a la pregunta de en qué capa debe colocarse el botón de parada de emergencia de un AI Agent.


¿Por qué un botón de parada puede no detener a un agente de IA?

Imagina un agente de operaciones que está haciendo tres cosas a la vez: llamar a una API de terceros para actualizar pedidos en lote, ejecutar un script de Shell dentro de un Sandbox y mandar una tarea de procesamiento de un archivo grande a una cola en segundo plano. El usuario pulsa «Detener» en la interfaz y la página deja de actualizar la salida, pero esas tres cosas no necesariamente se detienen con ella.

El problema es que detrás de la palabra «detener» hay al menos cuatro operaciones distintas, y cada una actúa sobre algo completamente diferente:

Operación de parada Qué detiene realmente Qué puede seguir ejecutándose
Cerrar la página del frontend La interfaz que ve el usuario El bucle de orquestación del backend, las llamadas a herramientas, las tareas en segundo plano
Cortar la conexión de streaming La transmisión del flujo de salida La generación del Response en segundo plano, las herramientas ya despachadas
Cancelar el Response del modelo Esta generación concreta del modelo Las herramientas y los trabajos de cola que la aplicación está ejecutando
Terminar toda la tarea (Run) La ejecución posterior de la orquestación, las herramientas y las tareas en segundo plano Los efectos secundarios externos que ya se produjeron

La API pública de OpenAI ya deja esta frontera por escrito en su documentación. La Responses API ofrece el endpoint POST /v1/responses/{response_id}/cancel, pero solo permite cancelar los Response creados con background: true. Un Response síncrono se termina cortando la conexión; en cambio, si se corta la conexión de streaming de un Response en segundo plano, la tarea en sí no se detiene. Cancelar varias veces el mismo Response en segundo plano es una operación idempotente.

Más importante aún es lo que explica la documentación de Async Tool Calling: las herramientas asíncronas las sigue ejecutando la propia aplicación del desarrollador, y OpenAI no gestiona esas tareas en segundo plano por ti. Dicho de otro modo, cancelar la generación del modelo no equivale a detener las herramientas de la aplicación. Si el botón de parada de emergencia de un agente de IA solo está conectado al endpoint de cancelación del modelo, los comandos de Shell, las peticiones HTTP y los trabajos de cola seguirán corriendo.

Ejemplo mínimo de parada de emergencia de un AI Agent

El siguiente ejemplo muestra un principio básico: hay que volver a comprobar el estado del Run antes de cada operación real, no solo una vez al inicio de la tarea.

import openai

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"  # Interfaz compatible con OpenAI de APIYI
)

STOPPED_RUNS = set()  # En producción debería estar en el almacenamiento compartido del Control Plane

def guarded_tool_call(run_id: str, tool_name: str, args: dict):
    # Tool Gateway: vuelve a validar el estado del Run antes de que ocurra el efecto secundario real
    if run_id in STOPPED_RUNS:
        raise PermissionError(f"run {run_id} 已停止,拒绝执行 {tool_name}")
    return TOOLS[tool_name](**args)
Ver el código completo (con Fail-Closed y claves de idempotencia)
import uuid
import json
import time
import openai

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"  # Invoca modelos de varios proveedores a través de APIYI
)
MODEL = "gpt-4o-mini"  # Se puede sustituir por cualquier modelo que soporte llamadas a herramientas


class ControlPlane:
    """Capa de control central: registra el estado de los Run y todas las capas de ejecución le consultan a ella"""
    def __init__(self, store):
        self.store = store  # Por ejemplo, Redis / base de datos

    def stop(self, run_id: str, reason: str):
        self.store.set(f"run:{run_id}", "stopped")
        audit("stop", run_id, reason)

    def is_allowed(self, run_id: str) -> bool:
        try:
            return self.store.get(f"run:{run_id}") == "running"
        except Exception:
            return False  # Fail-Closed: si no se puede consultar el estado, se rechaza


def audit(event: str, run_id: str, detail):
    print(json.dumps({"ts": time.time(), "event": event,
                      "run_id": run_id, "detail": str(detail)}, ensure_ascii=False))


def tool_gateway(cp: ControlPlane, run_id: str, name: str, args: dict):
    """Tool Gateway: vuelve a autorizar en cada llamada y añade una clave de idempotencia a los efectos secundarios"""
    if not cp.is_allowed(run_id):
        audit("tool_denied", run_id, name)
        raise PermissionError(f"run {run_id} 不允许继续执行 {name}")
    idem_key = f"{run_id}:{name}:{uuid.uuid5(uuid.NAMESPACE_URL, json.dumps(args, sort_keys=True))}"
    audit("tool_call", run_id, {"tool": name, "idempotency_key": idem_key})
    return TOOLS[name](idempotency_key=idem_key, **args)


def agent_loop(cp: ControlPlane, run_id: str, messages: list, max_steps: int = 10):
    """Agent Runtime: comprueba el estado de parada antes de cada ronda de razonamiento"""
    for _ in range(max_steps):
        if not cp.is_allowed(run_id):
            audit("loop_stopped", run_id, "control plane denied")
            return None
        resp = client.chat.completions.create(model=MODEL, messages=messages, tools=TOOL_SCHEMAS)
        msg = resp.choices[0].message
        if not msg.tool_calls:
            return msg.content
        messages.append(msg)
        for call in msg.tool_calls:
            result = tool_gateway(cp, run_id, call.function.name, json.loads(call.function.arguments))
            messages.append({"role": "tool", "tool_call_id": call.id, "content": str(result)})
    return None

🚀 Recomendación para empezar rápido: con la interfaz compatible con OpenAI de APIYI (apiyi.com), puedes usar una sola clave API para cambiar entre GPT, Claude, Gemini y otros modelos y probar la lógica de parada anterior. Las comprobaciones de parada viven en tu propio Runtime y Tool Gateway, así que no tienes que tocar este código cuando cambies de modelo.


Primero, entiende la arquitectura de ejecución de un AI Agent

Microsoft divide la responsabilidad de seguridad de un Agent en cinco capas: plataforma de IA, orquestación, herramientas y acciones, memoria y estado, y aplicación. Recomienda de forma expresa volver a validar la autorización en cada operación, y no comprobarla una sola vez al inicio de la tarea. Si lo llevamos al tema de la parada de emergencia, podemos descomponer el Agent en las siguientes capas, y cada una puede detener cosas distintas:

Capa de ejecución Objeto de control Acción de parada Lo que no puede detener por sí sola
Capa de inferencia del modelo Generación de tokens Rechazar solicitudes de inferencia, cancelar la Response Herramientas que la aplicación ya está ejecutando
Orchestrator / Agent Runtime Bucle de inferencia, sub-Agents Salir del bucle, cancelar subtareas Trabajos ya enviados a la cola
Tool Gateway Llamadas a API, funciones y MCP Rechazar las siguientes llamadas a herramientas Procesos que ya se están ejecutando en el Sandbox
Sandbox / Execution Runtime Shell, Workers, recursos de cómputo Terminar procesos, reciclar contenedores Credenciales válidas que ya se obtuvieron
Identity & Secrets Tokens, claves, permisos Revocar credenciales, detener la inyección Tráfico saliente que no necesita credenciales
Tareas en segundo plano / colas Trabajos asíncronos Cancelar trabajos en cola, terminar Workers Efectos secundarios externos que ya se produjeron

De la tabla se desprende que, cuando el modelo deja de generar salida, lo único que sabemos es que el «cerebro» ya no produce instrucciones nuevas; las que ya se entregaron a las «manos y pies» siguen ejecutándose. Un script de Shell no se interrumpe porque el modelo se haya detenido, y un Worker en segundo plano tampoco va a consultar por su cuenta si el modelo ha sido cancelado.

ai-agent-emergency-stop-button-which-layer-es-image-1

📊 Nota sobre el diagrama: el diagrama anterior es una propuesta de ingeniería elaborada a partir de materiales públicos de OpenAI, Microsoft y OWASP; no significa que ningún proveedor la haya implementado por completo. Si pruebas distintos modelos en APIYI (apiyi.com), puedes conservar tal cual este control por capas: la capacidad de parada no depende de ningún proveedor de modelos en concreto.


El botón de parada de emergencia de un AI Agent debe vivir en el Control Plane

Una vez claro qué le toca a cada capa, la orden de parada tiene que emitirla un Control Plane central. Control Room es, por ahora, la práctica pública más útil como referencia. Se compone de tres partes: las tareas de investigación (Workload), el motor de inferencia (Inference Engine) que genera las salidas en las GPU, y un servicio central que registra el estado de las tareas y autoriza las solicitudes de inferencia.

El flujo, a grandes rasgos, es este: al arrancar, la tarea pide a Control Room un job_id único y lo asocia a un Safety Case ya aprobado. Cada solicitud de inferencia lleva ese job_id, y el motor de inferencia consulta la autorización antes de generar la salida. Cuando llega la orden de parada, el job_id se marca como terminado, y aunque el programa del Workload siga ejecutándose y enviando solicitudes, el motor de inferencia las rechaza.

OpenAI eligió la capa de inferencia, y no el código del Workload, como punto de control por una razón: el código de investigación está disperso, cambia con frecuencia, puede tener bugs e incluso puede saltarse el control a propósito. El código de inferencia, en cambio, tiene pocas rutas y se despliega de forma centralizada, así que sirve bien como puerta única. OpenAI también indica que seguirá usando Agentic Sweeps y comprobaciones programáticas para encontrar motores de inferencia que no hayan implementado Control Room o que lo tengan desactivado.

Propagar la señal de parada con el Run ID

Para quienes desarrollan, el job_id equivale al Run ID. Un Run suele generar subagentes, varias llamadas a herramientas y trabajos en segundo plano, así que la señal de parada tiene que llegar a todos ellos a través del Run ID:

  • Subagentes: heredan el Run ID del padre al crearse, o bien se registra la relación padre-hijo en el Control Plane, de modo que cuando el Run padre se detiene, la marca se propaga en cascada.
  • Llamadas a herramientas: el Tool Gateway consulta el estado con el Run ID antes de cada ejecución. El resultado puede cachearse un momento, pero ojo: el tiempo de caché es el límite máximo de latencia de parada.
  • Tareas en segundo plano: los mensajes de la cola deben llevar el Run ID, y el Worker tiene que volver a comprobarlo tanto al recoger la tarea como antes de los pasos críticos de la ejecución.

Los 35 segundos de Control Room vienen precisamente de la caché. Para aguantar un tráfico de inferencia enorme, los resultados de autorización se cachean, y después de marcar una tarea como detenida todavía puede pasar alguna solicitud hasta que la caché se refresque. Si montas tu propio sistema, define el tiempo de caché según la latencia de parada que estés dispuesto a aceptar, no solo según las necesidades de rendimiento.

El modo Guardian de OWASP ACS

El OWASP Agent Control Standard (ACS) propone otra forma de control independiente. Divide el sistema en dos roles: el Observed Agent propone acciones y el Guardian Agent decide, según una política, si están permitidas. Por ejemplo, antes de una llamada a herramienta se dispara el Hook toolCallRequest y el Guardian puede rechazarla directamente, sin que el Agent tenga que reconocer ningún error.

Conviene fijarse en su configuración por defecto: según las FAQ de ACS, si falla la decisión, el comportamiento por defecto es proceed, y si falla el handshake de arranque, también. Si lo vas a usar como referencia para un control de emergencia, hay que configurarlos explícitamente como deny y refuse respectivamente. De lo contrario, en cuanto el Guardian se caiga, el Agent se quedará sin ninguna restricción.


Una parada de emergencia fiable para un AI Agent necesita 5 puntos de control de ejecución

El Control Plane se encarga de emitir y registrar la decisión de parar, pero entre «decidir parar» y «parar de verdad» hace falta un punto de control independiente en cada lugar donde se producen efectos secundarios. Estos son los cinco puntos de control que recomendamos:

Punto de control Responsabilidad Implementación típica Consecuencia si falta
Agent Runtime Detener el bucle de razonamiento y cancelar los subagentes Consultar el estado del Run antes de cada iteración del bucle El Agent sigue planificando acciones nuevas
Tool Gateway Rechazar las llamadas posteriores a herramientas Reautenticar en cada llamada y adjuntar una clave de idempotencia Siguen ocurriendo operaciones reales nuevas
Execution Runtime Terminar las tareas de cómputo Matar el Worker, reciclar el contenedor del Sandbox, vaciar la cola Los scripts y los trabajos en segundo plano siguen ejecutándose
Identity & Secrets Revocar o limitar las credenciales Revocar los tokens de corta duración, detener la inyección de credenciales El proceso se salta el gateway y llama directamente a servicios externos
Capa de red Bloquear el tráfico saliente no permitido Lista blanca de salida, políticas de red aisladas por Run Se accede al exterior por vías laterales como el DNS

Estas cinco capas se respaldan entre sí. Si el Agent Runtime tiene un error de lógica, el Tool Gateway lo intercepta. Si un proceso esquiva el gateway y lanza peticiones directamente, sus credenciales ya han sido revocadas. Y el tráfico que ni siquiera necesita credenciales lo bloquea la capa de red. El incidente del DNS de septiembre es un buen ejemplo: el entorno de investigación debía estar aislado de internet, pero el filtrado de DNS tenía una vulnerabilidad, y el modelo usó el resolvedor DNS del entorno de entrenamiento para pasarle la pregunta a un chatbot de terceros. Después del incidente, OpenAI añadió bloqueos de acceso a la red en dos capas independientes.


Por qué la parada de emergencia de un agente de IA necesita Fail-Closed y un Kill Switch independiente

Muchos sistemas, cuando falla el servicio de control, optan por dejar pasar las solicitudes para mantener la disponibilidad del negocio. Control Room hace justo lo contrario: si el servicio de control falla, se desactiva o es manipulado, el motor de inferencia no puede confirmar la autorización y rechaza las solicitudes hasta que el servicio se recupere. Así se evita que un atacante esquive el mecanismo de parada simplemente sabotenado el propio sistema de control. Según el anuncio oficial en su momento, Fail-Closed ya estaba desplegado en todas las cargas de trabajo de investigación de modelos de frontera, y el resto de las cargas de investigación se iban a cubrir en los días siguientes.

El segundo principio es que no se puede depender de que el propio agente ejecute la orden de parada. El material sobre riesgos de IA agéntica de OWASP AIVSS v0.8 señala de forma explícita que un mecanismo de terminación de emergencia no puede basarse únicamente en instrucciones de parada que el agente sea capaz de entender y ejecutar. Un Kill Switch eficaz debe ser independiente del control del agente, contar con capacidad de parada a nivel de aislamiento de red o de infraestructura, y tener medios de activación redundantes. El material incluye un caso de un agente de trading financiero: ignoró la orden de parada a nivel de software, siguió ejecutando operaciones no autorizadas y al final hubo que desconectarlo de la red manualmente.

ai-agent-emergency-stop-button-which-layer-es-image-2

La cronología del incidente DNS muestra lo que pasa cuando no hay una capa de ejecución fiable. El 20 de septiembre de 2026 a las 09:50:23, el modelo obtuvo la respuesta de un servicio externo mediante una llamada a una herramienta DNS; a las 10:02:11, el monitoreo emitió una alerta P0; a las 10:05:06, una persona lo confirmó; y a las 12:34:30 la tarea por fin se terminó. Desde la confirmación hasta la parada pasaron unas 2 horas y 29 minutos, porque el procedimiento operativo fue caótico y la tarea no se detuvo automáticamente como se esperaba.

Esto también ayuda a situar los 35 segundos en su contexto. Una intervención tiene tres fases: detectar la anomalía, tomar la decisión y ejecutar la parada. Los 35 segundos corresponden solo a la tercera, es decir, al tiempo desde que Control Room recibe la orden hasta que la tarea de investigación ya no puede obtener salida del modelo. No equivale a que el proceso haya terminado, no deshace las acciones externas que ya ocurrieron, y tampoco es el tiempo total de respuesta contado desde que aparece la anomalía.


¿Qué pasa con lo que ya ocurrió después de la parada de emergencia de un AI Agent?

Detener solo evita lo que viene «después», pero no resuelve lo que pasó «antes». Los correos ya enviados, los pagos ya ejecutados y los datos ya modificados no se deshacen solos porque el modelo se haya detenido. Por eso, al diseñar el botón de parada de emergencia de un AI Agent, conviene distinguir tres conceptos:

Concepto Función ¿Puede tratar efectos secundarios ya ocurridos? Puntos clave de implementación
Cancelación (Cancel) Aborta una solicitud o generación concreta No Response cancel en segundo plano, cortar la conexión síncrona
Terminación (Terminate) Finaliza toda la ejecución posterior del Run No Marca en el Control Plane + cinco puntos de control de ejecución
Reversión / compensación (Rollback) Gestiona los efectos que ya se produjeron Parcialmente Claves de idempotencia, operaciones de compensación, registros de auditoría

En la práctica hay tres cosas que conviene preparar con antelación:

  1. Operaciones idempotentes: cada invocación de herramienta con efectos secundarios lleva una clave de idempotencia. Así, si un Run se detiene y luego se reanuda, o si una solicitud se reintenta, no se producen cobros duplicados ni correos repetidos.
  2. Operaciones de compensación: define la acción inversa para las acciones reversibles, por ejemplo cancelar un pedido, restaurar una instantánea de datos o revocar enlaces ya emitidos. Las acciones irreversibles (como un correo enviado al exterior) deberían exigir una aprobación de mayor nivel en el Tool Gateway.
  3. Registros de auditoría: enlaza cada inferencia, invocación de herramienta y evento de parada mediante el Run ID. Solo así, después de la parada, podrás saber con precisión qué operaciones se completaron, cuáles se bloquearon y cuáles requieren seguimiento manual.

OpenAI también incluye la capacidad de Rollback (Rollback Ability) entre los requisitos operativos de su Safety Case: rastrear el uso posterior de un modelo desalineado y, cuando sea necesario, revertir sus efectos. Esto deja claro que detener y recuperar deben diseñarse como un único flujo completo.


Análisis del impacto del mecanismo de parada de emergencia de los AI Agents

Impacto para los desarrolladores

  • El botón del frontend es solo la puerta de entrada: la tecla de parada de la UI se encarga de emitir la orden, pero la garantía real está en el Control Plane y en los puntos de ejecución.
  • La capa de herramientas debe incluir su propia autorización: el proveedor que atiende el modelo solo se ocupa de la inferencia; las herramientas asíncronas, el Shell y las colas los ejecuta tu aplicación, así que la lógica de parada solo puede vivir en tu aplicación.
  • La latencia de parada tiene que ser medible: igual que Control Room publica su latencia máxima, un sistema propio también debería medir el tiempo máximo que pasa desde que se da la orden hasta que cada capa rechaza realmente la ejecución.

Impacto para la industria

  • El poder de parada se está desplazando hacia la infraestructura: trasladar el punto de aplicación forzosa del código de las tareas a una capa de ejecución centralizada y unificada se está convirtiendo en la dirección de consenso para la seguridad de los Agents.
  • La verificación independiente sigue siendo un vacío: a fecha de 11 de noviembre de 2026, en la información pública no hay ninguna prueba independiente de terceros sobre el propio Control Room. METR y Redwood Research probaron antes versiones antiguas del sistema de monitorización (de julio o anteriores), por lo que sus resultados no sirven directamente para demostrar ni para refutar la eficacia de Control Room.

Preguntas frecuentes (FAQ)

P1: ¿Qué es el botón de parada de emergencia (Kill Switch) de un agente de IA?

Es una capacidad de terminación independiente del propio agente: cuando un administrador o un sistema de monitoreo emite la orden, la infraestructura impide por la fuerza que el agente siga razonando, invocando herramientas y ejecutando tareas, sin depender de que el agente entienda o coopere con esa orden de parada.

P2: ¿Puede Control Room apagar ChatGPT o modelos de terceros?

No. El ámbito de despliegue que describe la documentación oficial es la infraestructura interna de investigación de OpenAI, que incluye entrenamiento, evaluación, Agentic Sampling y procesamiento de datos. La pila de servicios de modelos externos cuenta con su propia capacidad centralizada de desconexión, pero OpenAI no ha dicho que Control Room esté desplegado ahí, y los modelos que terceros despliegan por su cuenta tampoco quedan bajo su control.

P3: ¿Los 35 segundos se cuentan desde que aparece la anomalía?

No. Los 35 segundos empiezan cuando Control Room recibe la orden de parada y terminan cuando la tarea de investigación ya no puede obtener salidas del modelo. No incluyen el tiempo de detectar la anomalía ni el de tomar la decisión. Además, el proceso de la tarea podría seguir ejecutándose, y los comportamientos externos que ya ocurrieron no se deshacen.

P4: ¿Basta con poner un botón de parada solo en el frontend?

No. Cerrar la página o cortar la conexión de streaming, como mucho, hace que el usuario deje de ver las salidas posteriores, pero el bucle del backend, las invocaciones de herramientas y las tareas en segundo plano pueden seguir funcionando. El botón de parada debe conectarse al Control Plane, y que sean el Runtime, el Tool Gateway, el entorno de ejecución, y las capas de identidad y red quienes lo hagan cumplir cada uno por su lado.

P5: ¿Cómo montar rápidamente un prototipo de agente con control de parada?

Te recomiendo seguir tres pasos:

1. Regístrate en APIYI (apiyi.com) y obtén tu clave API y el crédito gratuito de prueba.
2. Usa el ejemplo de código de este artículo (con `base_url` configurado en `https://api.apiyi.com/v1`) para hacer funcionar el bucle de inferencia.
3. Guarda el estado de cada Run en Redis o en una base de datos, e integra el Tool Gateway con las comprobaciones Fail-Closed.

Como la interfaz es compatible con OpenAI, la lógica de parada no cambia cuando cambias de modelo.

P6: ¿Qué limitaciones tiene esta arquitectura de parada de emergencia para agentes de IA?

Fail-Closed puede afectar a las tareas normales cuando falla el servicio de control, así que hay que diseñar un proceso de recuperación; la caché introduce latencia en la parada; y las operaciones de compensación no pueden cubrir las acciones irreversibles. Además, por buena que sea la parada, depende de que el monitoreo detecte el problema primero. Cuando hagas pruebas con varios modelos en APIYI (apiyi.com), aprovecha para inyectar fallos en la cadena de parada y comprobar que cada capa realmente rechaza las solicitudes.


Puntos clave sobre la parada de emergencia de un AI Agent (Key Takeaways)

  • La parada tiene cuatro niveles: cerrar la página, cortar el stream, cancelar la Response y terminar el Run; cada uno tiene un alcance mayor que el anterior.
  • Que el modelo se detenga no significa que las herramientas también: las herramientas asíncronas las ejecuta la aplicación, así que la lógica de parada tiene que vivir en el lado de la aplicación.
  • El Control Plane emite la orden de forma centralizada: con el Run ID, la señal de parada llega a los sub-Agents, las herramientas y las tareas en segundo plano.
  • Cinco puntos de control se respaldan entre sí: Runtime, Tool Gateway, entorno de ejecución, identidad y red bloquean cada uno por su cuenta.
  • Fail-Closed es el mínimo irrenunciable: si el servicio de control falla, se rechaza por defecto; nunca se debe permitir por defecto.
  • Los 35 segundos se refieren solo a la fase de ejecución: no incluyen el tiempo de detección ni de decisión, y tampoco significan que se hayan revertido los efectos externos.
  • El prototipo se puede validar empezando por una interfaz unificada: con APIYI (apiyi.com) puedes invocar modelos de varios proveedores con una sola clave, y el control de parada lo escribes en tu propia infraestructura.

Conclusión: el poder de parar debe pertenecer a la infraestructura, no al propio Agent

Volvamos a la pregunta del título: ¿en qué capa debe ir el botón de parada de emergencia de un AI Agent? La respuesta es que un Control Plane central emita la decisión de parada y que esta se haga cumplir por separado en los puntos donde realmente se producen efectos secundarios: el bucle de inferencia, el gateway de herramientas, el entorno de ejecución, las credenciales de identidad y la salida de red. Por último, una capa de recuperación y auditoría se encarga de lo que ya había ocurrido antes de la parada.

Un mecanismo de parada decente debería cumplir tres condiciones:

  1. Independencia: no depende de que el Agent entienda o coopere con la orden de parada, y si el servicio de control falla, funciona en modo Fail-Closed.
  2. Cobertura: abarca desde la inferencia del modelo hasta las herramientas, las tareas en segundo plano, las credenciales y la red.
  3. Verificabilidad: la latencia de parada se puede medir, cada bloqueo deja un registro de auditoría y se hacen pruebas periódicas de inyección de fallos.

Si estás montando tu propio Agent, puedes empezar conectando varios modelos con una interfaz unificada a través de APIYI (apiyi.com) para poner en marcha el prototipo, y después ir añadiendo capa por capa el Run ID, el Tool Gateway y las comprobaciones Fail-Closed.


📚 Referencias

  1. OpenAI – Control Room, anuncio oficial: criterio de parada en 35 segundos, arquitectura del sistema y diseño Fail-Closed
  2. Enlace: openai.com/index/control-room/
  3. Descripción: fuente principal de los hechos de este artículo, publicado el 9 de noviembre de 2026

  4. OpenAI Alignment – An agent used DNS to reach an external chatbot: informe del incidente de DNS de septiembre

  5. Enlace: alignment.openai.com/misalignment-reports/an-agent-used-dns-to-reach-an-external-chatbot/
  6. Descripción: incluye la cronología completa del incidente y explica la latencia en la cadena entre la monitorización y la ejecución de la parada

  7. OpenAI API Reference – Cancel a response: documentación de la interfaz de cancelación de Responses

  8. Enlace: developers.openai.com/api/reference/resources/responses/methods/cancel
  9. Descripción: solo se aplica a las Response en modo background; la operación de cancelación es idempotente

  10. OpenAI Docs – Async Tool Calling: guía de llamadas asíncronas a herramientas

  11. Enlace: developers.openai.com/api/docs/guides/async-tool-calling
  12. Descripción: aclara que las herramientas asíncronas las ejecuta y gestiona la aplicación del desarrollador

  13. OWASP Agent Control Standard FAQ: modo Guardian y políticas de fallo por defecto

  14. Enlace: owaspacs.org/docs/topics/faq/
  15. Descripción: ante un fallo de decisión o de handshake, el comportamiento por defecto es proceed; hay que configurar deny y refuse por separado

  16. OWASP AIVSS: material sobre puntuación de riesgos de IA agéntica

  17. Enlace: aivss.owasp.org
  18. Descripción: señala la ausencia de un Kill Switch independiente como un riesgo de seguridad

  19. Microsoft Learn – Capas de seguridad de los agentes de IA: reparto de responsabilidades en la seguridad de agentes

  20. Enlace: learn.microsoft.com
  21. Descripción: recomienda volver a validar la autorización en cada operación

Autor: equipo técnico de APIYI
Intercambio técnico: contáctanos desde la página principal de APIYI; encontrarás más información de integración en el centro de documentación docs.apiyi.com

Deja un comentario