🤖HermesBlog
Hermes Official Tutorials · パート 218/9/2026

自动化パーティーへようこそ、再び

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

Hermes tutorial

自动化パーティーへようこそ、再び

チュートリアル20では、毎朝チェックインしてくれるデイリーブリーフィングボットを作りましたね。かわいいでしょ? さて、今日はさらにレベルアップしましょう。Hermesのcronシステムは、「おはよう」と言うだけのものじゃありません。ウェブサイト監視、週次ダイジェスト、GitHubモニター、さらにはデータパイプラインまで——すべて自動運転で動かせます。

一番の魅力は? プログラマーである必要すらないんです。何を自動化したいかさえ分かっていれば、Hermesが重い作業は全部やってくれます。

黄金のルール:自己完結型プロンプト

パターンに入る前に、絶対に理解しておくべき概念が一つあります: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リポジトリウォッチャー

5分ごとにページをリロードすることなく、どんなリポジトリも監視できます。

/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がまったく必要ない場合? 2つの選択肢があります:

  1. スクリプトのみのcronジョブ:スクリプトがすでに正確なメッセージを生成している場合(メモリ警告、ディスク警告、ハートビートなど)、エージェントは完全にスキップしてください。Hermesに設定を依頼するだけです——cronjobツールはno_agent=Trueをいつ使うか知っています。

  2. 実行中スクリプトからのワンショットhermes sendを使って、stdoutやファイルをTelegram、Discord、Slackに直接パイプします。CIステップ、コミット後フック、デプロイスクリプトに最適です。

まとめ

パターンは揃いました。さあ、退屈なことを自動化しに行きましょう。未来の自分が感謝すること間違いなしです。

全機能リファレンスは、スケジュールタスク(Cron)ドキュメントをご覧ください。そして覚えておいてください:自己完結型プロンプト、静寂のための[SILENT]、機械的な作業のためのスクリプト。これがすべてです。

📖 公式ドキュメント

この記事は Hermes Agent の公式ドキュメントに基づいています:公式ドキュメント › guides/automate-with-cron