Seguridad en tiempo de ejecución para agentes de IA: guía para desarrolladores

Henry AGI
5 min de lecturaJun 2026
Seguridad en tiempo de ejecución para agentes de IA: guía para desarrolladores

La seguridad en tiempo de ejecución para agentes de IA significa ponerle un piso firme a una corrida sin supervisión: un porcentaje de batería que no se cruza, un estado térmico que no se sobrepasa, y una forma de saber si el agente sigue haciendo trabajo útil — no solo un interruptor que mantiene el Mac despierto y espera lo mejor. Arrancas un agente de código armando una función, un batch job de Ollama, o un entrenamiento antes de dormir, y a la mañana siguiente o ya terminó, o te despiertas con la batería muerta, un chasis demasiado caliente para tocar, y ningún registro de lo que pasó mientras tanto. Las herramientas propias de macOS — caffeinate, pmset — y las apps de terceros para la barra de menú como Amphetamine, KeepingYouAwake, Lungo y Caffeine resuelven bien la mitad de ese problema: evitan que el Mac entre en reposo por inactividad. Ninguna vigila el nivel de batería o el calor mientras lo hace. Esta guía cubre las dos mitades — las formas gratuitas y nativas de mantener un Mac despierto, dónde cada una realmente brilla, y las protecciones que vale la pena sumarles para cualquier corrida en la que no vas a estar presente.

Los riesgos reales de las corridas largas de agentes de IA sin supervisión

Una corrida nocturna de Ollama, un agente de Claude Code armando una función completa, un pipeline de build que se vuelve a ejecutar con cada cambio de archivo — estas cargas de trabajo comparten una propiedad: nadie las está mirando. El guardián de reposo por inactividad de macOS no tiene noción de porcentaje de batería ni de temperatura del chip; solo le importa si algo mantiene activa una assertion que impide el reposo. Una vez que hay una activa, la corrida continúa hasta que termina, hasta que se acaba la batería, o hasta que el Mac se protege apagándose solo.

El riesgo de batería es acumulativo. Cargar repetidamente desde casi vacío desgasta el contador de ciclos de carga más rápido que mantenerse entre 40 y 80%. Un solo drenaje nocturno hasta 0% rara vez es fatal por sí solo; el hábito de hacerlo semana tras semana sí acelera la pérdida de capacidad. El peligro más inmediato suele ser un agente atascado — un bucle de prompts, un timeout de API que nunca reintentó, un build esperando en un puerto bloqueado — consumiendo CPU de forma constante durante horas mientras duermes, sin terminar ni mostrar un error.

El riesgo térmico en una MacBook lo maneja en parte macOS y en parte depende de la instalación física. El chip se autolimita (throttling) bajo carga sostenida, pero eso solo significa una corrida más larga y más caliente — no una corrida segura. Una MacBook sobre una superficie blanda con las salidas de aire bloqueadas, o corriendo con la tapa cerrada y mala ventilación, concentra el calor en un espacio más chico. Ninguna herramienta para mantener el Mac despierto, gratis o paga, cambia esa realidad física — solo puede decidir cuándo dejar de intentarlo.

La vía gratuita y nativa: caffeinate, pmset y apps de terceros para la barra de menú

macOS trae dos herramientas hechas justo para esto, y vale la pena conocerlas antes de buscar otra cosa. caffeinate -i evita el reposo por inactividad mientras corre en primer plano. caffeinate -w <pid> va más allá y ata esa misma assertion a un proceso específico — el PID de un entrenamiento, el PID de un agente — liberándola automáticamente en el instante en que ese proceso termina. Es la misma idea detrás del wrapper de CLI propio de LidRun (lidrun -- python train.py --epochs 100, que sostiene una assertion, corre el comando y la suelta cuando termina). Para una corrida corta que de todos modos vas a supervisar, caffeinate -w $(pgrep ollama) o envolver el comando directamente ya es más que suficiente. Es gratis, ya viene en tu Mac, y hace un solo trabajo, pero bien hecho.

LidRun
Comparison table of caffeinate, pmset disablesleep, Amphetamine, KeepingYouAwake, Lungo, Caffeine, and LidRun across cost, battery-aware floor, thermal-aware stop, process-linking, and notifications
Las opciones gratuitas y nativas son sólidas para evitar el reposo por inactividad. Ninguna lee el porcentaje de batería ni el estado térmico para decidir cuándo soltar.

Para una configuración con la tapa cerrada — monitor externo, teclado y mouse, tapa abajo — el mecanismo detrás es pmset -a disablesleep 1, una bandera del sistema no documentada pero muy usada, que le dice a macOS que ignore por completo el disparador de reposo al cerrar la tapa. Es sobre lo que se construye cualquier utilidad de modo clamshell, incluido el propio Closed-Lid de LidRun. Requiere privilegios de administrador y, a diferencia de las assertions de arriba, no está limitado a un solo proceso — cambia el comportamiento de reposo de toda la máquina hasta que algo lo vuelva a poner en 0.

Vale la pena activar los propios ajustes de batería de macOS para cualquier corrida larga, sin importar qué herramienta uses para mantener el Mac despierto. Modo de Bajo Consumo y Carga Optimizada de la Batería (Ajustes del Sistema → Batería) reducen el consumo de energía en segundo plano y regulan el ritmo de los ciclos de carga — ninguno de los dos evita el reposo ni vigila tu carga de trabajo, pero son gratuitos, nativos, y complementan cualquier otra cosa que estés corriendo.

Las apps de terceros para la barra de menú llenan el espacio entre un comando de terminal y algo en lo que confiarías para correr solo toda la noche. Amphetamine tiene el sistema de disparadores más completo del grupo — puedes armarlo para que se active cuando una app específica se abre o un proceso arranca, no solo apretar un interruptor manual. KeepingYouAwake es un interruptor de barra de menú pequeño y de código abierto que hace exactamente una cosa, gratis, sin anuncios. Caffeine popularizó el ícono de la 'taza de café' con un clic y sigue siendo la opción más simple si lo único que quieres es un interruptor sencillo. Lungo envuelve la misma idea en una interfaz limpia con temporizador de cuenta regresiva. Las cuatro son herramientas sólidas y bien hechas para evitar que un Mac entre en reposo por inactividad — esa parte del problema está genuinamente resuelta varias veces por separado.

Guía relacionadaGuía de seguridad del modo Closed-Lid para cargas de trabajo en MacBook

Dónde se quedan cortas las opciones gratuitas en una corrida sin supervisión

Ninguna de las herramientas de arriba conoce tu porcentaje de batería ni la temperatura de tu Mac. caffeinate -w <pid> sostiene su assertion al 2% de batería con la misma facilidad que al 80% — no trae ningún piso incorporado. Amphetamine, KeepingYouAwake, Lungo y Caffeine funcionan igual: una duración, un disparador o un interruptor manual, pero nada que vigile el nivel de carga o el estado térmico y suelte antes de tiempo. Para un trabajo que estás siguiendo de cerca, eso no es un problema — vas a notar la advertencia de batería y vas a actuar. Para algo que arrancas y dejas corriendo ocho horas sin volver, es la forma equivocada de resolverlo.

pmset -a disablesleep 1 conlleva un riesgo más agudo. Como el ajuste es global y persistente, si lo que sea que lo esté manejando — un script, una sesión de terminal, una app — se cuelga o se cierra a la fuerza antes de correr el pmset -a disablesleep 0 correspondiente, la bandera queda trabada en encendido. El reposo deja de dispararse al cerrar la tapa por completo, con batería, indefinidamente, hasta que alguien lo note y lo limpie a mano con sudo pmset -a disablesleep 0. Es exactamente por eso que LidRun empareja cada 1 que fija con un 0 correspondiente — al detenerse, al cerrarse, y de nuevo como chequeo de reconciliación la próxima vez que la app arranca — en vez de confiar en que un script siempre va a llegar a su propia línea de limpieza.

El otro vacío es saber si la corrida sigue haciendo algo. Un agente atascado — un bucle de prompts, una llamada a una API que nunca obtuvo respuesta, un build trabado en un puerto bloqueado — se ve idéntico a uno saludable desde afuera: el proceso sigue ahí, sigue sosteniendo su assertion. Todas las herramientas de arriba, incluido el keep-awake básico del propio LidRun, van a mantener el Mac despierto para un proceso atascado con la misma fidelidad que para uno productivo, mientras siga presente. Detectar eso requiere vigilar el proceso en sí, no solo su presencia.

Seguridad de batería: por qué importa un piso de carga baja

El auto-stop de batería de LidRun vigila el nivel de carga vía IOKit y libera el bloqueo de mantener despierto en cuanto tu Mac cruza un umbral que tú defines — 20% por defecto, ajustable entre 15% y 50%. Por debajo de tu ajuste, lo que sea que estuvieras corriendo pierde su bloqueo y el Mac vuelve a su comportamiento normal de reposo. Debajo de eso existe un segundo piso, no configurable, sin importar lo que hayas fijado: un force-sleep de emergencia real, limitado para que nunca pueda bajar de 4%, porque por debajo de ese nivel macOS no tiene de forma confiable el margen suficiente para terminar de apagarse limpiamente antes de que la batería simplemente se acabe.

LidRun
Annotated Mac battery meter showing the non-configurable emergency force-sleep floor near empty, LidRun's 20 percent default auto-stop, and a recommended 25-30 percent floor for overnight runs
El auto-stop de LidRun viene en 20% por defecto y puede subirse hasta 50%; por debajo de cualquier ajuste, siempre hay activo un piso de emergencia no configurable cerca del cero.

Para una corrida nocturna solo con batería — sin cargador — fijaríamos el piso de auto-stop más alto que el 20% por defecto: 25–30% da un margen real. En 10–15%, un pico breve de CPU o una respuesta lenta del ventilador te puede empujar a la zona donde macOS fuerza un apagado de emergencia sin salida limpia; en 25–30%, hay espacio de sobra para un corte limpio más margen contra un pico de carga que no viste venir.

El piso de auto-stop en sí viene en toda instalación, incluido el nivel gratuito — LidRun nunca pone detrás de un pago el corte básico por batería baja. Una segunda etapa, anterior — un aviso configurable de 'avísame al X%' antes del corte duro, para quienes quieren más colchón entre el primer aviso y el corte real — es parte del nivel de pago de seguridad graduada. De cualquier forma, para cualquier corrida de más de un par de horas, conéctate a la corriente si puedes: una carga sostenida y alta de CPU con batería desgasta los ciclos de carga más rápido que la misma carga con corriente alterna, y un piso igual te protege si el cargador se suelta a mitad de la corrida, incluso estando conectado.

Seguridad térmica: lo que el Mac te dice y lo que no

macOS expone la presión térmica a través de ProcessInfo.thermalState: nominal, fair, serious, critical. LidRun muestra una advertencia en cuanto el estado llega a 'serious' y retrocede de verdad al llegar a 'critical' — el Safety Governor libera el bloqueo de mantener despierto de inmediato, en todos los niveles, gratis o de pago, sin esperar a que tú te des cuenta. Si el modo Closed-Lid está activo y la tapa está físicamente cerrada, una simple liberación no haría nada por sí sola (ya no queda un reposo por inactividad que disparar), así que escala hasta poner al Mac a dormir directamente.

LidRun
Diagram of macOS thermal states nominal, fair, serious, critical with LidRun's warning point at serious and auto-release point at critical overlaid on a rising temperature curve
LidRun avisa en 'serious' y se retira de verdad en 'critical' — verificado contra la temperatura del SMC y el throttle de CPU, no solo con la señal general del sistema.
LidRun
Three MacBook setups compared for heat risk: hard flat surface with lid open, soft surface with lid open, and inside a closed bag with lid closed, showing increasing heat concentration
Los guardrails de software son la segunda línea de defensa. La primera es la configuración física — superficie, flujo de aire, posición de la tapa — y ninguna herramienta keep-awake la cambia.

El problema es la granularidad: thermalState por sí solo es una señal poco precisa. En nuestras propias pruebas en un Mac Intel, una sesión normal con la tapa abierta bajo carga pesada se estabilizó cerca de los 95°C con la CPU corriendo aún por encima del 80% de su velocidad máxima — mientras que la misma carga de trabajo, cerrada dentro de una mochila, hizo que el límite de velocidad de la CPU se desplomara a cerca del 24% en cuestión de minutos, y thermalState en ese momento todavía marcaba apenas 'fair'. Esa brecha es la razón por la que LidRun cruza la señal del sistema operativo con el sensor de temperatura del SMC y la lectura del límite de velocidad de la CPU (pmset -g therm), en vez de confiar solo en thermalState — con que cualquiera de las dos señales marque crítico alcanza para activar el mecanismo de respaldo.

Las RPM del ventilador y los datos del sensor SMC se pueden leer en Mac Intel y en la mayoría de las configuraciones Apple Silicon como señal de monitoreo — un ventilador ya al tope te dice que el sistema ya está trabajando al límite, lo cual es contexto útil junto con la lectura de temperatura en sí.

Las protecciones de software son la segunda línea de defensa; la primera es física. Superficie dura y plana, salidas de aire despejadas, tapa abierta cuando puedas manejarlo así. Correr con la tapa cerrada concentra más calor que con la tapa abierta, algo que vale la pena saber antes de armar un flujo de trabajo clamshell nocturno — un soporte para laptop o incluso elevar un poco el escritorio marca una diferencia medible. Correr un trabajo de cómputo largo dentro de una mochila u otro espacio cerrado es la configuración de mayor riesgo que existe; ningún monitor de procesos cambia la trampa de calor que eso genera, así que trata esa configuración con cuidado sin importar qué herramienta la esté vigilando.

Dónde encaja una capa hecha a propósito: consciente del proceso, de la batería y de la temperatura

La premisa de LidRun es simple: agente corriendo → mantener despierto; agente terminado o en riesgo → liberar o dormir. No es un bloqueo de vigilia a ciegas que activas y tienes que acordarte de apagar, ni una sesión que tienes que estar vigilando por si se cruza una línea de batería o de calor mientras no estás mirando. Todo lo anterior — caffeinate, pmset, Amphetamine, KeepingYouAwake, Lungo, Caffeine — hace bien la mitad de 'mantener despierto'. Esta es la otra mitad.

Auto Mode es el keep-awake ligado al proceso: la misma idea que caffeinate -w, pero viene reconociendo de fábrica una larga lista de procesos de agentes de código y herramientas de desarrollo — Claude Code, Codex, Cursor, GitHub Copilot, Windsurf, Aider, Ollama, y más — sin necesidad de configurar nada. También trae incorporada una espera de 30 minutos específicamente para los procesos de agente reconocidos, para que una pausa normal de 'pensando' entre llamadas a herramientas no se lea como que el trabajo terminó (un editor simplemente abierto no recibe ese mismo período de gracia, así que una ventana de Cursor abierta pero inactiva no puede mantener el Mac despierto solo por estar presente). Auto Mode es una función de pago.

Watchdog va un paso más allá: vigila si un agente se queda callado. Después de 20 minutos de que un proceso de agente reconocido se mantenga cerca de 0% de CPU — contra 5 minutos para cualquier otra cosa, ya que los agentes quedan inactivos normalmente mientras esperan una respuesta de API — te avisa que la corrida podría estar atascada, con suficiente anticipación como para que te enteres antes de que el propio período de gracia de Auto Mode hubiera soltado la assertion de todos modos. Solo avisa; nunca mata ni reinicia el proceso por su cuenta. También es una función de pago.

El auto-stop de batería y la liberación por calor crítico que describimos arriba son gratis en toda instalación — esa parte nunca está detrás de un pago. El modo Timer de LidRun (gratis, junto con el Keep Awake simple y el Charging-only) sostiene la assertion hasta un vencimiento fijado y la suelta solo, útil como límite superior sin importar si Auto Mode reconoce el proceso o no. Las notificaciones push por ntfy.sh (sin necesidad de cuenta) o Pushover cierran el círculo, para que una corrida que se detiene a las 3 a.m. por terminar, por batería baja o por estado térmico te llegue al teléfono en vez de que la descubras con un Mac frío a la hora del desayuno. Y como LidRun también vigila si otras apps están sosteniendo su propio bloqueo de vigilia — Amphetamine, un proceso de caffeinate suelto, cualquier otra cosa — te puede avisar cuando algo más ya está manteniendo el Mac despierto, algo que importa sobre todo cuando estás pasando de una de las herramientas de arriba y no quieres duplicar el bloqueo sin darte cuenta.

Cómo armar valores seguros por defecto para el trabajo nocturno de agentes

Para una corrida nocturna típica de un agente de IA, una configuración razonable para empezar: auto-stop de batería en 25–30% en vez del 20% por defecto, la advertencia térmica 'serious' como tu primera señal para revisar, la liberación automática en 'critical' como el respaldo duro, y — si el proceso es uno que Auto Mode ya reconoce — dejar que ligue la assertion al trabajo real en vez de adivinar con una duración fija.

Un temporizador de sesión fijo todavía tiene su lugar junto a todo esto: el modo Timer sostiene la assertion hasta un vencimiento fijado y después la suelta solo, útil como límite superior junto con la vigilancia ligada al proceso, o por su cuenta para cualquier cosa que Auto Mode no reconozca. La combinación — lo que termine primero, la salida del proceso o N horas — atrapa el caso que un simple interruptor no puede: un agente que se atascó en la hora dos pero nadie estaba ahí para notarlo, gastando batería y calor en un proceso que dejó de hacer trabajo útil horas antes.

Para corridas cortas y supervisadas, caffeinate y una terminal vigilada son más que suficientes — no hace falta buscar nada más. El vacío se abre justo para las corridas en las que no vas a estar presente: ahí es donde un piso de batería, un respaldo térmico, la conciencia del proceso y una notificación que te llega al teléfono empiezan a importar más que cuál herramienta de mantener despierto está sosteniendo la assertion. Fija el piso una vez, conéctate a la corriente cuando la corrida sea larga, mantén las salidas de aire despejadas, y deja que los límites hagan el resto.

Pruébalo en vez de pelear con el reposo de tapa cerrada

LidRun mantiene tu trabajo en marcha con la tapa cerrada, con protección de batería y temperatura integrada.

Descargar para macOS

¿Ya tienes LidRun? Lee la guía de configuración →

¿Nuevo en LidRun? Consulta los precios →

Preguntas frecuentes

¿Es seguro dejar agentes de IA corriendo toda la noche en una MacBook?

Depende de la configuración. Correr con corriente alterna, sobre una superficie dura y plana con buena ventilación, con un piso de batería y un temporizador de sesión o un keep-awake ligado al proceso configurado, ayuda a reducir el riesgo de forma importante. Correr solo con batería y sin protecciones, sobre una superficie blanda, o con la tapa cerrada en un espacio cerrado, eleva tanto el riesgo térmico como el de batería. Ninguna herramienta para mantener despierto — caffeinate, pmset, una app de barra de menú o LidRun — hace que el cómputo nocturno sin supervisión sea seguro sin condiciones; el objetivo es mantenerse en la parte más segura del rango de operación y recibir un aviso cuando se llega a un límite.

¿Qué porcentaje de batería es un corte seguro para corridas de IA?

El auto-stop por defecto de LidRun es 20%, ajustable entre 15% y 50%; para una corrida nocturna solo con batería, sugeriríamos subirlo a 25–30% para tener más margen. Por debajo de 10–15% aproximadamente, un pico sostenido de CPU puede empujar al Mac hacia un apagado de emergencia sin salida limpia. Debajo de cualquier ajuste, el propio macOS necesita algo de margen cerca de vacío para apagarse limpiamente — por eso el piso de force-sleep de emergencia de LidRun está limitado para que nunca pueda bajar de 4%, sin importar tus otros ajustes. Con corriente alterna la preocupación inmediata por el drenaje baja, pero igual vale la pena mantener un piso de batería baja por si el cargador se suelta a mitad de la corrida.

¿Puede una MacBook sobrecalentarse corriendo agentes de IA con la tapa cerrada?

El calor se acumula más rápido con la tapa cerrada porque la pantalla ya no puede actuar como radiador pasivo. macOS va a limitar el chip (throttling) a medida que sube la temperatura, pero eso solo significa una corrida más lenta, más caliente y más larga — no una corrida segura. En nuestras propias pruebas, una carga de trabajo que mantenía su límite de velocidad de CPU por encima del 80% con la tapa abierta a cerca de 95°C vio ese límite desplomarse a cerca del 24% en cuestión de minutos en cuanto la misma configuración se cerró dentro de una mochila. Correr sobre una superficie dura y plana con las salidas de aire despejadas, de preferencia con corriente alterna, ayuda a reducir ese riesgo. Tapa cerrada sobre una superficie blanda o dentro de una mochila es la configuración de mayor riesgo; ninguna herramienta de mantener despierto cambia un paso de aire bloqueado.

¿Es suficiente caffeinate para una corrida nocturna de un agente de IA?

Para una corrida corta que vas a estar revisando tú mismo, sí — caffeinate -w <pid> o envolver el comando directamente hace bien el trabajo, y gratis. Lo que no va a hacer es vigilar tu porcentaje de batería o el estado térmico mientras mantiene el Mac despierto, así que va a seguir sosteniendo una corrida atascada o nocturna con la misma facilidad al 2% de batería que al 80%. Para cualquier cosa de la que no vayas a estar cerca durante varias horas, combínalo con un piso de batería y un respaldo térmico, o usa una herramienta que ya traiga los dos incorporados.

¿Cuál es la diferencia entre LidRun y apps como Amphetamine o KeepingYouAwake?

Amphetamine, KeepingYouAwake, Lungo y Caffeine están de verdad bien hechas para el único trabajo que hacen: evitar que un Mac entre en reposo por inactividad, mediante un horario, un disparador o un interruptor manual. Ninguna lee el porcentaje de batería ni el estado térmico para decidir cuándo soltar — eso no es una crítica, simplemente está fuera de lo que fueron pensadas para hacer. LidRun agrega esa capa encima: un piso de batería y una liberación por calor crítico gratis en toda instalación, y — en el nivel de pago — vigilancia ligada al proceso (Auto Mode) más una alerta de agente atascado (Watchdog), así que la protección viene de un conjunto de chequeos y no de acordarte de apagar un interruptor.

¿Qué protecciones agrega LidRun para la seguridad de los agentes?

El auto-stop de batería y la liberación por calor crítico son gratis en toda instalación: LidRun vigila el nivel de carga y el estado térmico vía IOKit y las propias APIs de macOS, y libera el bloqueo de mantener despierto en cuanto cualquiera de los dos cruza tu umbral. En el nivel de pago, Auto Mode liga la assertion a un proceso específico reconocido en vez de a una duración fija, y Watchdog te avisa si ese proceso se queda callado más tiempo del que los agentes normalmente pasan inactivos. Las notificaciones push por ntfy.sh o Pushover, y un modo Timer gratuito como límite superior fijo, completan el conjunto. Estas protecciones ayudan a reducir la probabilidad de despertar con la batería muerta o el Mac limitado por throttling; no son una garantía, y tu instalación física — superficie, ventilación, posición de la tapa — sigue importando tanto como cualquier ajuste.

¿Tienes curiosidad por saber si LidRun es para ti?

Deja que ChatGPT, Claude o Perplexity lo investiguen — haz clic abajo y mira qué opina la IA sobre LidRun.