>> 2026 OpenClaw を頭脳に Dify ワークフロー連携:SlimVps クラウド Mac mini M4 16GB/256GB 上級統合ガイド
OpenClaw を「脳」に、Dify ワークフローを呼び出す構成では、意図・記憶・チャネルをエージェントゲートウェイに置き、多ノードのグラフは Dify で実行します。レンタル Mac mini M4 上でのOpenClaw と Dify ワークフロー統合の実践的な進め方です。
はじめに
OpenClaw を「脳」にするとは、エージェントゲートウェイが意図、記憶、チャネル、ツールルーティングを保持し、Dify が単一プロンプト内で再実装するのが難しい多ノードのワークフロー(RAG 取得、分岐、コードノード、人間レビューなど)を実行する、という意味です。
OpenClaw と Dify ワークフロー統合では、ユーザーは Telegram、Slack、Webhook 経由で OpenClaw と会話します。OpenClaw が Dify をいつ呼ぶかを決め、Dify が重いグラフを実行し、OpenClaw が JSON 結果を解釈して自然言語で返します。
SlimVps Mac mini M4(16GB/256GB ベースライン)は OpenClaw の運用ホストとして堅実です。macOS のツールチェーン、SSH 優先の運用、そして Dify を同一リージョンに置く場合の APAC 近接ノード(香港、東京ノード、ソウル、シンガポール)を活かせます。Dify を配線する前に OpenClaw の軽量デプロイ を完了してください。ゲートウェイが安定していれば、HTTP ツールの失敗とチャネル起因の問題を切り分けやすくなります。
本稿は上級者向けです。ゲートウェイのチャネルとレート制限を理解済みであり、Dify 内の上流 LLM 失敗時に ホストモデルの HTTP リカバリ を参照できることを前提とします。
OpenClaw と Dify を分ける理由
| レイヤー | 担当 | 担当しないこと |
|---|---|---|
| OpenClaw(脳) | ユーザーセッション、チャネル認証、ツール選択、要約、エスカレーション | ビジュアルなワークフロー編集、ナレッジのチャンク化パイプライン、Dify 内のノード単位リトライ |
| Dify(ワークフローエンジン) | DAG 実行、データセット取得、構造化出力 | 無関係なチャネル間で長期にわたる会話ペルソナ(設計しない限り) |
具体的な利点:Dify のワークフローは内部 API を三つ呼び、分類器を走らせ、JSON スキーマを返せます。OpenClaw 側は run_ops_workflow という HTTP ツール一つで足り、壊れやすいプロンプト指示を六本並べる必要はありません。
Apple Mac mini M4 の仕様によれば、16GB のユニファイドメモリは OpenClaw、ローカルの Dify Docker スタック、macOS 本体で共有されます。下表の RAM 見積もりに合わせて計画してください。
アーキテクチャとデータフロー
コンポーネント
| コンポーネント | 典型的なパス/ポート | 役割 |
|---|---|---|
| OpenClaw ゲートウェイ | 127.0.0.1:11430(例) | 脳:メッセージ受信とツール呼び出し |
| Dify API | https://api.dify.ai/v1(クラウド)または http://127.0.0.1:5001/v1(セルフホスト) | 公開済みワークフローを実行 |
| シークレット | ~/.openclaw/secrets/ または launchd による環境変数注入 | API キーを git に置かない |
| トランスクリプト | ~/.openclaw/transcripts/ | 監査用の証跡。チャネル量に比例して増加 |
リクエストのライフサイクル
- ユーザーが送信します。「チケット #8842 を要約し、返金メモの草案を作成して。」
- OpenClaw のプランナーがツール
dify_refund_workflowを選択します。 - Dify のワークフロー実行エンドポイントへ
inputsJSON とresponse_mode: blockingを付けて HTTP POST します(チャネルが部分応答を扱えるならストリーミングも可)。 - Dify が取得+LLM ノードを実行し、
outputsオブジェクトを返します。 - OpenClaw が
outputs.summaryとoutputs.draftをチャネル返信に写し、トランスクリプト断片を保存します。
セキュリティの既定:セキュリティとネットワーク に従い、OpenClaw を 127.0.0.1 にバインドします。Dify にはプライベートホスト名の TLS または同一ホストのループバックで到達してください。レンタル Mac 上で Dify の管理 UI を 0.0.0.0 に公開しないでください。
公式資料:Dify API ドキュメント と OpenClaw プロジェクト。
Mac mini M4 上のデプロイトポロジー
| トポロジー | 16GB 上の RAM | 向いている用途 |
|---|---|---|
| A — Mac 上の OpenClaw と Dify クラウド | OpenClaw+OS で約 6〜8GB の余裕 | 上級構成の立ち上げが最速。Dify SaaS へのアウトバウンド |
| B — 同一レンタル Mac 上の両方(Docker Dify) | タイト。Dify はしばしば 4〜8GB 超 | データレジデンシー。npm/HF キャッシュのミラーリング |
| C — Mac 上の OpenClaw と第二ホスト上の Dify | Mac 側に余裕 | 本番:ワークフロー CPU スパイクを分離 |
推奨:まずトポロジー Aで 7 日間運用し、契約上すべてのペイロードを SlimVps ホストに残す必要がある場合のみ B へ移行します。~/.openclaw/ と Docker ボリュームのディスクは メモリとディスクの予算 に沿って追跡してください。
Dify のセルフホストが混雑した越境回線でモデルやデータセットを取得する場合は、Dify を香港/シンガポールに置き、OpenClaw を同じ都市圏に保ちます。ブロッキングのワークフロー呼び出しでは、生の CPU より RTT が効きます。
ワークフロールーティング表(脳の方針)
OpenClaw はすべてのメッセージで Dify を呼ぶべきではありません。プランナーが参照できるルーティング表を定義します。
| ユーザー意図のパターン | ツール | Dify ワークフロー ID | タイムアウト |
|---|---|---|---|
| 返金/請求 | dify_refund | wf_refund_v3 | 120s |
| オンコール手順書 | dify_ops | wf_ops_rag | 90s |
| 雑談 | (なし) | — | — |
| コード実行 | ネイティブのシェルツール | — | 30s |
ワークフロー ID はプロンプトではなく設定に保存します。Dify が v4 を公開したら、一つのファイルで ID をローテーションします。
7 ステップのランブック
ステップ 1 — OpenClaw ゲートウェイのベースライン
ssh user@your-slimvps-mac
openclaw --version # expect 2026-era build
curl -s http://127.0.0.1:11430/health
合格基準:HTTP 200、launchd plist が読み込まれていること、ブートボリュームに≥25GBの空きがあること。
ステップ 2 — Dify ワークフローを公開する
Dify Studio で:
- 明示的な入力変数(
ticket_id、locale)を備えたワークフローを構築します。 - 出力変数(
summary、draft、confidence)を追加します。 - 公開し、API キーとワークフロー ID(または Dify バージョンに応じたアプリ ID)をコピーします。
Mac からのテスト:
export DIFY_API_KEY="app-xxxxxxxx"
curl -s -X POST "https://api.dify.ai/v1/workflows/run" \
-H "Authorization: Bearer $DIFY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"inputs":{"ticket_id":"8842"},"response_mode":"blocking","user":"openclaw-smoke"}'
合格基準:SlimVps リージョンから<30sで data.outputs が埋まった JSON が返ること。
ステップ 3 — OpenClaw HTTP ツールを登録する
ツール定義を追加します(OpenClaw のビルドによりファイルは異なりますが、多くの場合 ~/.openclaw/config/tools/ 配下です)。
{
"name": "dify_refund",
"description": "ユーザーが返金、チャージバック、チケットIDに言及したときに返金ワークフローを実行します",
"method": "POST",
"url": "https://api.dify.ai/v1/workflows/run",
"headers": {
"Authorization": "Bearer ${DIFY_API_KEY}",
"Content-Type": "application/json"
},
"body_template": {
"inputs": { "ticket_id": "{{ticket_id}}" },
"response_mode": "blocking",
"user": "openclaw-{{session_id}}"
}
}
${DIFY_API_KEY} は plist 本体ではなく、launchd の EnvironmentVariables から注入します。
ステップ 4 — ツール出力をチャネル文面に写す
エージェント指示を設定します。
confidence < 0.7の場合は草案を送らず、確認質問をします。- Telegram では
draftを 4000 文字に切り詰めます。
チャネルを有効化する前に、OpenClaw CLI から手動のツール呼び出しを一度実行します。
ステップ 5 — ひとつのチャネルを有効化する
ゲートウェイのチャネルに従い、一つの面だけを有効化し、テストメッセージを五通送って挨拶で Dify が呼ばれないことを確認します。
ステップ 6 — 可観測性
呼び出しごとにログへ記録します。
| フィールド | 例 |
|---|---|
workflow_id | wf_refund_v3 |
latency_ms | 8420 |
http_status | 200 |
openclaw_session | tg-12844 |
256GB ホストではログを週次でローテーションします。
ステップ 7 — 本番向けの堅牢化
- べき等性:安定した
userid を渡し、Telegram の再試行で返金草案が重複しないようにします。 - トポロジー B の 16GB では、同時の Dify 呼び出しを2に上限します。
- Dify が 5xx のときは「ワークフローはオフラインです」と返し、人へエスカレーションします。HTTP リカバリのマトリクスを参照してください。
RAM とタイムアウトの予算
| シグナル | しきい値 | 対応 |
|---|---|---|
| OpenClaw RSS + Dify Docker > 12GB | 持続的 | Dify をマシン外へ移す(トポロジー C) |
| ワークフロー遅延 p95 > 120s | 24 時間窓 | ワークフローを分割するか非同期 Webhook にする |
| ディスク空き < 25GB | 即時 | トランスクリプトを整理し、Docker ログを圧縮する |
タイムアウトの段階:スモーク 30s、RAG 運用 90s、返金/法務グラフ 120s。OpenClaw のツールタイムアウトは ≥ Dify 内部タイムアウト + 5s にしないと偽陽性の失敗が出ます。
トラブルシューティング
エラー A — Dify からの 401 Unauthorized
兆候:OpenClaw のツールログに即座に 401 が出ます。
修正:
# Verify key on the Mac (same env launchd uses)
launchctl print system/com.slimvps.openclaw-gateway | grep -i DIFY
curl -s -o /dev/null -w "%{http_code}" -H "Authorization: Bearer $DIFY_API_KEY" \
https://api.dify.ai/v1/workflows/run
Dify Studio でアプリキーをローテーションし、launchd の環境を更新し、launchctl kickstart -k system/com.slimvps.openclaw-gateway を実行します。
エラー B — Dify は実行中だがツールがタイムアウト
兆候:OpenClaw はツール失敗を報告する一方、Dify の実行履歴は 40 秒後に成功を示します。
修正:そのワークフロー向けに OpenClaw のツールタイムアウトを130sへ引き上げるか、Dify を非同期モードに切り替え、ポーリング用のサブワークフローを用意します。16GB ホストでは、1 ターンに 120s グラフを二つ直列にしないでください。
エラー C — スキーマ不一致(outputs が空)
兆候:HTTP 200 だがエージェントは「データがありません」と言います。
修正:Dify の出力変数名と OpenClaw の写し込み(summary と text など)を揃えます。ワークフローを再公開し、ルーティング表の wf_*_v4 を更新します。
7 日間の検証ゲート
| 日 | タスク | 合格 |
|---|---|---|
| 1 | Mac からの Dify curl スモーク | 香港/シンガポール ノードから RTT <30s |
| 2 | OpenClaw のツールのみのテスト | ルーティング 5/5 が正しい |
| 3 | 1 チャネルで 20 メッセージ | 意図しない Dify 呼び出しがない |
| 4 | 負荷試験:並列返金 10 件 | p95 <120s、スワップなし |
| 5 | シークレットのローテーション演習 | ダウンタイム <5 分 |
| 6 | トランスクリプトのディスク確認 | 空き ≥25GB |
| 7 | ランブックの引き継ぎ文書 | 第二オペレーターが再現できる |
まとめ
OpenClaw と Dify ワークフロー統合は、OpenClaw が脳(方針、チャネル、記憶)であり、Dify が筋肉(多段グラフ)である限りうまく機能します。SlimVps の Mac mini M4 では、Dify クラウドと localhost ゲートウェイから始め、ルーティング表とタイムアウト段階を徹底し、RAM の水位が逼迫したときだけトポロジーを拡張します。
月次契約の前に 7 日間の検証レンタルをご検討ください。SlimVps の料金をご覧ください。
よくある質問
実務で「OpenClaw を脳にする」とは?
OpenClaw がユーザーセッションを保持し、ツールを選び、返信を整形します。OpenClaw が HTTP ツールを呼び出したときに Dify が定義済みワークフローを実行します。Dify は OpenClaw のチャネルコネクタに取って代わりません。
16GB Mac mini M4 ひとつで Dify と OpenClaw を同時に動かせますか?
Dify が軽量で同時ワークフロー呼び出しが ≤2 ならパイロットは可能です。本番チームは多くの場合、RAG スパイク時のスワップ回避のため Dify を別ホストに置くか Dify クラウドを使います。
OpenClaw はどの Dify API を呼ぶべきですか?
ワークスペースで公開されたワークフロー実行 REST エンドポイントを使い、チャネルで部分ストリーミングを実装するまで response_mode: blocking を使います。
ワークフローの副作用の重複を防ぐには?
チャットセッションごとに安定した user 識別子を渡し、可能なら Dify ノードをべき等にし、支払い/返金ツールの自動再試行を無効にします。
ワークフローのトラフィックは SlimVps Mac の外に出ますか?
Dify クラウド利用時ははい。ペイロードは Dify のリージョンへエグレスします。同一 Mac にセルフホストした場合、両方をローカルバインドすれば 127.0.0.1 上に留まります。
API キーはどこに置きますか?
launchd の環境変数、またはパーミッション 600 の ~/.openclaw/secrets/ に置きます。ワークフローのプロンプトや git には置かないでください。