N8N RAG AI Agent 客服機器人 向量資料庫 OpenAI 實作教學

第一個 AI Agent 工作流:RAG 客服機器人 30 分鐘搭好

手把手帶你用 N8N 搭第一個 RAG 客服機器人。從知識庫建立、Embeddings 設定、Vector Store 串接,到最終能回答問題的對話流程,30 分鐘完成。

N8NMarket 2026年4月18日

第一個 AI Agent 工作流:RAG 客服機器人 30 分鐘搭好

很多人問我:「N8N 串 AI 最實用的第一個案子是什麼?」

我的答案一直是:RAG 客服機器人。

不是因為它最炫,而是因為它解決了一個幾乎所有人都有的問題——你有一堆知識(FAQ、產品說明、政策文件),但你不可能 24 小時守在旁邊回答問題。

這篇文章就是帶你一步一步搭出來。

我會假設你已經有一個可以用的 N8N 環境,以及一個 OpenAI 的 API Key。除此之外,你不需要任何技術背景。


什麼是 RAG?為什麼你需要它

RAG 的全名是 Retrieval-Augmented Generation,中文可以理解為「先查資料再生成回答」。

一般的 AI(不用 RAG):你問它問題,它根據訓練時學到的知識回答。問題是它的訓練數據截止到某個時間,它不知道你們公司的退換貨政策,它也可能會「幻覺」——自信地說出看起來合理但根本不對的答案。

RAG 架構的 AI:你問它問題,它先去你的知識庫找相關資料,然後根據找到的資料來回答。它只說知識庫裡有的東西,不會亂猜。

對客服場景來說,這個差別非常關鍵。你要的不是一個「看起來很聰明」的 AI,你要的是一個「說對話、不出錯」的 AI。RAG 讓這件事成為可能。


你需要準備什麼

在開始之前,把這些東西準備好:

一、N8N 環境(Cloud 或自架都可以)

二、OpenAI API Key(用來做 Embeddings 和生成回答)

三、Supabase 帳號(免費方案夠用,用來當 Vector Store 存向量資料)

四、一份你的 FAQ 文件(純文字就好,5-20 條問答最適合入門)

Supabase 是這裡最需要額外設定的部分,但不難。我們等一下會走過設定步驟。


整體架構說明

這個 RAG 客服機器人由兩條流程組成:

流程 A 是知識庫建立流程,只跑一次,或知識庫更新時跑。把你的 FAQ 文字切成小段,轉成向量,存進 Supabase。

流程 B 是客服對話流程,每次有人問問題就觸發。收到問題後把問題轉成向量,在 Supabase 找最相近的資料,把資料加上問題丟給 GPT,輸出回答。

這樣設計的好處是:知識庫和對話是分離的。你更新了 FAQ,只需要重跑流程 A,流程 B 自動就用到最新的資料。


第一步:設定 Supabase Vector Store

Supabase 是一個開源的 Firebase 替代品,有免費方案,支援 pgvector 擴充套件,可以直接當 Vector Store 用。

進到 Supabase 後台,點「SQL Editor」,執行以下 SQL 建立你需要的資料表和函式:

-- 啟用向量擴充套件
create extension if not exists vector;

-- 建立文件儲存表
create table documents (
  id bigserial primary key,
  content text,
  metadata jsonb,
  embedding vector(1536)
);

-- 建立向量相似度搜尋函式
create or replace function match_documents (
  query_embedding vector(1536),
  match_count int default 5,
  filter jsonb default '{}'
) returns table (
  id bigint,
  content text,
  metadata jsonb,
  similarity float
)
language plpgsql
as $$
begin
  return query
  select
    documents.id,
    documents.content,
    documents.metadata,
    1 - (documents.embedding <=> query_embedding) as similarity
  from documents
  where metadata @> filter
  order by documents.embedding <=> query_embedding
  limit match_count;
end;
$$;

執行成功後,你就有了一個可以存向量資料並且做相似度搜尋的資料庫。

接下來在 Supabase 的「Settings > API」取得你的 Project URL 和 anon/service role API key。這兩個等一下 N8N 設定時會用到。


第二步:建立知識庫建立流程(流程 A)

回到 N8N,新建一條流程,我們叫它「建立知識庫」。

節點一:Manual Trigger

新增一個 Manual Trigger。這條流程我們手動跑就好,不需要排程。

節點二:Edit Fields 輸入 FAQ 資料

新增一個「Edit Fields(Set)」節點,在這裡直接把你的 FAQ 資料貼進來。

欄位設定:Field Name 填 text,Field Value 把你的 FAQ 文字貼進來,一次貼全部,不同問題用換行分開。

範例內容:

Q: 訂單多久會出貨?
A: 一般訂單在確認付款後 1-2 個工作天內出貨。

Q: 可以退換貨嗎?
A: 商品到貨 7 天內可申請退換貨,需保持商品完整未使用狀態。

Q: 運費怎麼算?
A: 消費滿 500 元免運費,未達門檻運費 60 元。

在實際使用中,你可以改成從 Google Docs 或 Notion 讀取,讓知識庫的更新更方便。

節點三:Text Splitter 切分文字

新增「Recursive Character Text Splitter」節點(在 Document Loaders 分類下找)。

設定 Chunk Size 為 500(每段最多 500 字元),Chunk Overlap 為 50(相鄰段落重疊 50 字元,防止語意被切斷)。

切分的目的:太長的文字轉成向量後,相似度搜尋的準確率會下降。切成小段,搜尋更精準。

節點四:Embeddings OpenAI 轉換成向量

新增「Embeddings OpenAI」節點。選你的 OpenAI API Key,Model 選 text-embedding-3-small(小模型就夠用,便宜)。

節點五:Supabase Vector Store 儲存向量

新增「Supabase Vector Store」節點,選「Insert Documents」模式。

設定 Credential(填入 Project URL 和 API Key),Table Name 填 documents,Query Name 填 match_documents(對應我們剛才建立的函式名稱)。

連結方式:把 Text Splitter 輸出接到 Embeddings OpenAI,再接到 Supabase Vector Store。

現在點「Test Workflow」,如果設定正確,你的 FAQ 資料就會被切分、轉成向量、存進 Supabase。

去 Supabase 的「Table Editor」點開 documents 表,你應該會看到幾筆資料,每筆都有 content(文字)和 embedding(一大串數字,就是向量)。


第三步:建立客服對話流程(流程 B)

新建第二條流程,叫它「客服對話」。

節點一:Webhook Trigger

新增「Webhook」節點,選「POST」方法。

這個 Webhook URL 是你的「問題輸入口」。任何人或任何系統把問題 POST 到這個 URL,就會觸發這條流程。

HTTP Method 選 POST,Response Mode 選 Last Node。

Webhook 啟用後,你會拿到一個 URL,後面的步驟測試時會用到。

節點二:AI Agent 節點

新增「AI Agent」節點。這是整個流程的核心。

System Message 設定:

你是一個友善的客服助手。根據提供給你的知識庫內容回答客戶問題。
如果知識庫裡沒有相關資訊,請誠實地說你不確定,並請客戶聯繫人工客服。
回答要簡潔清楚,不要超過 150 字。

節點三:連接 OpenAI Chat Model

在 AI Agent 節點下方,新增「OpenAI Chat Model」作為 Language Model。選你的 OpenAI API Key,Model 選 gpt-4o-mini(夠用,便宜)。

節點四:連接 Supabase Vector Store 作為知識工具

在 AI Agent 節點下方,再新增「Supabase Vector Store」節點,這次選「Retrieve Documents (As Tool for AI Agent)」模式。

這個設定讓 Supabase 成為 AI Agent 可以主動查詢的工具。

Table Name 填 documents,Query Name 填 match_documents。

Tool Description 填:「搜尋 FAQ 知識庫,找出與問題相關的答案。當你需要回答客戶問題時使用此工具。」

同樣需要連結 Embeddings OpenAI 節點到這個 Vector Store,讓搜尋時能把問題也轉成向量。

節點五:Respond to Webhook 回傳結果

新增「Respond to Webhook」節點,把 AI Agent 的輸出回傳給請求方。

Respond With 選 First Incoming Item,Response Body 填 {{ $json.output }}


第四步:測試整個流程

流程 B 設定好之後,先不要 Activate,用手動方式測試。

打開終端機或 API 測試工具(Postman 也可以),發一個 POST 請求到你的 Webhook URL:

{
  "chatInput": "我的訂單多久會出貨?"
}

如果一切正常,你應該在幾秒內收到一個回覆,內容會參考你知識庫裡的訂單出貨說明。

試試幾個不同的問題:

「可以退貨嗎?」應該回答退換貨政策。

「你們有 VIP 方案嗎?」應該說不確定,請聯繫人工客服(因為知識庫裡沒有這條資訊)。

第二個測試很重要。你要確認 AI 在知識庫沒有答案的時候,不會亂說話。


常見問題與除錯

「向量搜尋結果不準確」:通常是文字切分的問題。試著把 Chunk Size 調小到 300-400,或者在 FAQ 的寫法上讓每個問答更獨立,不要互相引用。

「AI 回答的內容不在知識庫裡」:System Message 加強限制,說明只根據工具回傳的資料回答問題,不要使用自己的知識。這樣可以大幅降低 AI 自行發揮的機率。

「Supabase 連接失敗」:確認 API Key 用的是 service_role 而不是 anon,因為 anon key 預設有 Row Level Security 的限制。

「Webhook 沒有回應」:確認流程是 Active 狀態(右上角切換),而且 Webhook 節點的 Execution Mode 在正式上線要切到 Active,不是只有 Listen for test event。


進階:讓知識庫更聰明

這個基本版的 RAG 系統搭好之後,有幾個方向可以讓它更好用:

加入對話記憶:在 AI Agent 節點裡加一個 Window Buffer Memory,讓它記住同一個對話的前幾輪問答,這樣客戶說「那第二個問題呢?」它才知道在說哪個問題。

知識庫自動更新:改成從 Notion 或 Google Docs 讀取 FAQ,每週自動重跑知識庫建立流程。這樣更新知識庫不需要動到 N8N 的節點設定。

加入多來源知識庫:除了 FAQ,把你的退換貨政策 PDF、產品說明書也加進向量資料庫。用 metadata 欄位標記每筆資料的來源,讓 AI 回答時可以說「根據退換貨政策…」。

加入人工升級機制:在 AI Agent 後面加一個 IF 節點,判斷問題裡有沒有「退款」「客訴」「投訴」等高風險關鍵字,符合條件就轉給 Slack 通知人工客服介入。


你的第一個 AI Agent 就在這裡

30 分鐘,你搭好了一個真正能用的 RAG 客服機器人。

它不是玩具,它是一個可以接到你網站、LINE、甚至任何 Webhook 的真實服務。它根據你自己的知識庫回答問題,說不知道的時候也會說不知道。

你的 FAQ 文件現在在哪裡?是 Notion 還是 Google Docs 還是純文字檔?留言告訴我,我可以說說怎麼直接從那邊讀取資料,省掉手動貼文字的步驟。

想看完整的 AI Agent 架構與設計原則,請閱讀主文「N8N x AI Agent 完全指南」。或前往 N8Nstart 模板庫 找現成的 RAG 客服機器人模板直接套用。


延伸閱讀