投稿する
📚 OpenClaw基礎講座

第30回: 日報・週報の自動生成 — cronで定時レポートを作る

この回で学ぶこと

  • 日報の自動生成設定(cronを使う方法)

  • 週次サマリーの設定

  • レポートのフォーマット指定方法


前回のおさらい

前回、Googleカレンダーと連携し、予定の30分前にリマインドを自動送信する設定を行った。今回は別の自動化として、日報と週報の自動作成を設定する。


なぜ日報にはHeartbeatではなくcronを使うのか

第28回で学んだ通り、Heartbeatは「30分ごとの見回り」であり、特定の時刻に正確に動く仕組みではない。「毎晩22時に日報を送って」のような時刻指定のタスクは、cron(第19回で学んだタイマー予約)の出番になる。

おさらい:

  • Heartbeat: 30分ごとに巡回して異常を監視する「番犬」→ 予定リマインドや障害検知向き

  • cron: 決まった時刻に正確に実行する「目覚まし時計」→ 日報・週報のような定時タスク向き

日報を「毎日22時ちょうど」に生成したいなら、cronを使うのが正しい方法。


日報の自動生成

Part 4(第19回)で学んだ通り、秘書は1日を通してやりとりした内容を日次ノート(memory/YYYY-MM-DD.md)として記録している。この記録を毎晩22時に振り返らせて、日報を自動生成する。

設定方法:

ターミナルで以下のコマンドを実行する:

openclaw cron add \\\\
  --name "日報" \\\\
  --cron "0 22 * * *" \\\\
  --tz "Asia/Tokyo" \\\\
  --session isolated \\\\
  --message "今日の日次ノート(memory/今日の日付.md)を読み返して、以下の形式でTelegramに日報を送ってください。
■ 今日やったこと(箇条書き3〜5個)
■ 明日やること(カレンダーの予定やMEMORY.mdから抽出)
■ メモ(気になった発言やアイデアがあれば)" \\\\
  --announce \\\\
  --channel telegram

各オプションの意味:

  • -name "日報": ジョブの名前(あとで管理しやすいように)

  • -cron "0 22 * * *": 毎日22時00分に実行(cron式。第19回で学んだ書き方)

  • -tz "Asia/Tokyo": 日本時間で指定

  • -session isolated: メインの会話とは独立した環境で実行する(会話履歴を汚さない)

  • -message "...": 秘書への指示内容

  • -announce: 実行結果を通知する

  • -channel telegram: 通知先をTelegramに指定

日報の出力例:

【日報 2026-03-06】

■ 今日やったこと
- プレゼン資料の第1稿を完成
- クライアントとの打ち合わせ(議事録あり)
- 新機能のリサーチ(3つの候補を比較)

■ 明日やること
- プレゼン資料の最終レビュー
- 14:00 チームミーティング

■ メモ
- クライアントが「納期を1週間前倒しできないか」と言及。要確認。

秘書がその日の記録を要約して構造化してくれるため、自分で日報を書く時間がゼロになる。前回設定したGoogleカレンダー連携が有効であれば、明日の予定もカレンダーから自動で取得される。

日報の精度について(条件あり):

  • 日報の材料は memory/YYYY-MM-DD.md(日次ノート)。秘書との会話が多い日ほど記録が充実し、日報の精度が上がる

  • 秘書と一切会話しなかった日は、記録がないため日報の中身が薄くなる(カレンダーの予定だけになる等)

  • -session isolated を使っているため、メインの会話履歴は参照されない。日次ノートとMEMORY.mdが情報源になる

  • Googleカレンダー連携(第29回で設定)が有効であれば、「明日やること」にカレンダーの予定が自動で反映される


週次サマリーの設定

日報に加えて、週に1回のサマリーも自動生成できる。1週間分の日次ノートをまとめて、週の振り返りを作成する。

設定方法:

openclaw cron add \\\\
  --name "週次サマリー" \\\\
  --cron "0 20 * * 0" \\\\
  --tz "Asia/Tokyo" \\\\
  --session isolated \\\\
  --message "今週の日次ノート(memory/ディレクトリの今週分のファイル)を読み返して、以下の形式でTelegramに週次サマリーを送ってください。
■ 今週の成果(箇条書き5〜7個)
■ 来週の目標(箇条書き3〜5個)
■ 学びや気づき(あれば)" \\\\
  --announce \\\\
  --channel telegram

"0 20 * * 0" は「毎週日曜日の20時」を意味する。

週次サマリーは日次ノートの蓄積に基づくため、毎日秘書と会話しているほどサマリーの精度が上がる。1ヶ月分の週次サマリーが揃えば、月次レビューの材料としても使える。


レポートのフォーマット指定

日報・週報のフォーマットは、cronの --message に書く指示内容で自由にカスタマイズできる。

カスタマイズの例:

  • 箇条書きの数を変える: 「箇条書き3〜5個」→「箇条書き5〜10個」に変更

  • セクションを追加する: 「■ 課題・ボトルネック」セクションを追記

  • 送信先を変える: -channel telegram → -channel discord に変更

  • ファイル保存を追加する: 指示に「レポートを reports/YYYY-MM-DD.md にも保存する」を追記

文体やトーンの指定:

レポートの文体を指定する方法は2つある:

  1. cronの -message に直接書く: 「レポートは敬語で、簡潔に」と指示に含める。一番シンプルな方法

  2. SOUL.md(第12回で設定した人格ファイル)に書く: 「レポートは箇条書き中心で、1項目1行で完結させる」のようなスタイル指定をSOUL.mdに書いておけば、すべてのレポートに一貫して適用される

ただし条件がある:

  • cronで -session isolated を使っている場合、SOUL.mdは読み込まれる(ワークスペースのファイルは参照可能)

  • ただし lightContext: true を設定している場合、SOUL.mdが読み込まれないため、文体指定がcronの -message 内にしか効かなくなる

  • 特に設定を変えていなければ(デフォルト)、SOUL.mdは読み込まれるので気にしなくてOK


登録済みのcronジョブを確認・管理する

設定したcronジョブの一覧は以下で確認できる:

openclaw cron list

不要になったジョブの削除:

openclaw cron remove --name "日報"

一時的にジョブを止めたい場合:

openclaw cron disable --name "日報"

再開するとき:

openclaw cron enable --name "日報"

Heartbeatとcronの使い分け(まとめ)

ここまでPart 5〜6で両方の自動化を学んできたので、改めて整理する:

  • Heartbeat向きのタスク: 「異常がないか30分ごとにチェック」「カレンダーの予定が近づいたら通知」「ディスク容量が90%を超えたら警告」→ 常時監視・パトロール系

  • cron向きのタスク: 「毎朝7時にブリーフィング」「毎晩22時に日報」「毎週日曜に週報」→ 決まった時刻に1回だけ実行する系

迷ったときの判断基準: 「何時に動いてほしいか」が明確ならcron、「何かあったら教えて」ならHeartbeat。


ゴール状態

  • 日報のcronジョブが登録されている(openclaw cron list で確認できる)

  • 週次サマリーのcronジョブが登録されている

  • レポートのフォーマットをカスタマイズする方法を理解している

  • Heartbeatとcronの使い分けが説明できる