OpenClaw + n8n ワークフローオーケストレーション
AIエージェントにAPIキーを直接管理させ、外部サービスをcallさせることはセキュリティインシデントの处方です。新しい統合ごとに .env.local に別の資格情報が必要になり、エージェントが誤って漏洩または悪用する別の поверхностьが増えます。
このユースケースでは、OpenClawがすべての外部APIインタラクションをwebhook経由でn8nワークフローにdelegateするパターンを説明します — エージェントは資格情報に触れず、すべての統合は視覚的に検査可能でロック可能です。
課題点
OpenClawがすべてを直接処理するとき、3つの複合問題が発生します:
- 可視性の欠如: エージェントが実際に何を構築したかを検査することは、JavaScriptスキルファイルやシェルスクリプトに埋もれているときに難しい
- 資格情報の拡散: すべてのAPIキーがエージェントの環境にあり、悪いコミットで漏洩するリスクがある
- トークンの浪費: 決定論的なサブタスク(メール送信、スプレッドシート更新)は、シンプルなワークフローとして実行できるときにLLM推論トークンを消費する
できること
- プロキシパターン: OpenClawは着信webhookを持つn8nワークフローを作成し、将来すべてのAPIインタラクションのためにそれらのwebhookをcall
- 資格情報の分離: APIキーはn8nの資格情報ストアに存在します — エージェントはwebhook URLのみを知っています
- 視覚的なデバッグ: 各ワークフローはn8nのドラッグアンドドロップUIで検査可能です
- ロック可能なワークフロー: ワークフローが構築されてテストされたら、エージェントがAPIとの対話方法を変更できないようにロックします
- 保護ステップ: 外部callが実行される前に、n8nで検証、レート制限、承認ゲートを追加できます
動作方法
- エージェントがワークフローを設計: OpenClawに何を必要かを伝えます(例:「新しいGitHub issueに
urgentラベルが付けられたときにSlackメッセージを送信するワークフローを作成」) - エージェントがn8nで構築: OpenClawは着信webhookトリガーを含むn8nのAPI経由でワークフローを作成
- あなたが資格情報を追加: n8nのUIを開き、手動でSlackトークン/GitHubトークンを追加
- ワークフローをロック: エージェントによるさらなる変更を防止
- エージェントがwebhookをcall: 以後、OpenClawはJSONペイロードで
http://n8n:5678/webhook/my-workflowをcall — APIキーは見ません
┌──────────────┐ webhook call ┌─────────────────┐ API call ┌──────────────┐
│ OpenClaw │ ───────────────────→ │ n8n Workflow │ ─────────────→ │ External │
│ (agent) │ (no credentials) │ (locked, with │ (credentials │ Service │
│ │ │ API keys) │ stay here) │ (Slack, etc)│
└──────────────┘ └─────────────────┘ └──────────────┘必要なスキル
n8nAPIアクセス(ワークフロー作成/トリガー用)- webhook call用の
fetchまたはcurl - Docker(事前構成されたスタックを使用する場合)
- n8n資格情報管理(手動、統合ごとに一回限りのセットアップ)
セットアップ方法
オプション1:事前構成されたDockerスタック
コミュニティでメンテナンスされているDocker Composeセットアップ(openclaw-n8n-stack)は共有Dockerネットワークですべてを事前配線します:
bash
git clone https://github.com/caprihan/openclaw-n8n-stack.git
cd openclaw-n8n-stack
cp .env.template .env
# Add your Anthropic API key to .env
docker-compose up -dこれにより以下が得られます:
- ポート3456のOpenClaw
- ポート5678のn8n
- OpenClawが直接
http://n8n:5678/webhook/...をcallできる共有Dockerネットワーク - 事前構築されたワークフローテンプレート(マルチLLMファクトチェック、メールトリアージ、ソーシャルモニタリング)
オプション2:手動セットアップ
- n8nをインストール(
npm install n8n -gまたはDocker経由で実行) - OpenClawがn8nのベースURLを知るように構成
- AGENTS.mdに追加:
text
## n8n 統合パターン
外部APIと対話する必要があるとき:
1. APIキーを私の環境やスキルファイルに保存しないでください
2. この統合用のn8nワークフローが既に存在するかどうかを確認
3. なければ、webhookトリガーを含むn8n API経由で作成
4. ユーザーが資格情報を追加し、ワークフローをロックすることを通知
5. 将来すべてのcallには、JSONペイロードでwebhook URLを使用
ワークフロー命名:openclaw-{service}-{action}
例:openclaw-slack-send-message
Webhook call形式:
curl -X POST http://n8n:5678/webhook/{workflow-name} \
-H "Content-Type: application/json" \
-d '{"channel": "#general", "message": "Hello from OpenClaw"}'重要な洞察
- 一石三鳥: 可視性(視覚的UI)、セキュリティ(資格情報の分離)、パフォーマンス(決定論的なサブタスクはトークンを消費しない)
- テスト後にロック: 「構築 → テスト → ロック」サイクルは重要です — ロックなしでは、エージェントはワークフローを静かに変更できます
- n8nは400以上の統合を持つ: 接続したいほとんどの外部サービスには既にn8nノードがあり、エージェントがカスタムAPIコールを書くことを節約
- 無料での監査証跡: n8nは入力/出力データで各ワークフロー実行をログ
触発されたもの
このパターンはSimon Høibergによって説明されました。彼は、OpenClawがAPIインタラクションを直接処理させることを打ち負かす3つの理由を概説しました:n8nの視覚的UIを通じた可視性、資格情報の分離によるセキュリティ、決定論的なサブタスクをLLM callではなくワークフローとして実行することによるパフォーマンス。openclaw-n8n-stackリポジトリはこのパターンを実装する実行可能なDocker Composeセットアップを提供します。