OpenClawをまだインストールしていませんか?ワンラインインストールコマンドはこちら
curl -fsSL https://openclaw.ai/install.sh | bashiwr -useb https://openclaw.ai/install.ps1 | iexcurl -fsSL https://openclaw.ai/install.cmd -o install.cmd && install.cmd && del install.cmd- OpenClawのCron機能により、時間トリガー型のAIタスクを設定可能。人手不要で、エージェントが指定時刻に自動実行し、通信チャンネル経由で結果を報告[1]
- 従来のLinux crontabとは異なり、OpenClawのCronタスクは自然言語で定義され、AIエージェントが固定Shellスクリプトではなく動的に実行ステップを判断[6]
- Cronタスクにおける最大の落とし穴はGatewayタイムアウト。タスクの実行時間がGatewayの接続タイムアウト設定を超えると、タスクが強制終了される[2]
- Telegramなどの通信チャンネルと組み合わせることで、Cronタスクの結果がリアルタイムでスマートフォンにプッシュされ、「一度設定すれば長期的に恩恵を受ける」自動化ワークフローを実現[3]
I. OpenClawのCronとは?
Linuxのcrontabをご存知であれば、OpenClawのCronは概念的に類似しています。指定した時刻にタスクを自動実行するものです。[6]しかし重要な違いがあります。従来のcrontabは固定のShellコマンドを実行しますが、OpenClawのCronは自然言語の指示を実行し、AIエージェントが自律的にその達成方法を判断します。
例えば:
- 従来のcrontab:
0 9 * * * /usr/bin/python3 /home/user/check_server.py | mail -s "Server Report" [email protected] - OpenClaw Cron:
「毎日午前9時にサーバーの状態を確認し、Telegramにまとめを送信」
後者ではスクリプトを事前に書く必要がありません。エージェントがどのチェックコマンドを実行するか、結果をどう整理するか、レポートをどうフォーマットするかを自ら判断します。[5]
II. 最初のCronタスクの作成
2.1 基本構文
CLIでCronタスクを作成します:[1]
openclaw cron add --schedule "0 9 * * *" --message "サーバーのCPUとメモリ使用率を確認。いずれかの指標が80%を超えた場合、異常項目をレポートにまとめて報告"
スケジュール構文は標準的なcron形式に準拠しています:分 時 日 月 曜日。
2.2 よく使うスケジュール例
| スケジュール | 構文 | 説明 |
|---|---|---|
| 毎日午前9時 | 0 9 * * * | 日次レポート、チェック |
| 毎正時 | 0 * * * * | 高頻度モニタリング |
| 毎週月曜午前8時 | 0 8 * * 1 | 週次レポート |
| 毎月1日正午 | 0 12 1 * * | 月次レポート |
| 30分ごと | */30 * * * * | 集中監視 |
2.3 既存タスクの管理
# すべてのCronタスクを一覧表示
openclaw cron list
# 特定のタスクを削除
openclaw cron rm TASK_ID
# 一時停止(設定を保持するがトリガーしない)
openclaw cron disable TASK_ID
# 再開
openclaw cron enable TASK_ID
III. Telegramとの組み合わせによるリアルタイム通知
Cronタスクの実行結果はデフォルトで設定済みの通信チャンネルに送信されます。既にTelegram連携を完了している場合、結果はTelegramの会話に直接プッシュされます。[3]
3.1 典型的なシナリオ:毎日のニュースブリーフィング
openclaw cron add \
--schedule "0 8 * * *" \
--message "過去24時間のAI関連の主要ニュースを検索し、5項目のまとめを作成。各項目50文字以内"
毎朝8時に、TelegramにAI業界のデイリーブリーフィングが届きます。
3.2 典型的なシナリオ:ウェブサイト可用性監視
openclaw cron add \
--schedule "*/30 * * * *" \
--message "https://example.com が正常に稼働しているか確認。応答時間が3秒を超えるか、ステータスコードが200でない場合は即座に通知"
30分ごとに自動チェックし、異常が発生した場合のみ通知。不要な「すべて正常です」メッセージの洪水を防止します。
IV. Gatewayタイムアウト:最も多い落とし穴
これはCronタスクで最も頻繁に遭遇する罠です。[2]
4.1 問題の説明
Gatewayには接続タイムアウト設定(timeoutSeconds)があります。Cronタスクの実行時間がこの値を超えると、Gatewayが接続を強制切断し、タスクが途中で打ち切られます。エージェントが作業の80%を完了していても、タイムアウトにより結果を返せない可能性があります。
4.2 解決方法
# 現在のタイムアウト設定を確認
openclaw config get agents.defaults.timeoutSeconds
# 最も長いタスクの想定実行時間に基づいて調整(秒単位)
openclaw config set agents.defaults.timeoutSeconds 900
目安:タイムアウトは最長タスクの想定実行時間の1.5倍に設定します。例えば、レポートタスクが通常5分かかる場合、タイムアウトを450秒(7.5分)に設定します。
4.3 長時間タスクの代替策
15分以上かかる可能性のあるタスクについては、複数の短いタスクに分割することを推奨します:
# すべてを一度に実行する代わりに
X "過去1年間のすべての売上データを分析し、完全なレポートを生成"
# 複数のステップに分割
V "過去1年間の売上データをダウンロードしCSVとして保存" -> Cron 1
V "昨日生成されたCSVを分析し、サマリーレポートを作成" -> Cron 2(10分遅延)
V. エラー処理とリカバリー
5.1 タスク失敗時の挙動
Cronタスクが失敗した場合(対象サーバーがオフライン、APIがエラーを返すなど)、エージェントは以下の動作を行います:
- 通信チャンネル経由で失敗の原因を通知
- エラーをGatewayログに記録(
openclaw logs --followで確認可能) - 次のスケジュール時刻に正常に再トリガー
Cronタスクは一度の失敗では停止しません。スケジュールに従って実行を継続します。
5.2 タスクの重複を防ぐ
前回の実行がまだ完了していない場合、Gatewayは新しいスケジュールトリガーをスキップし、同じタスクが重複実行されることを防ぎます。この動作はGatewayのタスクキューによって自動管理されます。[2]
VI. ベストプラクティス
- まず手動でテストし、その後Cronに設定:CLIでタスクコマンドを一度手動実行し、エージェントの動作が期待通りであることを確認してから、同じコマンドをCronに変換
- 指示は具体的に:「サーバーの状態を確認」は曖昧すぎます。「CPU、メモリ、ディスク使用率を確認し、いずれかが80%を超えたら報告」の方が効果的
- 適切な頻度を設定:各CronトリガーはLLMトークンを消費します。毎分トリガーすると、大きなAPIコストが発生する可能性があります
- 条件付き通知を活用:「異常が発生した場合のみ通知」を指示に追加し、「すべて正常」メッセージの洪水を回避
- Gatewayの安定性を監視:CronはGatewayの継続的な稼働に依存します。
systemdやDockerを使用して、クラッシュ後のGateway自動再起動を確保
まとめ
CronはOpenClawを「受動的なツール」から「能動的なアシスタント」へ変貌させる鍵となる機能です。[1]一度設定すれば、エージェントが指定時刻にタスクを自動実行し結果を報告します。何を確認すべきか覚えておく必要も、ターミナルを開く必要も、PCの前にいる必要もありません。
Cronの利用を開始するには、まずOpenClawの基本デプロイを完了し、少なくとも1つの通信チャンネルを設定してください。Cronタスクで問題が発生した場合は、「トラブルシューティングガイド」を参照して原因を素早く特定できます。



