n8n 資料庫 AI Agent|用對話查詢資料庫

更新於 2026年2月11日

n8n 資料庫 AI Agent

📥 工作流 JSON 下載GitHub 範例庫 | 💬 社群討論Skool 雲端方程式 Cloud F1

專業導讀

你有沒有遇過這種情況?業務團隊想查銷售資料、行銷團隊想看用戶數據,每次都要找工程師寫 SQL 查詢,等個半天才拿到報表。今天要跟大家分享一個超實用的應用:用 n8n 打造資料庫 AI Agent,讓非技術人員也能用對話方式直接查詢資料庫。

你將學到

  • ✅ 如何用 n8n AI Agent 連接 PostgreSQL 資料庫
  • ✅ 自然語言轉 SQL 的實作技巧與安全防護
  • ✅ 唯讀帳號設計與資料庫權限控管
  • ✅ 對話記憶管理與多輪查詢最佳實踐
  • ✅ 完整可用的 n8n workflow 拆解

🎯 什麼是資料庫 AI Agent?

資料庫 AI Agent 是一個能理解自然語言問題、自動產生 SQL 查詢、執行並回傳結果的 AI 助理。 它讓不懂 SQL 語法的人也能透過對話方式直接查詢資料庫,大幅降低資料取得門檻。

傳統的資料查詢流程是這樣的:業務人員提需求 → 寫需求文件 → 工程師排程 → 寫 SQL → 執行查詢 → 匯出報表 → 交付。整個流程可能要等幾小時到幾天。但用資料庫 AI Agent,流程變成:直接問「這個月銷售額多少?」→ AI 自動查詢 → 立刻得到答案。效率差異非常明顯。

我在實際使用中發現,這個技術最大的價值不只是「省時間」,而是讓資料查詢變成一種對話式探索。你可以先問「有哪些資料表」,再問「users 表有什麼欄位」,接著問「統計過去 30 天註冊的用戶數」。這種連續性的探索,才是真正釋放資料價值的關鍵。


💡 Alex 的觀察

我在協助企業導入資料庫 AI Agent 的過程中,發現一個很有趣的現象:大部分團隊一開始都很擔心「AI 會不會搞砸資料庫」,但真正實作後才發現,技術上的安全防護其實都很好解決,反而是組織文化的適應比較難

從技術面來說,資料庫 AI Agent 的安全設計其實很簡單:用唯讀帳號 (readonly user)、限制可查詢的資料表範圍、加上 SQL 驗證機制,就能確保 AI 不會執行危險操作。但我觀察到的真正挑戰是:團隊需要重新定義「誰可以查什麼資料」

過去資料查詢權限是由工程師當守門員,每次查詢都要經過審核。現在 AI Agent 讓查詢變得即時,企業就必須思考:業務團隊能看客戶資料嗎?行銷團隊能查收入數字嗎?這些權限設計,反而比技術實作更需要時間討論。

另外我也發現,AI 對資料結構的理解程度,直接決定查詢的準確度。如果你的資料表命名很混亂(比如 tbl_user_v2_final_copy),或是欄位沒有清楚的註解,AI 就很容易產生錯誤的 SQL。所以這個應用也間接推動了「資料庫文件化」的改善,算是意外的好處。

這個方案的限制也要誠實說:對於需要複雜 JOIN 或是跨多表聚合的查詢,AI 的成功率會明顯下降。我建議這類需求還是由工程師設計 View 或是預設查詢範本,讓 AI 只負責簡單的篩選和統計。


🔧 如何用 n8n 打造資料庫 AI Agent

接下來我會手把手帶大家建立一個完整可用的資料庫 AI Agent。我們會用 PostgreSQL 作為範例,但同樣的概念也適用於 MySQL、MongoDB 等其他資料庫。

Step 1: 建立測試資料庫與唯讀帳號

第一步是準備測試用的資料庫。我們會建立三個資料表:users(用戶)、products(產品)、orders(訂單),模擬真實的電商場景。

-- 建立 users 資料表
CREATE TABLE IF NOT EXISTS users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100),
    created_at TIMESTAMP DEFAULT NOW()
);

-- 建立 products 資料表
CREATE TABLE IF NOT EXISTS products (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    price DECIMAL(10,2),
    stock INT
);

-- 建立 orders 資料表
CREATE TABLE IF NOT EXISTS orders (
    id SERIAL PRIMARY KEY,
    user_id INT REFERENCES users(id),
    product_id INT REFERENCES products(id),
    quantity INT,
    order_date TIMESTAMP DEFAULT NOW()
);

-- 插入測試資料
INSERT INTO users (name, email) VALUES
('Alice Chen', 'alice@example.com'),
('Bob Lin', 'bob@example.com'),
('Carol Wang', 'carol@example.com');

INSERT INTO products (name, price, stock) VALUES
('Laptop', 32000.00, 10),
('Mouse', 450.00, 50),
('Keyboard', 900.00, 30);

INSERT INTO orders (user_id, product_id, quantity) VALUES
(1, 1, 1), (1, 2, 2), (2, 3, 1), (3, 2, 1);

重點來了:我們要建立一個唯讀帳號 (readonly user)。這是安全設計的核心,確保 AI Agent 只能查詢資料,不能修改或刪除。

-- 建立唯讀使用者
CREATE USER readonly_user WITH PASSWORD 'your_secure_password';

-- 移除 public schema 的預設權限
REVOKE ALL ON SCHEMA public FROM PUBLIC;

-- 授予 readonly_user 使用 schema 權限
GRANT USAGE ON SCHEMA public TO readonly_user;

-- 授予資料表查詢權限(只有 SELECT)
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_user;

-- 確保未來新建資料表也能自動授予 SELECT 權限
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT ON TABLES TO readonly_user;

這樣設定後,即使 AI 產生了 DELETEUPDATE 語句,執行時也會被資料庫拒絕。

Step 2: 在 n8n 建立 PostgreSQL Credential

打開 n8n,到 Credentials 頁面新增 PostgreSQL 連線:

  1. Host: 你的資料庫位址(例如 ep-old-bird-xxx.us-east-1.aws.neon.tech
  2. Port: 通常是 5432
  3. Database: 資料庫名稱(例如 neondb
  4. User: readonly_user
  5. Password: 剛才設定的密碼
  6. SSL: 如果用雲端資料庫(如 Neon、Supabase),記得啟用 SSL

測試連線成功後,儲存這個 Credential。

Step 3: 建立 n8n Workflow

我們的 workflow 包含五個核心節點:

When chat message received → AI Agent → [OpenAI Chat Model + Simple Memory + Postgres Tool]

節點 1: When chat message received

這是觸發節點,用來接收使用者的對話訊息。如果你想整合到 LINE、Telegram、Slack,可以換成對應的 Webhook 觸發。

節點 2: AI Agent

這是整個流程的大腦。在 AI Agent 節點中:

  • System Message (Prompt):這是最關鍵的設定。我的建議 Prompt 架構:
你是一個資料庫查詢助手。你可以幫使用者查詢 PostgreSQL 資料庫。

## 資料庫結構
- users 表:用戶資料(id, name, email, created_at)
- products 表:產品資料(id, name, price, stock)
- orders 表:訂單資料(id, user_id, product_id, quantity, order_date)

## 查詢規則
1. 只能執行 SELECT 查詢,不可 DELETE、UPDATE、DROP
2. 使用繁體中文回覆使用者
3. 查詢結果用表格格式呈現
4. 如果問題不清楚,主動詢問更多細節

## 範例
使用者:「有哪些用戶?」
回覆:執行 SELECT * FROM users,並以表格呈現結果。

這個 Prompt 很重要,它讓 AI 知道資料庫的結構、可以做什麼、不能做什麼。你可以根據實際資料表調整。

  • Chat Model: 選擇 OpenAI Chat Model(下一個節點)
  • Memory: 選擇 Simple Memory(讓 AI 記住對話歷史)
  • Tools: 選擇 Postgres executeQuery Tool

節點 3: OpenAI Chat Model

選擇 gpt-4o-minigpt-4o。如果查詢邏輯複雜,建議用 gpt-4o,準確度更高。

節點 4: Simple Memory

這個節點讓 AI Agent 記住對話內容。設定 Context Window 為 5-10 則訊息,平衡記憶長度與成本。

節點 5: Postgres (executeQuery)

這是 AI Agent 的「手」,用來執行 SQL 查詢。設定:

  • Credential: 選擇剛才建立的 PostgreSQL readonly 連線
  • Operation: Execute Query

AI Agent 會自動呼叫這個 Tool,把產生的 SQL 傳給它執行,然後把結果回傳給使用者。

Step 4: 測試查詢

啟動 workflow,試著問幾個問題:

  1. 「請確認 db 有哪些表」 → AI 會執行 SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'
  2. 「users 表有哪些資料?」 → AI 會執行 SELECT * FROM users
  3. 「這個月有多少訂單?」 → AI 會執行帶有 WHERE 條件的查詢
  4. 「哪個產品賣最好?」 → AI 會寫 JOIN 查詢統計訂單數量

如果 AI 產生的 SQL 有問題,你可以調整 System Message,給更多範例或約束條件。


📊 比較分析:不同資料庫 AI Agent 方案

方案優點缺點適用場景
n8n AI Agent + PostgreSQL完全自架、成本可控、支援複雜 workflow需要自行維護、AI 調教需要時間企業內部資料查詢、客製化需求高
Langchain SQL Agent開源、社群支援多、支援多種資料庫需要寫程式、部署較複雜開發者、需要整合到產品中
ChatGPT Plugins (Code Interpreter)使用簡單、GPT-4 理解力強資料需上傳、隱私風險高、不適合敏感資料個人分析、公開資料集
Notion AI (Database Query)與 Notion 深度整合、無需設定只能查 Notion 資料庫、功能受限Notion 重度使用者

我自己最推薦 n8n AI Agent 方案,因為它在「易用性」和「客製化」之間取得很好的平衡。你不需要寫程式,但又能完全控制資料和邏輯。


✅ 重點整理

  1. 安全第一:一定要用唯讀帳號 (readonly user),限制 AI 只能執行 SELECT 查詢,避免誤刪資料。
  2. Prompt 設計是關鍵:清楚描述資料庫結構、查詢規則、回覆格式,AI 的準確度會大幅提升。
  3. 分階段測試:先測試簡單查詢(如 SELECT *),再測試複雜查詢(如 JOIN、聚合),逐步調整 Prompt。
  4. 記憶管理很重要:設定適當的 Context Window,讓 AI 記住對話歷史,支援多輪查詢。
  5. 資料庫文件化:表名和欄位名要清楚有意義,最好加上註解,AI 才能正確理解。
  6. 適用簡單查詢:複雜的多表 JOIN 或聚合查詢,建議由工程師預先設計 View,讓 AI 查詢 View 即可。

❓ 常見問題 FAQ

Q1: AI 生成的 SQL 安全嗎?會不會刪除資料?

A: 只要正確設定唯讀帳號,就不會有資料被刪除的風險。我建議的安全防護機制:

  • 資料庫層級:使用唯讀帳號 (readonly user),只授予 SELECT 權限
  • 應用層級:在 AI Agent Prompt 中明確禁止 DELETE、UPDATE、DROP 操作
  • 監控層級:記錄所有 AI 產生的 SQL 查詢,定期審查是否有異常
  • 測試環境先行:在測試資料庫充分測試後,再連接正式資料庫

實務上我還會加一層「SQL 白名單驗證」:只允許 AI 執行以 SELECT 開頭的語句,其他一律拒絕。

Q2: 支援哪些資料庫?除了 PostgreSQL 還能用什麼?

A: n8n 的 AI Agent 支援多種資料庫,我實測過的包括:

  • PostgreSQL (推薦,語法標準、功能強大)
  • MySQL / MariaDB (最普及,適合中小型應用)
  • MongoDB (NoSQL,適合非結構化資料)
  • SQLite (輕量級,適合單機應用)
  • Microsoft SQL Server (企業級,適合 Windows 環境)

選擇建議:如果是新專案,我會優先選 PostgreSQL,因為它的 JSON 支援、全文搜尋、視窗函數都很強,而且雲端服務(Neon、Supabase)也很成熟。

Q3: 如何提高 AI 查詢的準確度?

A: 我總結的四個關鍵技巧:

  1. 資料結構描述要詳細:不只列表名和欄位名,還要說明每個欄位的業務意義。例如不要只寫 created_at,要寫「用戶註冊時間 (created_at)」。
  2. 提供查詢範例:在 Prompt 中給 2-3 個真實查詢範例,讓 AI 學習你期望的 SQL 風格。
  3. 處理模糊問題:教 AI 主動詢問細節。例如使用者問「統計銷售額」,AI 應該反問「要統計哪個時間範圍?」
  4. 錯誤處理機制:當 SQL 執行失敗時,讓 AI 看到錯誤訊息,它會自動修正 SQL 再試一次。

我還會定期查看「執行失敗的查詢日誌」,找出常見錯誤模式,然後更新 Prompt 避免重複發生。

Q4: 對話記憶會不會累積太多,造成成本過高?

A: 這是個好問題。我的記憶管理策略:

  • Context Window 設定為 10 則訊息:對於資料查詢來說,10 輪對話已經足夠覆蓋一次完整探索
  • 自動摘要機制:當對話超過 10 輪,讓 AI 產生摘要,保留關鍵資訊,清除細節
  • Session 管理:設定 30 分鐘閒置自動清除記憶,避免長期累積
  • 成本監控:用 n8n 的 Execution Webhook 記錄每次查詢的 Token 數量,設定預算上限

實測下來,一次完整的資料探索(10-15 輪對話)大約消耗 3000-5000 tokens,成本約台幣 1-2 元,非常划算。

Q5: 可以讓多人同時使用同一個 AI Agent 嗎?

A: 可以,但需要做好 Session 隔離。我的設計方案:

  • User ID 區分:在 When chat message received 節點取得使用者 ID,傳給 AI Agent
  • Memory 隔離:用 {{ $json.userId }} 作為 Memory 的 Session Key,確保每個使用者的對話記憶獨立
  • 權限控管:在資料庫層級設定 Row Level Security (RLS),讓不同使用者只能查詢自己權限範圍內的資料

這樣設計後,即使 10 個人同時使用,對話也不會互相干擾。

Q6: AI Agent 能處理複雜的商業分析查詢嗎?

A: 坦白說,對於需要多表 JOIN、複雜聚合、視窗函數的查詢,AI 的成功率會明顯下降。我的建議策略:

  • 簡單查詢交給 AI:單表查詢、簡單篩選、基礎統計(COUNT、SUM、AVG)
  • 複雜查詢預設 View:由工程師設計好 View(如 sales_summary_by_month),AI 只需要查詢 View
  • 分步引導:把複雜問題拆解成多個簡單查詢。例如「分析客戶購買行為」→ 先查「客戶清單」→ 再查「每個客戶的訂單數」→ 最後統計

我實測的經驗是:GPT-4o 能處理 2-3 表 JOIN 的查詢,但超過 3 表或涉及子查詢,準確度會降到 60% 以下。這時候還是交給人類比較穩。


🎯 下一步行動

🎓 想更有系統地學會這些技巧?AI 職場工作術(雲端方程式 Cloud F1 旗艦課程) 看看完整的實作路徑。

如果你也想打造自己的資料庫 AI Agent,我建議你這樣開始:

  1. 先用測試資料庫練習:不要直接連正式資料庫,用本地 SQLite 或雲端測試環境(Neon 免費版)建立測試表,熟悉流程。
  2. 從簡單查詢開始:先測試「列出所有資料」、「統計數量」等基礎查詢,確認 AI 能正確產生 SQL。
  3. 逐步調整 Prompt:根據實際查詢結果,優化 System Message,加入更多約束和範例。
  4. 設定安全防護:確認唯讀帳號、權限控管、SQL 驗證都設定正確,再連接正式資料庫。

想深入學習更多 n8n AI Agent 實戰技巧?

  • 💬 加入 雲端方程式 Cloud F1 學習社群Skool 雲端方程式 Cloud F1(免費加入,和 500+ 學員一起學習,討論實作問題)
  • 📺 觀看完整教學影片:YouTube 頻道有超過 50 支 n8n 實戰教學,手把手帶你建立自動化工作流
  • 📧 訂閱電子報:每週獲取最新 AI 自動化技巧與產業趨勢分析

大家記得,第一次實作沒做好是正常的,AI Agent 的調教本來就需要時間。先求大概能用,再逐步優化,這樣學習效率最高!


🔗 相關資源

延伸閱讀

外部資源


本文改編自 n8n 課程模組,由 Alex Hsieh 撰寫。如果你在實作過程中遇到問題,歡迎到 Skool 社群討論,我會盡力協助!

想把這篇學到的用進日常工作?

「AI 職場工作術」課程把這類實戰經驗整理成一步步的教學,帶你系統化練出跟 AI 協作的產能。

看 AI 職場工作術課程 →

本文作者:Alex Hsieh,SRE / DevOps 背景出身,現為企業 AI 導入顧問,也是「AI 相談室」課程講師。專注把 AI 自動化真正落地到企業日常流程,而不是停留在 Demo。

目錄
  1. 專業導讀
  2. 你將學到
  3. 🎯 什麼是資料庫 AI Agent?
  4. 💡 Alex 的觀察
  5. 🔧 如何用 n8n 打造資料庫 AI Agent
  6. Step 1: 建立測試資料庫與唯讀帳號
  7. Step 2: 在 n8n 建立 PostgreSQL Credential
  8. Step 3: 建立 n8n Workflow
  9. Step 4: 測試查詢
  10. 📊 比較分析:不同資料庫 AI Agent 方案
  11. ✅ 重點整理
  12. ❓ 常見問題 FAQ
  13. Q1: AI 生成的 SQL 安全嗎?會不會刪除資料?
  14. Q2: 支援哪些資料庫?除了 PostgreSQL 還能用什麼?
  15. Q3: 如何提高 AI 查詢的準確度?
  16. Q4: 對話記憶會不會累積太多,造成成本過高?
  17. Q5: 可以讓多人同時使用同一個 AI Agent 嗎?
  18. Q6: AI Agent 能處理複雜的商業分析查詢嗎?
  19. 🎯 下一步行動
  20. 🔗 相關資源
  21. 延伸閱讀
  22. 外部資源