投稿する
📚 OpenClaw基礎講座

第28回: モーニングブリーフィング — 毎朝の自動配信

※この動画はローカルに存在しません(配信元で削除/非公開)

この回はレクチャー動画はありません。テキストのみとなります。

この回で学ぶこと

  • モーニングブリーフィングの設定方法

  • 「1日1回だけ実行」を実現する方法

  • ブリーフィング内容のカスタマイズ


前回のおさらい

前回、HEARTBEAT.mdの仕組みと書き方を学び、通知先(target)と営業時間(activeHours)の設定方法を確認した。今回はこれを応用して、毎朝の「モーニングブリーフィング」を構築する。


モーニングブリーフィングとは

モーニングブリーフィングとは、毎朝決まった時間に秘書が自動で配信する情報パッケージのこと。朝起きてスマホを見るだけで、今日必要な情報がまとまっている状態を作る。

配信する情報の例:

  • 今日と明日の天気予報

  • ニュースヘッドライン3本(ジャンルを指定可能)

  • 今日のカレンダー予定(MEMORY.mdに書いてある予定)


「1日1回だけ」を実現する方法

ここで重要なことを先に伝える。前回の章で「1日1回だけ実行する」と書けば秘書がそのとおりにしてくれる、と思うかもしれない。しかし、Heartbeatには「今日もう実行したからスキップしよう」と判断する仕組みが内蔵されていない。

Heartbeatは30分ごとに動く。何も工夫しないと、朝の時間帯に何度もブリーフィングが送られてきてしまう。

これを防ぐ方法は2つある:

方法1: activeHoursの窓を狭くする(おすすめ)

openclaw.json の activeHours を30分幅にすると、Heartbeatがその時間帯に1回だけ動く。

{
  "agents": {
    "defaults": {
      "heartbeat": {
        "every": "30m",
        "target": "telegram",
        "activeHours": {
          "start": "07:00",
          "end": "07:30"
        }
      }
    }
  }
}

この設定なら、Heartbeatは7:00〜7:30の間に1回だけ動く。それ以外の時間はスキップされる。

ただし、この方法だとHeartbeat全体が朝しか動かなくなるので、「常時チェック」系のタスク(ディスク容量の監視など)は別途設定が必要になる。

方法2: Heartbeatではなくcron(クロン)を使う

実は、「毎朝7時ちょうどに1回だけ実行する」という用途には、Heartbeatよりもcronのほうが適している。

openclaw cron add --name "朝のブリーフィング" --cron "0 7 * * *" --tz "Asia/Tokyo" --message "天気予報・ニュースヘッドライン3本・今日の予定をまとめて簡潔に送って"

cronは「指定した時刻に、指定したメッセージを秘書に渡して実行させる」仕組み。Heartbeatとの違い:

  • Heartbeat — 30分ごとに繰り返しチェック。「監視・パトロール」向き

  • cron — 指定した時刻に1回だけ実行。「定時の仕事」向き

モーニングブリーフィングのような「毎朝1回の配信」はcron向き。「ディスク容量が90%超えたら警告」のような常時監視はHeartbeat向き。

この講座では方法1(activeHoursを狭める)で進める。 cronの詳細は公式ドキュメントに記載がある。


HEARTBEAT.mdの設定

前回作成したHEARTBEAT.mdを書き換える。

# Heartbeat タスク

## モーニングブリーフィング
- [ ] 以下の情報をまとめて簡潔な箇条書きで送信する:
  - 今日と明日の天気予報(地域: 東京)
  - ニュースヘッドライン3本(IT・ビジネス系)
  - 今日の予定(MEMORY.mdに書いてある予定を参照)

書き方のポイント:

  • 「地域: 東京」のように具体的な条件を書くと、秘書が迷わず実行できる

  • ニュースのジャンル指定も自然言語で書ける(「IT・ビジネス系」「スポーツ」「政治経済」など)

  • 「簡潔な箇条書き」のようにフォーマット指定もできる。秘書はこの指示に従って出力する

  • インデント(字下げ)して書いた箇条書きは、秘書が「上の項目の詳細」として解釈する

openclaw.jsonの設定(方法1の場合):

{
  "agents": {
    "defaults": {
      "heartbeat": {
        "every": "30m",
        "target": "telegram",
        "activeHours": {
          "start": "07:00",
          "end": "07:30"
        }
      }
    }
  }
}

設定を保存したら openclaw gateway restart で再起動する。HEARTBEAT.mdの内容だけを変更した場合は再起動不要(次のtickで自動反映される)。


ニュースや天気を取得するための前提条件

HEARTBEAT.mdに「ニュースを調べて」「天気予報を送って」と書くだけでは、秘書がその情報を取りに行けない場合がある。

秘書がウェブ検索を使えるかどうかは、ツールやスキルの設定状況に依存する。

  • ウェブ検索ツール(web_search)が有効 — OpenClawにはBrave Searchを使ったウェブ検索機能が組み込まれている。第6回で紹介したウェブ検索がそれ。有効になっていれば、天気もニュースも検索できる

  • 有効でない場合 — 秘書は「天気予報を調べたいのですが、ウェブ検索ツールが使えません」と返してくる

ウェブ検索が有効かどうかは、秘書に「ウェブ検索は使える?」と聞けば確認できる。


動作確認の方法

設定後すぐに動作を確認するには、CLIコマンドを使う:

openclaw heartbeat --dry-run
  • -dry-run は「実際にはチャネルに送信せず、結果だけ表示する」テストモード。ブリーフィングの内容が正しく生成されるか確認できる。

問題なければ、翌朝7時台にTelegramにブリーフィングが届く。

補足: Telegramで「今朝のブリーフィングを送って」と話しかけても、秘書は同じような情報をまとめて返してくれる。ただしこれはHeartbeatの自動実行ではなく、通常の会話として処理されている。自動配信のテストとは異なるので注意。


カスタマイズのヒント

モーニングブリーフィングの内容は自由にカスタマイズできる。HEARTBEAT.mdに追記・変更するだけ。

  • 株価情報を追加 → 「日経平均株価と為替(ドル円)を含める」

  • 英語ニュースを追加 → 「英語ニュースヘッドライン1本(BBC等)を含める」

  • 配信時間を変更 → openclaw.json の activeHours を変更(例: "start": "06:00", "end": "06:30")

  • 地域を変更 → 「地域: 東京」→「地域: 大阪」に変更

  • 曜日限定にする → 「平日のみ実行する」を追記(AIが曜日を判断してスキップする)

HEARTBEAT.mdは設定ファイルだが、自然言語で書けるため、プログラミングの知識がなくてもカスタマイズできる。


まとめ

  • Heartbeatには「1日1回だけ」を保証する仕組みがないため、activeHours を30分幅にするか、cronを使う

  • ニュース・天気の取得にはウェブ検索ツールが有効になっている必要がある

  • HEARTBEAT.mdの内容変更は再起動不要。openclaw.json の変更は再起動が必要

  • openclaw heartbeat --dry-run でテストできる

ゴール状態

  • モーニングブリーフィングが設定されている

  • 「1日1回だけ」を実現する方法を理解している

  • カスタマイズの方法を知っている

  • Heartbeat(監視向き)とcron(定時実行向き)の違いを理解している