🤖HermesBlog
Hermes Feature Guides · Часть 178/9/2026

Прокачай свой крон: 5 паттернов автоматизации, которые можно применить уже сегодня

Cron Troubleshooting Guide — easy-to-understand guide based on official docs

guide-cron-troubleshooting

Прокачай свой крон: 5 паттернов автоматизации, которые можно применить уже сегодня

Итак, ты настроил свой первый cron-джоб с Hermes Agent и подсел. Но знаешь ли ты, что возможностей гораздо больше? Учебник по ежедневному боту-дайджесту — это только начало. Давай рассмотрим пять реальных паттернов автоматизации, которые сделают твою жизнь проще.

Золотое правило: самодостаточные промпты

Прежде чем мы начнём, вот самое важное, что нужно запомнить: cron-джобы запускаются в новых сессиях агента. У твоего агента нет никакой памяти о текущем чате. Поэтому каждый промпт должен быть полностью самодостаточным — включай всё, что нужно агенту: от контекста до точных команд.

Пропускай LLM, когда она не нужна

Не каждая автоматизация требует языковую модель. У тебя есть два варианта с нулевым расходом токенов:

  • Периодический сторожевой пёс: Если твой скрипт уже выдаёт готовое сообщение (например, алерты о памяти или heartbeat-сигналы), используй cron-джобы только со скриптом. Просто попроси Hermes в чате — инструмент cronjob сам знает, когда использовать no_agent=True, и напишет скрипт за тебя.
  • Разовый запуск из работающего скрипта: Для шагов CI или вебхуков деплоя используй hermes send, чтобы передать вывод напрямую в Telegram или Discord без настройки cron.

Паттерн 1: Мониторинг изменений на сайте

Хочешь знать, когда изменится страница с ценами или конкурент обновит свой сайт? Этот паттерн использует Python-скрипт для механической работы, а агент занимается анализом.

Сначала создай свой скрипт мониторинга:

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")

Теперь настрой 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

Про-совет: Трюк с [SILENT] — это золото. Когда ничего не изменилось, агент отвечает просто [SILENT], и cron-доставка воспринимает это как маркер тишины. Ты получаешь уведомления только когда что-то реально происходит — никакого спама в тихие часы.


Паттерн 2: Еженедельный отчёт

Собирай информацию из нескольких источников в форматированную сводку. Запускается каждый понедельник в 9 утра:

/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

Из 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

0 9 * * 1 — это стандартное cron-выражение: 9:00 утра каждый понедельник.


Паттерн 3: Наблюдатель за GitHub-репозиторием

Следи за любым репозиторием: новые issue, PR или релизы:

/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

Предупреждение: Заметил, как промпт включает точные команды gh? Это намеренно. У cron-агента нет истории переписки — расписывай всё до мелочей. (Постоянная память загружается, так что устойчивые предпочтения, сохранённые в MEMORY.md, переносятся, но не полагайся на это для критически важных деталей задачи.)


Паттерн 4: Конвейер сбора данных

Собирай данные через регулярные интервалы, сохраняй в файлы и отслеживай тренды со временем. Это сочетает скрипт для сбора с агентом для анализа:

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")

print(f"Collected prices at {entry['timestamp']}: BTC ${data['bitcoin']['usd']}, ETH ${data['ethereum']['usd']}")

Затем настрой cron-джоб, который запускает скрипт и просит агента проанализировать собранные данные на предмет трендов.


Паттерн 5: Сторожевой пёс только на скрипте

Для алертов, где скрипт уже выдаёт готовое сообщение, пропусти LLM полностью:

/cron add "every 5m" --script ~/.hermes/scripts/check-disk.py --no-agent --deliver slack

Инструмент cronjob автоматически выбирает no_agent=True, когда это имеет смысл, и пишет скрипт за тебя.


Готов к автоматизации?

Эти паттерны — только отправная точка. Комбинируй их: используй скрипты для механической работы, агентов — для анализа, а [SILENT] — чтобы держать уведомления чистыми. Полную справку по функциям смотри в документации Scheduled Tasks (Cron). Удачной автоматизации!

📖 Официальная документация

Эта статья основана на официальной документации Hermes Agent :Официальные документы › guides/automate-with-cron