🤖HermesBlog
Hermes Official Tutorials · Часть 218/9/2026

С возвращением на вечеринку автоматизации

Tutorial 21: Scheduled Tasks (Cron) — easy-to-understand guide based on official docs

Hermes tutorial

С возвращением на вечеринку автоматизации

В уроке 20 мы создали бота для утренней сводки, который заглядывает к вам каждое утро. Мило, правда? Что ж, сегодня мы выходим на новый уровень. Система cron в Hermes умеет гораздо больше, чем просто говорить «доброе утро». Мы говорим о мониторинге сайтов, еженедельных дайджестах, отслеживании GitHub и даже конвейерах данных — всё это работает на автопилоте.

Самое приятное? Вам не нужно быть программистом, чтобы всё это настроить. Достаточно знать, что вы хотите автоматизировать, а Hermes возьмёт на себя всю тяжёлую работу.

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

Прежде чем мы нырнём в паттерны, есть одна концепция, которую вам absolutely нужно понять: cron-задачи запускаются в свежих сессиях агента. Это значит, что у агента ноль памяти о вашем текущем чате. Никаких «помнишь, о чём мы говорили вчера» — ничего такого.

Поэтому каждый промпт должен быть полностью самодостаточным. Включите всё, что агенту нужно знать: команды для запуска, источники для проверки, нужный формат. Распишите всё по полочкам.

Представьте, что вы пишете инструкции для очень умного стажёра, который только что вошёл в дверь. Вы бы не сказали «сделай то, о чём мы говорили». Вы бы сказали «вот что нужно сделать, шаг за шагом».

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

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

Фишка — в параметре --script. Python-скрипт запускается перед каждым выполнением, делает механическую работу (загрузку, сравнение), и его вывод становится контекстом для агента. Агент затем решает: это изменение интересно?

Вот скрипт, который делает всю тяжёлую работу:

# ~/.hermes/scripts/watch-site.py
import hashlib, json, os, urllib.request

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

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

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

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

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], Hermes знает, что не нужно вас беспокоить. Никакого спама в нерабочее время.

Паттерн 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

0 9 * * 1 — это стандартный синтаксис cron: минута 0, час 9, любой день месяца, любой месяц, понедельник (1). Легко, когда знаешь.

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

Следите за любым репозиторием, не обновляя страницу каждые пять минут.

/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? Это правило самодостаточности в действии. Агент не вспомнит, как вы делали это в прошлый раз — вам нужно говорить ему каждый раз.

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

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

Скрипт занимается сбором (никаких токенов LLM не тратится на загрузку), а агент занимается анализом. Скомбинируйте их для мощной системы обнаружения трендов.

Альтернативы без токенов

Не нужен LLM вообще? Два варианта:

  1. Cron-задачи только со скриптом: Если ваш скрипт уже выдаёт нужное сообщение (алерты о памяти, предупреждения о диске, heartbeat), пропустите агента полностью. Просто попросите Hermes настроить это — инструмент cronjob знает, когда использовать no_agent=True.

  2. Одноразовый запуск из работающего скрипта: Используйте hermes send, чтобы отправить stdout или файл прямо в Telegram, Discord или Slack. Идеально для шагов CI, post-commit хуков или деплой-скриптов.

Итоги

У вас есть паттерны. Теперь идите и автоматизируйте что-нибудь скучное. Ваше будущее «я» скажет спасибо.

Полную документацию по функциям смотрите в документации Scheduled Tasks (Cron). И помните: самодостаточные промпты, [SILENT] для тишины и скрипты для механической работы. В этом вся суть.

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

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