Guías para construir y operar agentes de IA

Empieza con un proyecto pequeño, conecta sus herramientas y comprueba sus límites antes de abrirlo a usuarios. Encontrarás código descargable, datos de ejemplo y pruebas que puedes repetir.

249 guías prácticas115 notas de referenciaVer cursos

Guías, página 5

249 tutoriales, comparativas y checklists para continuar según tu proyecto.

Agente esperando a que Postgres pase healthcheck antes de arrancar
GuíaDeploy9 min

depends_on healthy: el agente no arranca antes que Postgres

Cómo no crashear el bot en el primer segundo: depends_on condition service_healthy, pg_isready y start_period. Distinto del /health del agente. Cifras oficiales Compose, Dockerfile HEALTHCHECK y Postgres 18, curl 3 de septiembre de 2026. Fly y Railway no equivalen a depends_on.

Leer guía
Rotacion de logs json-file de Docker junto a un agente que escribe stdout
GuíaDeploy9 min

Logging json-file de Docker para un agente IA: max-size o el host muere

Cómo no llenar /var/lib/docker con stdout del bot: logging json-file max-size y max-file en Compose. Distinto de wrangler tail. El driver no rota solo. Techos oficiales Docker json-file, local y none, verificados con curl el 3 de septiembre de 2026.

Leer guía
Tope de file descriptors frente a sockets abiertos de un agente
GuíaDeploy9 min

ulimit nofile para un agente IA: EMFILE no es el modelo

Cómo no quedarte sin file descriptors: ulimits nofile en Compose, sockets a Telegram y a la API, sqlite y logs. Distinto de pids_limit. Un leak de sockets parece un bot mudo. Techos oficiales Docker del 3 de septiembre de 2026.

Leer guía
Tope de procesos en un contenedor de agente frente a un spawn descontrolado
GuíaDeploy9 min

pids limit para un agente IA: nada de fork bomb en el VPS

Cómo no dejar que un tool spawnée mil node: pids_limit en Compose y docker run. Un agente con tools no es un systemd. 256 pids bastan. Distinto de mem_limit y cpus: es el número de procesos. Docs oficiales del 3 de septiembre de 2026.

Leer guía
Contenedor de agente sin capabilities de Linux extra
GuíaDeploy9 min

cap_drop ALL para un agente IA en Docker

Cómo no dejar NET_ADMIN y SYS_ADMIN en el bot: cap_drop ALL, y no cap_add salvo que un proxy lo pida. Rootfs read-only y USER node no quitan capabilities. Compose cap_drop y docker run --cap-drop=ALL. Docs oficiales del 3 de septiembre de 2026.

Leer guía
Sistema de archivos de solo lectura con tmpfs y un volumen de datos
GuíaDeploy10 min

Rootfs read-only para un agente IA en Docker

Cómo no dejar que un tool escriba en la imagen: read_only true, tmpfs en /tmp y volumen solo en /data. El sqlite no vive en el overlay. Un agente comprometido no persiste binaries. Compose y docker run, consultado el 3 de septiembre de 2026.

Leer guía
Proceso init reenviando SIGTERM al runtime del agente y recolectando zombies
GuíaDeploy9 min

Init y tini en el contenedor del agente IA: PID 1 que reenvía señales

Cómo no dejar zombies ni tragarte el SIGTERM: init true en Compose, docker run --init (tini), ENTRYPOINT con -- en el Dockerfile. Node como PID 1 no recolecta hijos de tools. Fly no trae tini. Un init corto, no un while true.

Leer guía
Contenedor de agente que reinicia con tope frente a un crash loop
GuíaDeploy9 min

Restart policy del agente IA: unless-stopped vs crash loop

Cómo no pelearte con el kill switch: restart unless-stopped en Compose, on-failure con tope, Fly auto-restart vs scale 0. Un OOM no debe reiniciar 400 veces. Un deploy tampoco debe dejar el bot apagado para siempre. Política escrita, no el default.

Leer guía
Bandera NODE_ENV production frente a un runtime de agente
GuíaDeploy9 min

NODE_ENV=production para un agente IA: no dejes development en Fly

Cómo no correr Express en modo debug ni instalar devDependencies en prod: NODE_ENV=production en el runner, no en el stage de build. Vercel/Railway lo setean; Docker tienes que poner el ENV. Un next build con NODE_ENV ya production rompe el compile. Fuentes 3 sep 2026.

Leer guía
Puerto publicado del contenedor frente a un proceso que solo escucha localhost
GuíaDeploy9 min

Bind 0.0.0.0 y puertos del agente IA en Docker

Cómo no dejar el bot sordo en el contenedor: Node debe escuchar 0.0.0.0, no 127.0.0.1. Compose publica 3000:3000, Fly y Railway mapean el puerto interno. Localhost dentro del box no es el localhost de tu Mac. Healthcheck al mismo bind.

Leer guía
Dos etapas de build Docker: compilacion a la izquierda y runtime minimo a la derecha
GuíaDeploy11 min

Multi-stage Docker para un agente IA: build gordo, runtime flaco

Cómo no meter compiladores y pnpm store en prod: stage build con devDependencies, stage runtime solo node_modules de prod, COPY --from. La imagen chica arranca más rápido, filtra tools de build y no lleva el .env que ignoraste a medias. Docs Docker multi-stage, 3 sep 2026.

Leer guía
Contexto de build Docker filtrando secretos fuera de la imagen del agente
GuíaDeploy9 min

.dockerignore para un agente IA: el .env no va en la imagen

Cómo no hornear TELEGRAM_TOKEN en un layer: .dockerignore, COPY selectivo y build context mínimo. docker history enseña el secreto. Inyecta env en runtime (Railway, Fly, Vercel), no en el build. El digest pineado no salva un COPY de todo el repo.

Leer guía
Proceso de agente corriendo como usuario sin privilegios dentro de un contenedor
GuíaDeploy9 min

Usuario no-root en el contenedor del agente IA

Cómo no correr el bot como root: USER en el Dockerfile, uid fijo, volumen con el mismo uid, HEALTHCHECK antes de dropear privilegios, y por qué npm start como PID 1 rompe SIGTERM. Root no hace el modelo más listo; solo agranda el radio de daño.

Leer guía
Imagen Docker anclada a un digest frente a un tag latest que cambia
GuíaDeploy9 min

Pin de imágenes Docker para un agente IA: nada de :latest

Cómo no redeployar un agente distinto al de ayer: pin por digest sha256, no :latest ni node:22. Actions con SHA de actions, no @v4 flotante. Fly y Railway despliegan lo que el tag resuelva hoy. El tag miente; el digest no.

Leer guía
Reloj UTC frente a un horario local de Guatemala para un cron de agente
GuíaDeploy9 min

Cron en UTC para un agente IA: Vercel, Workers y Actions

Cómo no mandar el digest a las 3 AM en Guatemala: crons de Vercel, Cloudflare y GitHub Actions corren en UTC. America/Guatemala es UTC−6 todo el año, sin DST. Convierte 9:00 CST a 15:00 UTC y apaga el cron en Preview.

Leer guía
Candado de verificación delante de un webhook que llega a un agente
GuíaDeploy9 min

Firmar webhooks del agente IA: Telegram, Slack y GitHub

Cómo no ejecutar un POST anónimo como si fuera Telegram: secret_token de setWebhook, firma Slack v0, HMAC de GitHub y 401 si falta. El token del bot en env no verifica el inbound. Preview usa otro secret. Fuentes oficiales, 3 septiembre 2026.

Leer guía
Proceso de agente contra un techo de CPU y un reloj de duración
GuíaDeploy9 min

Límites de CPU de un agente IA: cgroup, Workers y maxDuration

Cómo no confundir RAM llena con CPU throttling: cpu shares de Docker, vCPU de Fly y Railway, 10 ms de Workers Free frente a 30 s Paid, y maxDuration de Vercel que corta el wall clock no el modelo. El 429 del proveedor no es un cgroup.

Leer guía
Volumen de disco al límite junto a un agente que ya no puede escribir
GuíaDeploy9 min

Disco lleno en un agente IA: volúmenes, sqlite y logs

Cómo no tumbar el bot porque el volumen de 1 GB se llenó de WAL, logs y adjuntos: tamaño de volúmenes en Fly y Railway, logs de Docker que no rotan, y qué hacer cuando sqlite crece más que el disco. Backup copia; esto evita el ENOSPC.

Leer guía