Các mô hình sản xuất: Xử lý lỗi và triển khai

Bạn đã xây dựng một bộ phân loại email (bài học 3), một agent nghiên cứu (bài học 4), một chatbot có bộ nhớ (bài học 5)một cơ sở tri thức RAG (bài học 6). Tất cả đều hoạt động trong môi trường thử nghiệm. Nhưng "hoạt động trong môi trường thử nghiệm" và "hoạt động trong môi trường sản xuất" là hai điều rất khác nhau. Bài học này sẽ giúp bạn hiểu rõ hơn về điều đó.

5 vấn đề cần quan tâm trong môi trường sản xuất

Mọi quy trình làm việc AI phục vụ người dùng thực cần xử lý 5 vấn đề mà môi trường thử nghiệm của bạn bỏ qua:

  1. Xử lý lỗi - Điều gì xảy ra khi API LLM bị lỗi?
  2. Logic thử lại - Làm thế nào để khắc phục các lỗi tạm thời?
  3. Chế độ hàng đợi - Làm thế nào để xử lý người dùng đồng thời?
  4. Bảo mật thông tin xác thực - Làm thế nào để giữ an toàn cho các API key?
  5. Giám sát - Làm thế nào để biết có điều gì đó không ổn?

Hãy cùng giải quyết từng vấn đề một.

Xử lý lỗi

n8n cung cấp cho bạn 3 cấp độ xử lý lỗi:

Cấp độ node: Retry On Fail

Mỗi node đều có cài đặt "Retry On Fail" trong các tùy chọn của nó. Đối với các node AI gọi API bên ngoài (OpenAI, Anthropic, SerpAPI), hãy bật tùy chọn này:

  • Số lần thử lại tối đa: 3
  • Thời gian chờ giữa các lần thử lại: Lùi thời gian theo cấp số nhân (1s → 2s → 4s)
  • Thử lại khi: Mã trạng thái HTTP cụ thể (429 giới hạn tốc độ, 500 lỗi máy chủ, 503 không khả dụng)

Điều này xử lý lỗi phổ biến nhất: API bị quá tải tạm thời. Quy trình làm việc sẽ tạm dừng, thử lại và tiếp tục - không cần can thiệp thủ công.

Cấp độ node: Đầu ra lỗi

Từ n8n 2.0 trở đi, mỗi node đều có đầu ra lỗi. Nếu một node bị lỗi (ngay cả sau khi thử lại), đầu ra lỗi sẽ gửi mục bị lỗi đến một đường dẫn khác. Bạn có thể:

  • Chuyển hướng lỗi đến thông báo Slack: "Email classifier failed for message from {{$json.from}}"
  • Ghi nhật ký lỗi vào Google Sheet để xem xét sau
  • Gửi mục đến quy trình làm việc dự phòng

Điều này rất quan trọng đối với các quy trình làm việc AI. LLM đôi khi trả về kết quả không mong muốn, JSON bị lỗi hoặc hết thời gian chờ - việc bắt các lỗi này sẽ ngăn toàn bộ quy trình làm việc của bạn bị sập.

Cấp độ workflow: Error Workflow

n8n có tính năng Error Workflow toàn cục. Tạo một quy trình làm việc riêng biệt được kích hoạt bất cứ khi nào một workflow trong phiên bản của bạn bị lỗi. Nó nhận được thông tin chi tiết về lỗi, tên quy trình làm việc và ID thực thi.

Một quy trình xử lý lỗi điển hình sẽ gửi một tin nhắn Slack:

🚨 Quy trình "Phân loại email bằng AI" thất bại
Lỗi: API OpenAI trả về mã lỗi 429 (giới hạn số lần thực thi)
Mã thực thi: #48293
Thời gian: 2026-03-05 14:23:00

Thiết lập điều này trong Settings → Workflows → Error Workflow.

Kiểm tra nhanh: Quy trình làm việc RAG của bạn bị lỗi do kho lưu trữ vector Supabase tạm thời không khả dụng. Bạn nên thiết lập xử lý lỗi nào?

Câu trả lời: Ba lớp. (1) Retry On Fail đối với node Supabase - với 3 lần thử lại và lùi thời gian theo cấp số nhân. (2) Một thông báo lỗi trên node Supabase chuyển hướng đến phản hồi dự phòng: "I'm having trouble accessing the knowledge base right now. Please try again in a moment" (Tôi đang gặp sự cố khi truy cập cơ sở tri thức ngay bây giờ. Vui lòng thử lại sau một lát). (3) Quy trình xử lý lỗi toàn cục gửi cảnh báo Slack để bạn biết kho lưu trữ vector đang gặp sự cố.

Chế độ hàng đợi: Xử lý nhiều người dùng đồng thời

Theo mặc định, n8n chạy các quy trình làm việc theo trình tự - mỗi lần thực hiện một quy trình. Người dùng thứ hai sẽ đợi cho đến khi người dùng đầu tiên hoàn thành. Đối với các quy trình làm việc AI mất 5 - 10 giây mỗi lần thực hiện, điều này tạo ra những điểm nghẽn gây khó chịu.

Chế độ hàng đợi khắc phục điều này bằng cách sử dụng Redis làm trung gian truyền tin:

  1. Các trình kích hoạt quy trình công việc tạo ra "công việc" trong hàng đợi Redis
  2. Các tiến trình xử lý sẽ nhận công việc và thực thi chúng đồng thời
  3. Nhiều tiến trình xử lý có thể chạy trên cùng một máy hoặc trên nhiều máy chủ

Để bật chế độ hàng đợi (tự host):

# Trong các biến môi trường của bạn
EXECUTIONS_MODE=queue
QUEUE_BULL_REDIS_HOST=localhost
QUEUE_BULL_REDIS_PORT=6379

n8n Cloud tự động bật chế độ hàng đợi - không cần cấu hình.

Lưu ý quan trọng: Hãy nhớ từ bài học 5 rằng Simple Memory không hoạt động ở chế độ hàng đợi. Khi bạn chuyển sang chế độ hàng đợi, bất kỳ quy trình công việc nào sử dụng Simple Memory sẽ mất lịch sử hội thoại giữa các tin nhắn. Đây là lý do tại sao PostgreSQL hoặc Redis Memory là cần thiết cho chatbot sản xuất.

Quản lý thông tin xác thực

Hệ thống thông tin xác thực của n8n mã hóa các thông tin bí mật khi lưu trữ. Nhưng vẫn có những thực hành cần tuân theo:

Nên làm

  • Sử dụng các node thông tin xác thực của n8n cho mọi dịch vụ (OpenAI, Gmail, Slack, Supabase)
  • Xuất quy trình công việc sang Git - dữ liệu thông tin xác thực được tự động loại trừ
  • Xoay vòng API key định kỳ
  • Sử dụng tính năng External Secrets cho môi trường doanh nghiệp (AWS Secrets Manager, HashiCorp Vault)

Không nên làm

  • Hardcode API key trong các node Code hoặc biểu thức
  • Chia sẻ các bản xuất quy trình công việc có chứa thông tin bí mật trong những node Set
  • Sử dụng cùng một API key trên môi trường phát triển, thử nghiệm và sản xuất

Tách biệt môi trường: Đối với các triển khai nghiêm túc, hãy chạy những phiên bản n8n riêng biệt cho môi trường phát triển và sản xuất. Xuất quy trình làm việc từ môi trường phát triển dưới dạng JSON, nhập vào môi trường sản xuất và cấu hình thông tin xác thực sản xuất riêng biệt. Điều này giúp ngăn chặn việc rò rỉ thông tin xác thực thử nghiệm và việc sử dụng thông tin xác thực sản xuất trong các thử nghiệm.

Kiểm tra nhanh: Một thành viên trong nhóm muốn chia sẻ một quy trình làm việc bao gồm thông tin xác thực OpenAI. Họ xuất quy trình làm việc dưới dạng JSON và gửi qua email. Điều này có an toàn không?

Câu trả lời: Có, đối với chính thông tin xác thực - n8n loại trừ dữ liệu thông tin xác thực khỏi những bản xuất theo thiết kế. Nhưng hãy kiểm tra kỹ xem không ai hardcode các key trong những node Code hoặc các trường node Set. Người nhận sẽ cần cấu hình thông tin xác thực OpenAI của riêng họ và kết nối nó với quy trình làm việc đã nhập.

Giám sát và ghi nhật ký

n8n cung cấp nhật ký thực thi theo mặc định - mỗi lần chạy quy trình làm việc đều được ghi lại với đầu vào, đầu ra và thời gian. Nhưng đối với các quy trình làm việc AI sản xuất, bạn cần nhiều hơn:

Những gì cần giám sát:

Số liệuTại sao điều đó lại quan trọngCách theo dõi
Thời gian thực thiViệc gọi AI diễn ra chậm - hãy phát hiện khi nào chúng trở nên chậm hơnNhật ký thực thi n8n (tích hợp sẵn)
Tỷ lệ thành côngNắm bắt được khi nào tỷ lệ lỗi tăng đột biếnQuy trình xử lý lỗi + bảng điều khiển
Sử dụng tokenKiểm soát chi phí LLMBảng điều khiển hoặc phần mềm trung gian của OpenAI
Sử dụng bộ nhớLịch sử hội thoại dài tiêu tốn nhiều RAMGiám sát máy chủ
Độ sâu hàng đợiPhát hiện sự tích tụ hàng tồn đọngGiám sát Redis

Thiết lập giám sát đơn giản:

  1. Tạo Error Workflow (gửi cảnh báo đến Slack/email)
  2. Thêm node "ghi nhật ký" ở cuối các quy trình quan trọng để ghi dữ liệu thực thi vào Google Sheets hoặc cơ sở dữ liệu
  3. Kiểm tra danh sách thực thi n8n hàng ngày để tìm các lần chạy thất bại

Để giám sát nâng cao, n8n hỗ trợ xuất số liệu Prometheus và tích hợp Sentry.

Sự tham gia của con người

Một số quyết định của AI không nên được tự động hóa hoàn toàn. n8n hỗ trợ mô hình "gửi và chờ" để con người giám sát:

  1. AI Agent phân loại email là "khẩn cấp - chuyển cho bộ phận pháp lý"
  2. Thay vì tự động gửi cho bộ phận pháp lý, quy trình sẽ gửi một tin nhắn Slack: "AI muốn chuyển vấn đề này cho bộ phận pháp lý. Chấp thuận hay từ chối?"
  3. Quy trình sẽ chờ người dùng nhấp vào "Chấp thuận" hoặc "Từ chối"
  4. Dựa trên phản hồi, quy trình sẽ tiếp tục hoặc bị hủy bỏ

Sử dụng tính năng Send Message and Wait for Response (có sẵn trong Slack, Email và các node khác). Điều này đặc biệt quan trọng đối với các quyết định AI có tính rủi ro cao - phê duyệt chi phí, gửi thông báo bên ngoài hoặc chỉnh sửa dữ liệu.

Tổng hợp lại: Danh sách kiểm tra sản xuất

Trước khi kích hoạt bất kỳ quy trình làm việc AI nào cho người dùng thực:

Xử lý lỗi:
- [ ] Chức năng Retry on fail được bật cho tất cả các node API bên ngoài (3 lần thử lại, lùi thời gian theo cấp số nhân)
- [ ] Đầu ra lỗi được cấu hình trên các node AI với phản hồi dự phòng
- [ ] Quy trình xử lý lỗi toàn cầu được thiết lập với cảnh báo qua Slack/email

Hiệu suất:
- [ ] Chế độ hàng đợi được bật (tự host) hoặc được xác nhận (Cloud)
- [ ] Loại bộ nhớ là PostgreSQL hoặc Redis (KHÔNG phải Simple Memory)
- [ ] Window Buffer được cấu hình để giới hạn lịch sử hội thoại

Bảo mật:
- [ ] Tất cả thông tin xác thực được lưu trữ trong hệ thống thông tin xác thực của n8n
- [ ] Không có API key được hardcode trong các node Code hoặc biểu thức
- [ ] JSON quy trình làm việc được xem xét trước khi cam kết với Git

Giám sát:
- [ ] Nhật ký thực thi được lưu giữ để khắc phục sự cố
- [ ] Việc sử dụng token được theo dõi (kiểm tra bảng điều khiển nhà cung cấp LLM hàng tuần)
- [ ] Sự tham gia của con người trong các quyết định quan trọng

Những điểm chính cần ghi nhớ

  • Sử dụng ba lớp xử lý lỗi: Thử lại node, đầu ra lỗi và quy trình xử lý lỗi toàn cục
  • Chế độ hàng đợi (với Redis) cho phép thực thi đồng thời - cần thiết cho triển khai sản xuất đa người dùng
  • Không bao giờ hardcode thông tin đăng nhập - sử dụng hệ thống thông tin đăng nhập của n8n và xuất quy trình làm việc một cách an toàn sang Git
  • Simple Memory bị lỗi ở chế độ hàng đợi - luôn sử dụng PostgreSQL hoặc Redis Memory trong môi trường sản xuất
  • Giám sát việc sử dụng token - các vòng lặp của AI agent có thể tiêu thụ token nhanh hơn bạn nghĩ
  • Thêm sự tham gia của con người vào quy trình cho các quyết định quan trọng bằng cách sử dụng mô hình gửi và chờ
  • Câu 1:

    Một nhà phát triển xuất JSON quy trình công việc để cam kết với Git. Họ nên kiểm tra rủi ro bảo mật nào?

    GIẢI THÍCH:

    n8n cố ý loại trừ dữ liệu thông tin xác thực khỏi việc xuất quy trình công việc - đó là thiết kế an toàn. Rủi ro thực sự là khi các nhà phát triển hardcode những API key trực tiếp trong các node Code, node HTTP Request hoặc trường biểu thức thay vì sử dụng hệ thống thông tin xác thực của n8n. Luôn sử dụng các node xác thực, không bao giờ hardcode các thông tin bí mật và xem lại những file JSON quy trình làm việc trước khi lưu lại.

  • Câu 2:

    ạn có 5 quy trình làm việc AI đang chạy trên một phiên bản n8n duy nhất. Người dùng báo cáo rằng phản hồi chậm trong giờ cao điểm. Bạn nên thay đổi điều gì?

    GIẢI THÍCH:

    Theo mặc định, n8n chạy các tác vụ tuần tự (từng tác vụ một). Chế độ hàng đợi với Redis phân phối các tác vụ trên những tiến trình worker, cho phép xử lý đồng thời. Đây là cấu hình sản xuất được n8n khuyến nghị. Một phiên bản n8n duy nhất có thể xử lý khoảng 100 tác vụ đồng thời ở chế độ hàng đợi. Để xử lý nhiều hơn, hãy thêm các phiên bản worker bổ sung.

  • Câu 3:

    Quy trình làm việc AI Agent của bạn bị lỗi khi API của OpenAI trả về lỗi giới hạn tốc độ. Cách tốt nhất để xử lý vấn đề này là gì?

    GIẢI THÍCH:

    Lỗi giới hạn tốc độ (HTTP 429) chỉ là tạm thời - API đang yêu cầu bạn giảm tốc độ, chứ không phải là có gì đó bị hỏng. Độ trễ tăng dần sẽ thử lại yêu cầu với độ trễ tăng dần, cho phép API có thời gian khôi phục. n8n có cài đặt thử lại tích hợp trên mỗi node: Kích hoạt 'Retry On Fail', đặt số lần thử lại tối đa là 3 và cấu hình độ trễ tăng dần. Việc chuyển đổi nhà cung cấp hoặc nâng cấp gói API có thể giúp ích về lâu dài nhưng không khắc phục được lỗi ngay lập tức.

Thứ Ba, 14/04/2026 14:00
52 👨 32
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
    ❖ AI Automation Workflows