🤖HermesBlog
Hermes Feature Guides · Parte 88/9/2026

Automatiza Cualquier Cosa con Cron

Automate Everything with Cron — easy-to-understand guide based on official docs

guide-automate-cron

Automatiza Cualquier Cosa con Cron

Si ya leíste nuestro tutorial del bot de briefing diario, ya conoces los conceptos básicos de los trabajos cron. Pero eso es solo la punta del iceberg. Hoy vamos más profundo: cinco patrones de automatización del mundo real que puedes tomar prestados y adaptar a tus propios flujos de trabajo.

Antes de sumergirnos, aquí está la regla de oro: los trabajos cron se ejecutan en sesiones de agente nuevas, sin memoria de tu chat actual. Tus indicaciones deben ser completamente autónomas. Incluye todo lo que el agente necesita saber: comandos, contexto, expectativas. Piénsalo como escribir instrucciones para un pasante muy inteligente que acaba de llegar por la puerta.

Alternativas de Cero Tokens (Ahorra tus Llamadas de LLM)

No toda automatización necesita un LLM. Dos opciones te permiten saltarte el costo de tokens por completo:

  • Vigilante recurrente — si tu script ya produce el mensaje exacto (alertas de memoria, advertencias de disco, latidos), usa trabajos cron solo-script. Mismo programador, sin LLM. Solo pídele a Hermes en el chat — la herramienta cronjob sabe cuándo elegir no_agent=True y escribe el script por ti.
  • Disparo único desde un script en ejecución — para pasos de CI, hooks post-commit o scripts de despliegue, usa hermes send para canalizar stdout o un archivo directamente a Telegram, Discord, Slack, etc. No se necesita entrada cron.

Patrón 1: Monitor de Cambios en Sitios Web

Vigila una URL y recibe notificaciones solo cuando algo realmente cambia. El arma secreta aquí es el parámetro script — un script de Python se ejecuta antes de cada ejecución, y su stdout se convierte en contexto para el agente. El script maneja el trabajo mecánico (obtener, comparar); el agente maneja el razonamiento (¿es interesante este cambio?).

Primero, crea el script de monitoreo:

mkdir -p ~/.hermes/scripts
import hashlib, json, os, urllib.request

URL = "https://example.com/pricing"
STATE_FILE = os.path.expanduser("~/.hermes/scripts/.watch-site-state.json")

# Fetch current content
req = urllib.request.Request(URL, headers={"User-Agent": "Hermes-Monitor/1.0"})
content = urllib.request.urlopen(req, timeout=30).read().decode()
current_hash = hashlib.sha256(content.encode()).hexdigest()

# Load previous state
prev_hash = None
if os.path.exists(STATE_FILE):
    with open(STATE_FILE) as f:
        prev_hash = json.load(f).get("hash")

# Save current state
with open(STATE_FILE, "w") as f:
    json.dump({"hash": current_hash, "url": URL}, f)

# Output for the agent
if prev_hash and prev_hash != current_hash:
    print(f"CHANGE DETECTED on {URL}")
    print(f"Previous hash: {prev_hash}")
    print(f"Current hash: {current_hash}")
    print(f"\nCurrent content (first 2000 chars):\n{content[:2000]}")
else:
    print("NO_CHANGE")

Ahora configura el trabajo cron:

/cron add "every 1h" "If the script output says CHANGE DETECTED, summarize what changed on the page and why it might matter. If it says NO_CHANGE, respond with just [SILENT]." --script ~/.hermes/scripts/watch-site.py --name "Pricing monitor" --deliver telegram

El truco de [SILENT]: Para trabajos de monitoreo, dile al agente que responda solo con [SILENT] cuando nada haya cambiado. La entrega de cron trata esto como el marcador silencioso — solo recibes notificaciones cuando algo realmente sucede. Sin spam durante las horas tranquilas.


Patrón 2: Informe Semanal

Compila información de múltiples fuentes en un resumen formateado. Esto se ejecuta una vez por semana y se entrega a tu canal principal.

/cron add "0 9 * * 1" "Generate a weekly report covering:

1. Search the web for the top 5 AI news stories from the past week
2. Search GitHub for trending repositories in the 'machine-learning' topic
3. Check Hacker News for the most discussed AI/ML posts

Format as a clean summary with sections for each source. Include links.
Keep it under 500 words — highlight only what matters." --name "Weekly AI digest" --deliver telegram

Desde la CLI:

hermes cron create "0 9 * * 1" \
  "Generate a weekly report covering the top AI news, trending ML GitHub repos, and most-discussed HN posts. Format with sections, include links, keep under 500 words." \
  --name "Weekly AI digest" \
  --deliver telegram

El 0 9 * * 1 es una expresión cron estándar: 9:00 AM cada lunes.


Patrón 3: Vigilante de Repositorios de GitHub

Monitorea un repositorio para detectar nuevas issues, PRs o lanzamientos.

/cron add "every 6h" "Check the GitHub repository NousResearch/hermes-agent for:
- New issues opened in the last 6 hours
- New PRs opened or merged in the last 6 hours
- Any new releases

Use the terminal to run gh commands:
  gh issue list --repo NousResearch/hermes-agent --state open --json number,title,author,createdAt --limit 10
  gh pr list --repo NousResearch/hermes-agent --state all --json number,title,author,createdAt,mergedAt --limit 10

Filter to only items from the last 6 hours. If nothing new, respond with [SILENT].
Otherwise, provide a concise summary of the activity." --name "Repo watcher" --deliver discord

Las indicaciones autónomas importan. Nota cómo la indicación incluye los comandos gh exactos. El agente cron no tiene historial de conversación de ejecuciones anteriores — especifica todo. (La memoria persistente sí se carga, así que las preferencias duraderas guardadas en MEMORY.md se transfieren, pero no confíes en ella para detalles críticos del trabajo.)


Patrón 4: Pipeline de Recolección de Datos

Extrae datos a intervalos regulares, guárdalos en archivos y detecta tendencias con el tiempo. Este patrón combina un script (para la recolección) con el agente (para el análisis).

import json, os, urllib.request
from datetime import datetime

DATA_DIR = os.path.expanduser("~/.hermes/data/prices")
os.makedirs(DATA_DIR, exist_ok=True)

# Fetch current data (example: crypto prices)
url = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum&vs_currencies=usd"
data = json.loads(urllib.request.urlopen(url, timeout=30).read())

# Append to history file
entry = {"timestamp": datetime.now().isoformat(), "prices": data}
history_file = os.path.join(DATA_DIR, "history.jsonl")
with open(history_file, "a") as f:
    f.write(json.dumps(entry) + "\n")

# Output for the agent
print(f"Collected prices at {entry['timestamp']}: {data}")

Luego configura un trabajo cron que ejecute el script y pida al agente analizar los datos recopilados:

/cron add "every 30m" "Run the collection script, then analyze the price history in ~/.hermes/data/prices/history.jsonl. If you notice a significant trend (more than 5% change in the last hour), summarize it. Otherwise respond with [SILENT]." --script ~/.hermes/scripts/collect-prices.py --name "Price tracker" --deliver telegram

Patrón 5: El Enfoque “Solo Pregunta”

¿No quieres escribir scripts ni recordar la sintaxis de cron? Solo describe lo que quieres en lenguaje natural:

/cron add "every 2h" "Check if there are any new articles about AI regulation on Google News. If there are, summarize the top 3. If nothing new, respond with [SILENT]." --name "AI regulation watch" --deliver telegram

El agente se encarga del resto: buscar en la web, filtrar resultados y formatear la salida.


Conclusión

Estos cinco patrones cubren los escenarios de automatización más comunes: monitoreo, informes, vigilancia de repos, recolección de datos y trabajos simples de “solo pregunta”. Las conclusiones clave:

  1. Los scripts manejan el trabajo mecánico — obtener, comparar, recolectar
  2. Los agentes manejan el razonamiento — ¿es interesante? ¿qué cambió? ¿por qué importa?
  3. [SILENT] te mantiene libre de spam — solo recibes notificaciones cuando algo realmente importa
  4. Las indicaciones autónomas son innegociables — el agente comienza desde cero cada vez

Para la referencia completa de funciones, consulta la documentación de Tareas Programadas (Cron). ¡Feliz automatización!

📖 Documentación oficial

Este artículo se basa en la documentación oficial de Hermes Agent :Docs oficiales › guides/automate-with-cron