- 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}}"
中断・再開とデバッグ
ワークフローの一時停止と再開
# 実行中のワークフロー一覧
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ワークフローエンジンは、複雑な自動化パイプラインを安全かつ管理しやすい形で構築できる強力なツールです。
- YAMLで直感的にワークフローを定義
- 型付きデータフローでステップ間の連携を安全に
- 承認チェックポイントで不可逆操作を保護
- 中断・再開・デバッグが容易
- シークレット管理で機密情報を保護
cronジョブの管理に限界を感じている方、複数ステップの自動化を検討している方は、ぜひLobsterを試してみてください。
参考文献:
関連記事: