𝕏 f B! L
案件・求人数 12,345
案件を探す(準備中) エージェントを探す(準備中) お役立ち情報 ログイン
案件・求人数 12,345
OpenClawハートビート&Cron完全攻略|自動化の要

OpenClawハートビート&Cron完全攻略|自動化の要

OpenClawハートビートCron自動化
目次
⚡ 3秒でわかる!この記事のポイント
  • ハートビートは「バッチチェック型」、Cronは「正確なスケジュール型」で使い分ける
  • HEARTBEAT.mdとheartbeat-state.jsonで効率的な定期チェックを設計できる
  • GA4レポート・SNS投稿・セキュリティ監査など実践例5選を紹介

OpenClawを使ったAI自動化で最も重要なのが、定期タスクの設計です。OpenClawには「ハートビート」と「Cronジョブ」という2つの定期実行メカニズムがあり、それぞれに適した使い方があります。

この記事では、この2つのメカニズムの違いから実践的な活用例まで、OpenClawでの自動化を完全に使いこなすための知識を解説します。

この記事でわかること
  • ハートビートとCronの違いと使い分け
  • HEARTBEAT.mdの書き方とベストプラクティス
  • openclaw.jsonでのCronジョブ設定方法
  • 実践例5選(GA4レポート・SNS投稿・監査等)

ハートビートとCronの違い|使い分けの基本

OpenClawには定期実行のための2つのメカニズムがあります。

項目ハートビートCronジョブ
タイミング約30分間隔(ドリフトあり)正確なスケジュール
実行コンテキストメインセッション内独立セッション
会話履歴直近の会話を参照可能独立(参照不可)
設定場所HEARTBEAT.mdopenclaw.json
モデル指定メインセッションと同一個別に指定可能
用途バッチチェック、能動的なフォロー正確なタイミングのタスク

使い分けの原則:

  • 「だいたい30分ごとにチェックすればいい」→ ハートビート
  • 「毎朝8時ぴったりに実行してほしい」→ Cron

ハートビートの仕組みと設定方法

ハートビートは、OpenClawのゲートウェイが約30分間隔でエージェントに送信するポーリングメッセージです。エージェントは定義されたプロンプトを受け取り、チェックすべきことがあればタスクを実行、なければHEARTBEAT_OKを返します。

HEARTBEAT.mdの書き方

HEARTBEAT.mdはワークスペースのルートに配置するファイルで、ハートビートで何をチェックすべきかを定義します。

# HEARTBEAT.md

## チェック項目

### メール確認
- 未読の重要メールがあれば報告
- 最終チェック: heartbeat-state.json の lastChecks.email を参照

### カレンダー確認
- 2時間以内に予定があればリマインド
- 最終チェック: heartbeat-state.json の lastChecks.calendar を参照

### SNS通知
- Xのメンション・DMを確認
- 反応が必要なものがあれば報告

ポイント: チェック項目は具体的に書く。「適当にチェックして」ではなく「何を」「どう判断して」「何をするか」を明確にしましょう。

heartbeat-state.jsonでチェック管理

各チェック項目の最終実行時刻を管理するために、heartbeat-state.jsonを使用します。

{
  "lastChecks": {
    "email": 1741398000,
    "calendar": 1741396200,
    "twitter": 1741389000,
    "weather": null
  }
}

エージェントはこのファイルを参照して**「前回チェックから十分な時間が経過しているか」を判断**し、不必要な重複チェックを避けます。

効率的なバッチチェック設計

ハートビートのたびにすべてのチェックを実行すると、APIコストが膨らみます。以下のようなローテーション方式が効率的です:

  • 毎回チェック: メール(緊急性が高い)
  • 2回に1回: カレンダー(2時間前リマインドなら十分)
  • 4回に1回: SNS通知(即時性は不要)
  • 1日1回: 天気予報(変動が少ない)

Cronジョブの設定と運用

openclaw.jsonでのCron定義

Cronジョブはopenclaw.jsonのエージェント設定内で定義します。

{
  "agents": {
    "my-agent": {
      "cron": [
        {
          "id": "daily-report",
          "schedule": "0 8 * * *",
          "prompt": "GA4の日次レポートを作成し、Slackに投稿してください",
          "model": "anthropic/claude-sonnet-4-6",
          "thinking": "low"
        },
        {
          "id": "weekly-review",
          "schedule": "0 9 * * 1",
          "prompt": "先週のメモリファイルをレビューし、MEMORY.mdを更新してください"
        }
      ]
    }
  }
}

モデル・thinkingレベルの使い分け

Cronジョブはタスクごとにモデルとthinkingレベルを個別指定できます。コスト最適化のために以下のように使い分けましょう:

タスクおすすめモデルthinking
レポート生成Sonnetlow
データ分析Opusmedium
単純な通知Haikuoff
記事執筆Opushigh

チャネル配信設定

Cronジョブの結果を特定のチャネル(Slack、Telegram等)に配信する設定も可能です。

{
  "id": "morning-briefing",
  "schedule": "0 8 * * *",
  "prompt": "今日のブリーフィングを作成してください",
  "channel": "slack"
}

実践例5選

GA4日次レポート自動化

毎朝8時にGA4のデータを取得し、Slackに投稿するCronジョブの例です。

{
  "id": "ga4-daily-report",
  "schedule": "0 8 * * *",
  "prompt": "GA4 APIからses-base.comの昨日のデータを取得し、ユーザー数・PV・流入元・人気記事TOP10を含むレポートをSlackに投稿してください",
  "model": "anthropic/claude-sonnet-4-6"
}

メール・カレンダー定期チェック

HEARTBEAT.mdに組み込むパターンです。メールは毎回、カレンダーは2回に1回チェックします。

SNS投稿の自動スケジュール

予約投稿をCronジョブで管理する例です。

{
  "id": "twitter-post",
  "schedule": "0 12 * * 1-5",
  "prompt": "予定されたSNS投稿を確認し、X(Twitter)に投稿してください"
}

ブログ記事パイプライン

記事の企画→執筆→レビュー→公開を段階的にCronジョブで実行する例です。フェーズごとに異なるCronジョブを設定し、前のフェーズの出力を次のフェーズの入力として使います。

セキュリティ監査の定期実行

週1回のセキュリティチェックをCronジョブで自動化する例です。

{
  "id": "security-audit",
  "schedule": "0 3 * * 0",
  "prompt": "セキュリティ監査を実施してください:SSH設定・ファイアウォール・パッケージ更新状況・ログ異常を確認",
  "model": "anthropic/claude-sonnet-4-6"
}

ハートビートとCronの使い分けフローチャート

トラブルシューティング

Cronジョブが実行されない

  • openclaw gateway statusでゲートウェイが起動しているか確認
  • scheduleのcron式が正しいか検証(crontab.guruが便利)
  • ゲートウェイのログを確認:openclaw gateway logs

ハートビートが来ない

  • ゲートウェイの設定でheartbeatが有効になっているか確認
  • heartbeatIntervalMsの値を確認(デフォルトは30分=1800000ms)

APIコストが予想以上に高い

  • HEARTBEAT.mdのチェック項目をローテーション方式に変更
  • Cronジョブのモデルを見直し(不要にOpusを使っていないか)
  • thinkingレベルを下げる
💡 コスト最適化のコツ
  • ハートビートは「チェック」に使い、「実行」はCronに任せる
  • 単純なタスクにはHaikuやSonnetを指定する
  • thinkingは本当に必要なタスクだけmedium以上にする

まとめ|ハートビートとCronで24時間AI運用

OpenClawのハートビートとCronジョブを適切に使い分けることで、24時間365日のAI自動化が実現できます。

  • ハートビート: 柔軟なバッチチェック、会話文脈を活かした能動的なフォロー
  • Cron: 正確なタイミングでの定型タスク実行
  • 両者を組み合わせることで、コストを抑えつつ網羅的な自動化が可能

OpenClawの公式ドキュメントでさらに詳しい設定方法を確認できます。

関連記事:

この記事は役に立ちましたか?

SES案件をお探しですか?

SES記事をもっと読む →
🏗️

SES BASE 編集長

SES業界歴10年以上のメンバーが在籍する編集チーム。SES企業での営業・エンジニア経験、フリーランス独立経験を持つメンバーが、業界のリアルな情報をお届けします。

📊 業界データに基づく記事制作 🔍 IPA・経済産業省データ参照 💼 SES実務経験者が執筆・監修