𝕏 f B! L
案件・求人数 12,345
案件を探す(準備中) エージェントを探す(準備中) お役立ち情報 ログイン
案件・求人数 12,345
OpenClaw Lobsterワークフロー入門|自動化パイプライン構築

OpenClaw Lobsterワークフロー入門|自動化パイプライン構築

OpenClawLobsterワークフロー自動化パイプライン
目次
⚡ 3秒でわかる!この記事のポイント
  • LobsterはOpenClawの型付きワークフローエンジン
  • YAML/JSONで複雑な自動化パイプラインを定義可能
  • 承認チェックポイントで安全な自動化を実現

「cronジョブが増えすぎて管理しきれない」「複数ステップの自動化を安全に組みたい」——AIアシスタントの自動化が進むと、次に課題になるのがワークフローの管理です。

OpenClawのLobsterワークフローエンジンは、YAMLベースの型付きパイプラインでマルチステップの自動化を安全に実行できる機能です。結論:Lobsterを使えば、承認チェックポイント付きの複雑な自動化パイプラインを、コードを書かずに構築できます。

この記事でわかること
  • Lobsterワークフローエンジンの基本概念
  • ステップ・入出力・データフローの仕組み
  • YAML/JSONでのワークフロー定義方法
  • 実践例:メール→Slack→DB登録の自動化
  • 中断・再開・デバッグの方法

Lobsterワークフローエンジンとは?

Lobsterは、OpenClawに組み込まれたローカルファースト&型付きワークフローエンジンです。従来のcronジョブやスキル実行が「単発タスク」だったのに対し、Lobsterは複数のステップを連鎖させた自動化パイプラインを構築できます。

ローカルファースト&型付きパイプライン

Lobsterの設計哲学:

  • ローカルファースト: ワークフロー定義もデータもすべてローカルに保存。外部サービスに依存しない
  • 型付き: 各ステップの入出力にJSON Schemaで型を定義。実行前にバリデーション
  • 再現性: 同じ入力に対して同じ結果が返ることを保証
  • 監査可能: 全ステップの実行ログが自動保存

既存のcron・スキルとの違い

特性CronスキルLobster
スケジュール実行×
マルチステップ×
条件分岐××
承認チェックポイント××
データの受け渡し×◎(型付き)
エラーハンドリング

使い分けの指針:

  • 単発の定期タスク → cron
  • 対話的なツール操作 → スキル
  • 複数ステップの自動化パイプライン → Lobster

Lobsterの基本概念

ステップ・入出力・JSONデータフロー

Lobsterワークフローはステップ(Step)の連鎖で構成されます。各ステップには入力(input)と出力(output)があり、JSONデータとしてステップ間を流れます。

[Input] → [Step 1] → [Step 2] → [Step 3] → [Output]
              ↑            ↑           ↑
          入力スキーマ  前ステップの  条件分岐
                       出力を受取り

データフローの特徴:

  • 明示的なデータ受け渡し: 暗黙の状態に依存しない
  • JSON Schema検証: 各ステップの入出力を型チェック
  • 変換マッピング: ステップ間でデータの形状を変換可能

承認チェックポイントの仕組み

Lobsterの最も重要な安全機能が承認チェックポイントです。

steps:
  - name: draft_email
    action: generate_email
    output: email_draft
  
  - name: approve_email
    type: checkpoint
    message: "以下のメールを送信してよいですか?"
    show: "{{email_draft}}"
    timeout: 24h
  
  - name: send_email
    action: send_email
    input: "{{email_draft}}"

チェックポイントに到達すると、ワークフローは一時停止し、ユーザーに承認を求めます。承認されるまで次のステップには進みません。これにより、メール送信やデプロイなどの不可逆な操作を安全に自動化できます。

YAML/JSONでワークフローを定義する

基本テンプレートの書き方

# workflows/daily-report.yaml
name: daily-report
description: "日次レポートの自動生成・承認・送信"
version: "1.0"

trigger:
  cron: "0 9 * * 1-5"  # 平日9時に実行

input:
  type: object
  properties:
    date:
      type: string
      format: date

steps:
  - name: collect_data
    action: agent
    prompt: "{{date}}のGA4データとSlackアクティビティを収集して"
    output:
      type: object
      properties:
        ga4_data: { type: object }
        slack_summary: { type: string }
  
  - name: generate_report
    action: agent
    prompt: |
      以下のデータからレポートを作成して:
      GA4: {{collect_data.ga4_data}}
      Slack: {{collect_data.slack_summary}}
    output:
      type: object
      properties:
        report_text: { type: string }
  
  - name: send_report
    action: slack_send
    channel: "#daily-report"
    message: "{{generate_report.report_text}}"

output:
  report: "{{generate_report.report_text}}"
  sent_at: "{{send_report.timestamp}}"

条件分岐とエラーハンドリング

steps:
  - name: check_status
    action: http_get
    url: "https://api.example.com/status"
    output:
      type: object
      properties:
        status: { type: string }

  - name: handle_success
    condition: "{{check_status.status == 'ok'}}"
    action: agent
    prompt: "正常終了のレポートを作成"

  - name: handle_error
    condition: "{{check_status.status != 'ok'}}"
    action: slack_send
    channel: "#alerts"
    message: "⚠️ ステータス異常: {{check_status.status}}"

error:
  retry:
    maxAttempts: 3
    backoff: exponential
    initialDelay: 5s
  fallback:
    action: slack_send
    channel: "#alerts"
    message: "ワークフロー失敗: {{error.message}}"

実践例:メール→Slack→DB登録の自動化

具体的なユースケースとして、「特定のメールを受信→内容をSlackに通知→データベースに登録」というパイプラインを構築してみます。

name: email-to-db-pipeline
description: "問い合わせメール→Slack通知→DB登録"

trigger:
  event: email_received
  filter:
    subject_contains: "お問い合わせ"

steps:
  - name: parse_email
    action: agent
    prompt: |
      以下のメールから情報を構造化してJSON出力して:
      件名: {{trigger.subject}}
      本文: {{trigger.body}}
      送信者: {{trigger.from}}
    output:
      type: object
      properties:
        name: { type: string }
        company: { type: string }
        inquiry_type: { type: string }
        content: { type: string }

  - name: notify_slack
    action: slack_send
    channel: "#inquiries"
    message: |
      📩 新規問い合わせ
      ・氏名: {{parse_email.name}}
      ・会社: {{parse_email.company}}
      ・種別: {{parse_email.inquiry_type}}
      ・内容: {{parse_email.content}}

  - name: register_db
    action: http_post
    url: "https://api.example.com/inquiries"
    body: "{{parse_email}}"
Lobsterワークフローの実践例

中断・再開とデバッグ

ワークフローの一時停止と再開

# 実行中のワークフロー一覧
openclaw workflow list --running

# ワークフローの一時停止
openclaw workflow pause <workflow-id>

# ワークフローの再開
openclaw workflow resume <workflow-id>

# チェックポイントの承認
openclaw workflow approve <workflow-id> --step approve_email

ログとトラブルシューティング

# ワークフローの実行ログ
openclaw workflow logs <workflow-id>

# 特定ステップの詳細ログ
openclaw workflow logs <workflow-id> --step parse_email

# デバッグモードで再実行(ドライラン)
openclaw workflow run daily-report --dry-run --verbose

ドライランモードでは実際のアクション(メール送信、API呼び出し等)は実行されず、データフローの確認のみ行えます。

セキュリティとシークレット管理

Lobsterワークフローではシークレット(APIキー、パスワード等)を安全に管理できます。

# シークレットの参照
steps:
  - name: api_call
    action: http_post
    headers:
      Authorization: "Bearer {{secrets.API_KEY}}"
# シークレットの登録
openclaw secrets set API_KEY "sk-xxxxxxxxxxxx"

# シークレットの一覧(値は非表示)
openclaw secrets list

セキュリティのベストプラクティス:

  • ワークフロー定義ファイルにシークレットをハードコードしない
  • openclaw secretsコマンドで管理する
  • チェックポイントを適切に配置し、不可逆操作の前に人間の承認を挟む
  • ワークフローログにシークレットが出力されないことを確認する

OpenClaw Lobsterワークフローの構成図解

まとめ

OpenClawのLobsterワークフローエンジンは、複雑な自動化パイプラインを安全かつ管理しやすい形で構築できる強力なツールです。

  • YAMLで直感的にワークフローを定義
  • 型付きデータフローでステップ間の連携を安全に
  • 承認チェックポイントで不可逆操作を保護
  • 中断・再開・デバッグが容易
  • シークレット管理で機密情報を保護

cronジョブの管理に限界を感じている方、複数ステップの自動化を検討している方は、ぜひLobsterを試してみてください。

参考文献:

関連記事:

SES案件をお探しですか?

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

SES BASE 編集長

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

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