ホーム チュートリアル カテゴリ Skills サイトについて
ZH EN JA KO
上級テクニック

OpenClaw自動化ワークフロー構築完全チュートリアル

· 24 分で読了

はじめに

OpenClaw は単なるチャットボットではなく、自動化ワークフローの中核にもなり得ます。定時タスク、イベントトリガー、サードパーティ連携を通じて、日報のまとめ、コンテンツ監視、メッセージ転送などの作業を自動化できます。本記事では、さまざまな実用的な自動化ソリューションをご紹介します。

一、定時タスク(Cron 連携)

1.1 基本的な仕組み

cron で OpenClaw の API を定期的に呼び出し、AI タスクの定時実行を実現します:

# OpenClaw Gateway API でメッセージを送信
curl -X POST http://localhost:18789/api/v1/send \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "telegram",
    "chatId": "YOUR_CHAT_ID",
    "message": "本日の業務サマリーを生成してください"
  }'

1.2 毎朝のニュースブリーフ配信

毎朝8時にニュースサマリーを配信する定時タスクを作成します:

#!/bin/bash
# /usr/local/bin/openclaw-morning-brief.sh

API_URL="http://localhost:18789/api/v1/chat"
CHAT_ID="YOUR_TELEGRAM_CHAT_ID"

# OpenClaw にモーニングブリーフの生成を依頼
RESPONSE=$(curl -sf -X POST "$API_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "telegram",
    "chatId": "'"$CHAT_ID"'",
    "message": "今日の日付に基づいて、以下の内容を含むモーニングブリーフを生成してください:1. 今日はどんな日か 2. 天気のリマインド 3. To-Doの振り返り 4. 一言の名言",
    "systemPrompt": "あなたはプロフェッショナルなデイリーブリーフアシスタントです。簡潔で整理された回答を心がけ、絵文字を使って読みやすくしてください。"
  }')

echo "[$(date)] モーニングブリーフ送信完了: $RESPONSE" >> /var/log/openclaw-cron.log
# cron 定時タスクの設定
chmod +x /usr/local/bin/openclaw-morning-brief.sh
crontab -e
# 以下の行を追加(毎日朝 8:00 に実行)
# 0 8 * * * /usr/local/bin/openclaw-morning-brief.sh

1.3 定期システム巡回レポート

#!/bin/bash
# /usr/local/bin/openclaw-system-report.sh

# システム情報の収集
DISK_USAGE=$(df -h / | tail -1 | awk '{print $5}')
MEMORY_USAGE=$(free -m | awk 'NR==2{printf "%.1f%%", $3*100/$2}')
CPU_LOAD=$(uptime | awk -F'load average: ' '{print $2}')
OPENCLAW_STATUS=$(curl -sf http://localhost:18789/health | jq -r '.status')
UPTIME=$(uptime -p)

# レポート内容の構築
REPORT="サーバー巡回レポート:
- 稼働時間:$UPTIME
- CPU 負荷:$CPU_LOAD
- メモリ使用率:$MEMORY_USAGE
- ディスク使用率:$DISK_USAGE
- OpenClaw ステータス:$OPENCLAW_STATUS

上記のデータを分析し、異常な指標があれば最適化の提案をお願いします。"

# 管理者に送信
curl -sf -X POST http://localhost:18789/api/v1/send \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "telegram",
    "chatId": "ADMIN_CHAT_ID",
    "message": "'"$(echo "$REPORT" | sed 's/"/\\"/g')"'"
  }'
# 毎日 22:00 に巡回レポートを生成
# 0 22 * * * /usr/local/bin/openclaw-system-report.sh

二、イベントトリガー型ワークフロー

2.1 ファイル変更に基づくトリガー

特定のディレクトリを監視し、新しいファイルが追加されたら自動処理します:

#!/bin/bash
# /usr/local/bin/openclaw-file-watcher.sh
# inotifywait を使用してファイル変更を監視

WATCH_DIR="/home/user/incoming-docs"
API_URL="http://localhost:18789/api/v1/chat"

inotifywait -m -e create "$WATCH_DIR" --format '%f' | while read filename; do
    echo "[$(date)] 新規ファイル検出: $filename"

    # ファイル内容を読み取り(サイズ制限あり)
    CONTENT=$(head -c 5000 "$WATCH_DIR/$filename")

    # OpenClaw に処理を依頼
    curl -sf -X POST "$API_URL" \
      -H "Content-Type: application/json" \
      -d '{
        "channel": "telegram",
        "chatId": "ADMIN_CHAT_ID",
        "message": "新規ファイル '"$filename"' を受信しました。要点をまとめてください:\n\n'"$(echo "$CONTENT" | jq -Rs .)"'"
      }'
done

2.2 ログキーワードに基づくトリガー

システムログの異常を監視し、自動通知と分析を行います:

#!/bin/bash
# /usr/local/bin/openclaw-log-monitor.sh

LOG_FILE="/var/log/syslog"
KEYWORDS="error|critical|failure|out of memory"

tail -F "$LOG_FILE" | grep --line-buffered -iE "$KEYWORDS" | while read logline; do
    # アラートストーム防止:同一分内は最大1回のみ送信
    CURRENT_MINUTE=$(date +%Y%m%d%H%M)
    if [ "$CURRENT_MINUTE" != "$LAST_ALERT_MINUTE" ]; then
        curl -sf -X POST http://localhost:18789/api/v1/send \
          -H "Content-Type: application/json" \
          -d '{
            "channel": "telegram",
            "chatId": "ADMIN_CHAT_ID",
            "message": "⚠️ システムログ異常:\n'"$(echo "$logline" | head -c 500)"'\n\n考えられる原因と推奨対処法を分析してください。"
          }'
        LAST_ALERT_MINUTE="$CURRENT_MINUTE"
    fi
done

三、Webhook レシーバー

3.1 OpenClaw 内蔵 Webhook サポート

OpenClaw Gateway は外部 Webhook を受信し、対応するアクションをトリガーできます:

// ~/.config/openclaw/openclaw.json5
{
  "webhooks": {
    "enabled": true,
    "port": 18789,
    "endpoints": {
      "/webhook/github": {
        "secret": "your-webhook-secret",
        "action": "notify",
        "channel": "telegram",
        "chatId": "GROUP_CHAT_ID",
        "template": "GitHub イベント:{{event}} - {{payload.action}}"
      },
      "/webhook/custom": {
        "action": "process",
        "handler": "custom-webhook-skill"
      }
    }
  }
}

3.2 GitHub Webhook 連携

GitHub リポジトリで Webhook を設定すると、OpenClaw がプッシュ通知を受信できます:

# Webhook 受信のテスト
curl -X POST http://localhost:18789/webhook/github \
  -H "Content-Type: application/json" \
  -H "X-Hub-Signature-256: sha256=..." \
  -d '{
    "action": "opened",
    "pull_request": {
      "title": "Fix login bug",
      "body": "Fixes the timeout issue on login page",
      "user": {"login": "developer1"}
    }
  }'

3.3 カスタム Webhook スキル

Webhook を処理するスキルファイルを作成します:

<!-- ~/.openclaw/skills/webhook-handler.SKILL.md -->
# Webhook ハンドラー

外部 Webhook 通知を受信した場合、以下を行ってください:

1. Webhook の内容を解析する
2. 重要な情報を抽出する
3. 簡潔な日本語でまとめる
4. 緊急イベントの場合は「緊急」とマークする

## 対応する Webhook タイプ
- GitHub(PR、Issue、Push)
- 監視アラート(サーバーステータス)
- カスタムビジネスイベント

四、n8n 連携

n8n は強力なオープンソースワークフロー自動化ツールで、OpenClaw と深く連携できます。

4.1 n8n のインストール

# Docker で n8n をインストール
docker run -d \
  --name n8n \
  --restart=always \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  n8nio/n8n

4.2 n8n から OpenClaw を呼び出すワークフロー

n8n で HTTP Request ノードを使用して OpenClaw に接続します:

{
  "nodes": [
    {
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "parameters": {
        "rule": {
          "interval": [{"field": "hours", "hoursInterval": 1}]
        }
      }
    },
    {
      "name": "Call OpenClaw",
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "http://localhost:18789/api/v1/chat",
        "method": "POST",
        "body": {
          "message": "直近1時間のシステム状態を確認し、レポートを生成してください",
          "channel": "internal"
        }
      }
    },
    {
      "name": "Send to Slack",
      "type": "n8n-nodes-base.slack",
      "parameters": {
        "channel": "#ops-alerts",
        "text": "="
      }
    }
  ]
}

4.3 よくある n8n + OpenClaw ワークフロー

ワークフロー トリガー方式 説明
メール要約 新着メール受信時 AI でメールの要点をまとめて配信
RSS 監視 定期ポーリング RSS を監視し、新記事があればサマリーを生成
フォーム処理 Webhook フォーム送信を受信後、AI が分析して返信
データレポート 毎日定時 データベースをクエリして日報を生成
カスタマーサポート振り分け メッセージ受信時 AI が問題の種類を判断し、担当者に割り当て

五、Make (Integromat) 連携

Make はより直感的なビジュアルインターフェースでワークフローを構築できます。

5.1 OpenClaw API モジュールの作成

Make で HTTP モジュールを使用して OpenClaw に接続します:

トリガー(Schedule/Webhook)
    ↓
HTTP モジュール → POST http://your-server:18789/api/v1/chat
    ↓
レスポンスの解析(JSON Parse)
    ↓
結果の送信(Email/Slack/Telegram)

六、実用的なワークフロー例

6.1 自動日報サマリー

毎日午後6時に当日の全チャネルの会話を自動集計し、日報を生成します:

#!/bin/bash
# /usr/local/bin/openclaw-daily-summary.sh

# 当日の会話統計を取得
STATS=$(curl -sf http://localhost:18789/api/v1/stats/today)

# OpenClaw にサマリーの生成を依頼
curl -sf -X POST http://localhost:18789/api/v1/chat \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "telegram",
    "chatId": "ADMIN_CHAT_ID",
    "message": "以下の本日の統計データに基づいて日報サマリーを生成してください:\n\n'"$STATS"'\n\nフォーマット要件:1.全体概要 2.人気トピック 3.要注目事項",
    "systemPrompt": "あなたはプロフェッショナルなデータアナリストで、チャットデータから有価値なインサイトを抽出することが得意です。"
  }'

6.2 コンテンツ監視とアラート

特定のウェブサイトのコンテンツ変更を監視し、更新を検出したらユーザーに通知します:

#!/bin/bash
# /usr/local/bin/openclaw-content-monitor.sh

URLS=(
    "https://example.com/api/announcements"
    "https://status.anthropic.com/api/v2/summary.json"
)
CACHE_DIR="/tmp/openclaw-monitor"
mkdir -p "$CACHE_DIR"

for url in "${URLS[@]}"; do
    HASH_FILE="$CACHE_DIR/$(echo "$url" | md5sum | cut -d' ' -f1)"
    CURRENT_CONTENT=$(curl -sf "$url")
    CURRENT_HASH=$(echo "$CURRENT_CONTENT" | md5sum | cut -d' ' -f1)

    if [ -f "$HASH_FILE" ]; then
        OLD_HASH=$(cat "$HASH_FILE")
        if [ "$CURRENT_HASH" != "$OLD_HASH" ]; then
            echo "[$(date)] コンテンツ変更検出: $url"
            # OpenClaw に変更内容の分析を通知
            curl -sf -X POST http://localhost:18789/api/v1/send \
              -H "Content-Type: application/json" \
              -d '{
                "channel": "telegram",
                "chatId": "ADMIN_CHAT_ID",
                "message": "コンテンツの変更を検出しました:\nURL: '"$url"'\n\n新しい内容のサマリー:\n'"$(echo "$CURRENT_CONTENT" | head -c 2000)"'"
              }'
        fi
    fi

    echo "$CURRENT_HASH" > "$HASH_FILE"
done
# 30分ごとにチェック
# */30 * * * * /usr/local/bin/openclaw-content-monitor.sh

6.3 マルチチャネルメッセージ同期

あるチャネルの重要なメッセージを他のチャネルに自動転送します:

// ~/.config/openclaw/openclaw.json5
{
  "automation": {
    "messageForwarding": {
      "rules": [
        {
          "from": {"channel": "telegram", "chatId": "GROUP_A"},
          "to": [
            {"channel": "discord", "chatId": "CHANNEL_ID"},
            {"channel": "slack", "chatId": "#general"}
          ],
          "filter": {
            "keywords": ["お知らせ", "重要", "緊急"],
            "fromUsers": ["admin"]
          }
        }
      ]
    }
  }
}

七、ワークフローのデバッグテクニック

7.1 ログ調査

# 自動化関連のログを確認
openclaw logs | grep -i "automation\|webhook\|cron\|schedule"

# API 呼び出しのテスト
curl -v -X POST http://localhost:18789/api/v1/chat \
  -H "Content-Type: application/json" \
  -d '{"message":"test","channel":"internal"}'

7.2 よくある問題

問題 原因 解決策
Cron が実行されない パスまたは環境変数の問題 絶対パスを使用し、PATH を設定
Webhook が受信できない ファイアウォールまたはポート未開放 ファイアウォールルールを確認
API が 401 を返す 認証未設定 API Key を追加
レスポンスタイムアウト タスクの処理時間が長すぎる タイムアウト設定を延長

八、セキュリティに関する注意事項

  1. Webhook 署名検証:Webhook Secret を有効にし、偽造リクエストを防止
  2. API 認証:OpenClaw API に認証 Token を設定
  3. 入力フィルタリング:外部入力をサニタイズし、プロンプトインジェクションを防止
  4. 頻度制限:自動化タスクに適切な実行頻度を設定
  5. ログ監査:すべての自動化操作を記録し、事後レビューに備える

以上のソリューションにより、OpenClaw を強力な自動化ワークフローセンターに変え、業務効率を大幅に向上させることができます。

OpenClawは無料のオープンソースAIアシスタント。WhatsApp、Telegram、Discordなど多数のプラットフォームに対応