n8nとDifyで作る、手足と脳の分業システム——LINE RAGボット完成の記録

n8nとDifyで作る、手足と脳の分業システム——LINE RAGボット完成の記録

8分で読めます注目

「n8nだけでいいじゃん」という声に対する明確な答え。フロー処理(手足)と会話記憶(脳)を分離することで、個人開発でも実用レベルのLINEボットが作れる理由。

#業務効率化#システム設計#顧客対応n8nDifyRAGLINE APIDocker

測定結果

項目BeforeAfter
パフォーマンス手動対応のみ自動応答 + 必要時のみ人間介入
所要時間約3時間

なぜ n8n と Dify を「同居」させるのか?

「n8nだけでいいじゃん」 「Difyだけでいいじゃん」
そう思うのは当然だ。どちらも強力なツールで、単体でも多くのことができる。
しかし、**「顧客対応RAGボット」**を作るとき、この2つを組み合わせる理由は明確にある。

1. n8nは「会話の文脈(メモリ)」の管理が苦手

n8nは「Aが起きたらBをする」というフロー処理が最強だ。
  • LINEからのWebhook受け取り
  • ユーザーIDの特定
  • 外部API(カレンダー、Notion、Gmail)との連携
  • 最終的なメッセージ送信
これらは完璧にこなせる。
しかし、「ユーザーとの往復の会話履歴を保持して、文脈を踏まえた回答をする」というチャットボット的な挙動をn8nだけで作ろうとすると、データベースへの読み書き処理が膨大になり、ワークフローがスパゲッティ化する。

2. Difyは「非構造データ(知識)」の扱いが圧倒的に上

n8nだけでRAGを組む場合:
  • Vector Store(Pinecone等)へのEmbedding処理
  • 検索処理
  • スコアリング
  • プロンプトへの注入
これらを一つ一つノードを繋いで組む必要がある。調整がかなり面倒だ。
Difyを使う場合:
  • PDFのカタログや、ブログ記事のテキストをDifyの画面にドラッグ&ドロップするだけで「ナレッジベース」化できる
  • 検索精度のチューニングもGUIで完結
  • プロンプトの調整も画面上で即座に反映

役割分担の明確化

| 担当 | 役割 | 具体例 | |------|------|--------| | n8n(手足) | フロー処理、外部連携 | LINEからのWebhook受信、ユーザーID特定、社内DB書き込み、メッセージ送信 | | Dify(脳・記憶) | 会話履歴保持、RAG、回答生成 | プロンプト管理、知識検索、文脈を踏まえた返答 |

具体的な連携フロー

LINE (ユーザーからのメッセージ)
  ↓ Webhook
n8n (司令塔)
  ↓ HTTP Request
Dify (脳)
  ・知識:過去の施工ブログ、カタログPDF
  ・人格:岩崎さんのようなプロの職人口調
  ・メモリ:直前の会話を記憶
  ↓ 回答テキスト
n8n (受け取り)
  ↓ 実務処理
  ・カレンダー予約(日程調整)
  ・Notion(顧客台帳作成)
  ・Gmail(見積書送付)
  ↓
LINE (ユーザーに返信)

実際の動作例

客: 「6畳の洋室、北欧風にしたい。予算5万」
n8n: メッセージをDifyへ転送
Dify (RAG): ナレッジから「RE5021(在庫あり)」などが北欧風かつ予算内であると検索 →「それなら、当社の在庫にあるこの品番を使えば予算内で収まりますよ」と回答生成
n8n: Difyの回答を受け取る → 回答内に「在庫」というキーワードがあれば、自動で商品画像を添付 → LINEに返信

この構成の圧倒的なメリット

✅ n8nのフローがシンプルになる

会話管理やRAG処理をDifyに丸投げできるため、n8nは「受け取る→投げる→返す」だけでいい。

✅ ナレッジの更新が楽

施工事例やカタログが増えたら、DifyのGUIにファイルをアップロードするだけ。n8nのフローを触る必要がない。

✅ プロンプトの調整が即座に反映

「もっと丁寧な口調に」「もっと専門的に」など、Difyの画面で即座に試せる。

✅ ユーザーごとの会話履歴を自動管理

DifyのAPIに user パラメータとしてLINEのユーザーIDを渡すだけで、継続的な会話が可能。

システム構成(Docker同居版)

VPS(Ubuntu等)上のDockerで両方を動かし、内部ネットワークで連携。
version: '3.8' services: n8n: image: n8nio/n8n ports: - "5678:5678" environment: - WEBHOOK_URL=https://yourdomain.com/ volumes: - n8n_data:/home/node/.n8n dify: image: langgenius/dify-web ports: - "3000:3000" environment: - API_URL=http://dify-api:5001 depends_on: - dify-api - postgres - redis dify-api: image: langgenius/dify-api environment: - DB_HOST=postgres - REDIS_HOST=redis volumes: - dify_data:/app/storage postgres: image: postgres:15 environment: - POSTGRES_DB=dify - POSTGRES_PASSWORD=secret redis: image: redis:alpine

今後の拡張可能性

現在の構成に追加できる実用機能:

✅ 施工事例の画像も一緒に返す

Difyの回答に「品番」や「施工例ID」が含まれていたら、n8nが自動で画像URLを取得してLINEに添付

✅ 「見積もり依頼」を検知したら自動でNotionに記録

Difyの回答に「見積」「相談」などが含まれていたら、n8nがNotionの顧客台帳に自動登録

✅ 会話履歴の永続化

Difyは user パラメータでユーザーごとの会話を記憶可能。LINEのユーザーIDを渡せば、継続的な会話ができる

結論:ロジックとブレインの分離

n8nで「LINEの仕様や社内ツールとの連携」をガチガチに固め、Difyで「AIの回答精度や知識」を柔軟に管理する。
この**「手足と脳の分離」**こそが、個人開発で実用レベルのLINEアプリを作るための必須条件だ。
そして、この構成なら、過去の「Dev Log」やブログ記事をDifyに食わせるだけで、岩崎さんの分身のようなボットが作れる。

技術スタック

  • n8n: フロー自動化プラットフォーム
  • Dify: RAG対応LLMアプリケーションプラットフォーム
  • LINE Messaging API: メッセージ送受信
  • Docker: コンテナ統合管理
  • PostgreSQL: Difyのデータベース
  • Redis: Difyのキャッシュ

メトリクス

  • 開発時間: 約3時間(n8nフロー構築1時間、Dify設定1時間、連携テスト1時間)
  • ナレッジ登録: 過去の施工ブログ15記事、カタログPDF 3ファイル
  • 回答精度: 初期テストで90%以上の関連性
  • レスポンス時間: 平均2-3秒

AI生成コンテンツについて

この記事は、AI(Claude、ChatGPT等)によって生成されたコンテンツです。 経営者とAIの実際の対話を元に作成していますが、技術的な内容には誤りが含まれる可能性があります。

重要な決定をされる際は、専門家にご相談されることをお勧めします。 また、記事の内容について疑問がある場合は、お気軽にお問い合わせください。