Nếu bạn đã từng dành hàng giờ, thậm chí hàng ngày để xây dựng các hệ thống RAG (Retrieval-Augmented Generation) từ con số không, bạn sẽ hiểu nỗi đau mà mình đang nói đến. Việc thiết lập cơ sở dữ liệu vector (Vector Databases), cấu hình các mô hình embedding, viết logic truy xuất dữ liệu (retrieval logic), và xử lý phân mảnh tài liệu (chunking) là một quy trình cực kỳ phức tạp và tốn kém thời gian.
Tuy nhiên, tin vui là cuộc chơi đã thay đổi hoàn toàn. OpenAI vừa tung ra những cập nhật mới nhất giúp biến toàn bộ quy trình phức tạp trên trở nên lỗi thời. Giờ đây, họ đã tích hợp RAG trực tiếp vào các mô hình chat của mình thông qua Responses API. Không cần Pinecone, không cần Supabase, và cũng chẳng cần lo về custom embeddings.
Trong bài viết này, mình sẽ hướng dẫn bạn cách xây dựng RAG Agent với n8n và OpenAI sử dụng tính năng File Search và Web Search tích hợp sẵn, tất cả trong một hệ thống duy nhất mà không cần quản lý hạ tầng phức tạp.
Tại sao quy trình RAG truyền thống đang trở nên lỗi thời?
Trước khi đi sâu vào giải pháp mới, hãy cùng nhìn lại xem một quy trình xây dựng RAG Agent thông thường tốn kém tài nguyên như thế nào.
Download workflow n8n: https://romhub.io/n8n/OpenAI_Responses_API_Agent
Cách làm cũ cho RAG (File Search)
- OpenAI Chat Model node – Cấu hình model
gpt-4.1-minivớiresponsesApiEnabled: false - Embeddings OpenAI node – Để chuyển đổi văn bản thành vector
- Supabase Vector Store node – Cấu hình mode
retrieve-as-tool, kết nối với bảngdocuments - AI Agent node – Kết hợp tất cả lại với System Message
Cách làm cũ cho Web Search
Tương tự, nếu muốn Agent có khả năng tìm kiếm web, bạn phải:
- Sử dụng Perplexity Tool node riêng biệt
- Kết nối với OpenAI Chat Model node khác
- Gắn vào AI Agent node như một tool
Điều này đồng nghĩa với việc quản lý nhiều API key, nhiều hóa đơn thanh toán, và nhiều điểm có thể gây lỗi hệ thống.
Giải pháp “All-in-One” từ OpenAI Responses API
Giải pháp cho tất cả sự phức tạp trên chính là Responses API mới của OpenAI, được tích hợp trực tiếp vào node OpenAI Chat Model phiên bản 1.3 trong n8n. Node này cho phép bạn bật builtInTools bao gồm:
- fileSearch: RAG tích hợp sẵn với Vector Store của OpenAI
- webSearch: Tìm kiếm web thời gian thực
Ba cách triển khai trong workflow
Workflow đính kèm minh họa 3 cách triển khai riêng biệt:
1. Web Search riêng lẻ (Node “Web” → Agent “Research”)
Cấu hình trong node OpenAI Chat Model:
{
"model": "gpt-5-mini",
"builtInTools": {
"webSearch": {
"searchContextSize": "medium",
"allowedDomains": "google.com"
}
}
}- searchContextSize: Có thể đặt
low,medium, hoặchightùy mức độ chi tiết mong muốn - allowedDomains: Giới hạn nguồn tìm kiếm (ví dụ chỉ cho phép
google.com)
2. File Search riêng lẻ (Node “File Search” → Agent “RAG”)
Cấu hình:
{
"model": "gpt-4.1-mini",
"builtInTools": {
"fileSearch": {
"vectorStoreIds": "[\"vs_6930814fe41c8191b934ac05de8d97a1\"]",
"filters": "{\"filters\": [], \"type\": \"and\"}"
}
}
}- vectorStoreIds: ID của Vector Store bạn đã tạo trên OpenAI Platform
- filters: Bộ lọc JSON để tinh chỉnh kết quả tìm kiếm
3. Combined – Kết hợp cả hai (Node “OpenAI Combined” → Agent “New”)
Đây là cách tiếp cận mạnh mẽ nhất, kết hợp cả File Search và Web Search trong một node duy nhất:
{
"model": "gpt-5-mini",
"builtInTools": {
"webSearch": {
"searchContextSize": "medium"
},
"fileSearch": {
"vectorStoreIds": "[\"vs_6930761d7e20819199d554cb28876218\"]",
"filters": "{\"filters\": [], \"type\": \"and\"}"
}
}
}Hướng dẫn thiết lập từng bước
Bước 1: Tạo Vector Store trên OpenAI Platform
- Truy cập
platform.openai.com→ Storage → Vector Stores - Tạo mới Vector Store và đặt tên phù hợp
- Upload tài liệu (PDF, TXT, DOCX…)
- Copy lại Vector Store ID (dạng
vs_xxxxxxxxxxxx)
Bước 2: Thiết lập workflow trong n8n
Dựa trên workflow mẫu, bạn cần các node sau:
- Chat Trigger node (
chatTriggerv1.4) – Nhận tin nhắn từ người dùng - OpenAI Chat Model node (
lmChatOpenAiv1.3) – Cấu hình Responses API với builtInTools - AI Agent node (
agentv3) – Xử lý logic Agent với System Message:"You are a helpful assistant"
Bước 3: Cấu hình builtInTools
Trong node OpenAI Chat Model, bật tính năng cần thiết:
| Tính năng | Tham số chính | Mô tả |
|---|---|---|
| webSearch | searchContextSize | low/medium/high – Độ chi tiết ngữ cảnh |
| webSearch | allowedDomains | Giới hạn domain được phép tìm kiếm |
| fileSearch | vectorStoreIds | Mảng ID của Vector Store |
| fileSearch | filters | JSON filter với type: "and" hoặc "or" |
So sánh cách làm cũ vs mới
| Tiêu chí | Cách Cũ | Cách Mới (Responses API) |
|---|---|---|
| RAG | Supabase + Embeddings OpenAI + AI Agent | OpenAI Chat Model với fileSearch |
| Web Search | Perplexity Tool + OpenAI Chat Model + AI Agent | OpenAI Chat Model với webSearch |
| Số node cần thiết | 4-5 nodes | 2-3 nodes |
| API keys | Nhiều (OpenAI, Supabase, Perplexity) | Chỉ OpenAI |
| Quản lý embeddings | Thủ công | Tự động |
Lợi ích thực tế
Tiết kiệm chi phí và thời gian
Bạn không còn phải trả phí hàng tháng cho nhiều dịch vụ rời rạc (Vector DB, Perplexity API). Mọi thứ được tính hợp vào chi phí sử dụng API của OpenAI.
Độ tin cậy cao
Agent “tự biết” khi nào dùng công cụ nào. Khi cần thông tin từ tài liệu nội bộ, nó dùng File Search. Khi cần thông tin thời gian thực, nó tự động chuyển sang Web Search.
Dễ dàng bảo trì
Cập nhật tài liệu chỉ cần vào OpenAI Dashboard, xóa file cũ và upload file mới. Không cần chạy lại pipeline embedding hay update database.
Việc xây dựng RAG Agent với n8n và OpenAI chưa bao giờ dễ dàng đến thế. Với workflow mẫu đính kèm, bạn có thể thấy rõ sự khác biệt giữa cách làm cũ (nhiều node, nhiều API) và cách làm mới (node OpenAI Combined duy nhất với cả File Search và Web Search).
Nếu bạn đang phát triển các ứng dụng AI cho doanh nghiệp, hãy thử ngay cách tiếp cận Combined này. Nó không chỉ giúp bạn đi nhanh hơn gấp 10 lần mà còn tạo ra những sản phẩm ổn định và dễ bảo trì hơn.








