AI Automation

Dựng AI Agent đầu tiên trên n8n với LLM tool và memory

Bạn có một VPS chạy n8n, muốn nâng cấp workflow từ "kịch bản cố định" lên "AI biết suy nghĩ và hành động"? Bài này sẽ dẫn bạn dựng AI Agent đầu tiên trên n8n, một workflow có khả năng gọi LLM tool (công cụ nó tự quyết định dùng) và memory (nhớ lại ngữ cảnh giữa các lần tương tác). Tôi sẽ làm trên n8n tự-host tại VPS Ubuntu 24.04, dùng Docker Compose.

Yêu cầu trước khi bắt đầu

  • VPS chạy Ubuntu 24.04 LTS đã cài Docker và Docker Compose v2 (xem lại bài "Cài Docker trên Ubuntu 24.04").
  • n8n đang chạy ổn định qua Docker (tôi dùng bản 1.69+, kiểm tra bản LTS mới nhất trên trang chủ).
  • API key của một LLM provider: OpenAI (GPT-4o), Anthropic (Claude 3.5 Sonnet) hoặc bất kỳ model nào n8n hỗ trợ. Tôi dùng OpenAI làm ví dụ.
  • User sudo non-root, quyền truy cập Docker.

Vì sao cần AI Agent thay vì workflow tuyến tính?

Workflow n8n truyền thống chạy theo luồng cố định: trigger → node A → node B → output. Khi gặp tình huống bất ngờ (đầu vào không khớp định dạng, cần quyết định động), workflow dễ gãy. AI Agent là workflow có một node LLM đóng vai trò "bộ não": nó nhận task, tự phân tích, và gọi các tool (HTTP request, search, database query, n8n sub-workflow) để hoàn thành mục tiêu. Nó còn duy trì memory, lịch sử hội thoại để không quên bối cảnh.

Ví dụ thực tế: một agent hỗ trợ kỹ thuật có thể tra cứu tình trạng VPS, tìm log lỗi, gửi cảnh báo Telegram, tất cả do agent tự quyết định thứ tự thực hiện.

Bước 1 - Cấu hình n8n để bật chức năng AI Agent

Mặc định, n8n bản Docker image chính thức đã hỗ trợ AI Agent (node "AI Agent" có sẵn). Trước khi dùng, hãy đảm bảo các biến môi trường cho LLM được set đúng. Nếu bạn chạy n8n qua Docker Compose, thêm vào file docker-compose.yml (phần environment của service n8n):

environment:
  - N8N_AI_ENABLED=true
  - OPENAI_API_KEY=sk-your-key-here
  # Nếu dùng Anthropic:
  # - ANTHROPIC_API_KEY=sk-ant-your-key-here

Recreate container: docker compose up -d. Kiểm tra n8n đã nhận biến: vào Settings → Environment Variables, xem có dòng OPENAI_API_KEY không.

Bước 2 - Tạo workflow AI Agent cơ bản (ReAct pattern)

Vào n8n Editor, tạo workflow mới. Kéo các node sau:

  1. Webhook node (trigger): đặt method POST, path /agent. Copy URL webhook để dùng sau.
  2. AI Agent node: đây là node chính. Trong tab "Connector", chọn OpenAI. Trong "Prompt", viết system prompt hướng dẫn agent hành xử: "Bạn là trợ lý kỹ thuật. Bạn có tool tra cứu thông tin VPS. Luôn trả lời bằng tiếng Việt. Nếu cần thông tin thêm, hãy dùng tool.".
  3. Trong tab "Memory", chọn Window Buffer Memory (size = 5, nhớ 5 lượt trò chuyện gần nhất).
  4. Trong tab "Tools", thêm một HTTP Request node: gọi API giả lập kiểm tra tình trạng server (ví dụ: GET đến https://httpbin.org/delay/1 để test).

Kết nối: Webhook → AI Agent → Respond to Webhook (tự động thêm). Workflow xong, save và active.

Verify ngay: dùng curl từ terminal VPS để test:

curl -X POST https://your-n8n-domain.com/webhook/agent \
  -H "Content-Type: application/json" \
  -d '{"message":"Kiểm tra tình trạng server của tôi"}'

Bạn sẽ thấy agent trả lời sau vài giây, kèm kết quả từ HTTP Request tool.

Bước 3 - Thêm tool thật: gọi API server status

Tool thật thay vì httpbin: tạo một endpoint đơn giản trên chính VPS (hoặc dùng API của dịch vụ giám sát). Ví dụ: dùng Execute Command node chạy lệnh uptime && free -h (cần cấu hình Docker cho phép execute, thêm N8N_EXECUTOR_TIMEOUT=30).

Cấu hình tool trong AI Agent: tab Tools → "Add Tool" → chọn "n8n Tool". Chọn sub-workflow (bạn tạo workflow riêng chỉ chứa Execute Command và output). Đặt tên tool là get_server_status. Trong system prompt của AI Agent, mô tả: Tool 'get_server_status': trả về thông tin CPU, RAM, uptime của VPS.. Agent sẽ tự gọi tool này khi người dùng hỏi về trạng thái.

Bước 4 - Bật memory để agent nhớ ngữ cảnh

Window Buffer Memory lưu toàn bộ lịch sử trong bộ nhớ workflow, dễ mất khi workflow chạy lại. Để bền vững hơn, dùng PostgreSQL Memory hoặc Redis Memory (nếu đã có Redis trong stack).

Ví dụ cấu hình PostgreSQL Memory:

Trong AI Agent node, tab "Memory": chọn "Postgres Chat Memory".
Điền connection string: postgresql://user:pass@host:5432/n8n_agent_memory
Table name mặc định: n8n_chat_memory

Kiểm tra: nói "câu đầu tiên" → agent trả lời. Sau đó nói "nhắc lại câu trước" → agent phải nhắc lại được (nếu memory hoạt động).

Bước 5 - Mở rộng: multi-tool + branching

Một agent mạnh cần nhiều tool. Tạo thêm:

  • Webhook tool: gửi cảnh báo Telegram.
  • Database tool: truy vấn PostgreSQL (dùng node Postgres).
  • n8n Workflow tool: gọi một workflow con (sub-workflow) xử lý logic phức tạp như gửi email, tạo ticket.

Thêm tất cả vào tab Tools của AI Agent node. Agent sẽ tự chọn tool phù hợp dựa trên input. Bạn có thể dùng Switch node để routing sau agent nếu cần fallback.

Xử lý lỗi thường gặp

Lỗi "Agent không gọi tool": system prompt chưa mô tả tool đủ chi tiết. Viết rõ ràng: "Khi người dùng hỏi về tình trạng server, hãy gọi get_server_status."

Lỗi "Memory không nhớ": kiểm tra kết nối PostgreSQL/Redis. Log lỗi ở n8n: docker logs n8n_container_name | grep -i memory.

Lỗi "Tool timeout": tăng N8N_EXECUTOR_TIMEOUT (mặc định 30s). Nếu tool gọi API chậm, set timeout phù hợp.

Câu hỏi thường gặp

AI Agent trên n8n có cần GPU không?

Không. n8n gọi LLM qua API, mọi tính toán diễn ra trên cloud của provider. VPS chỉ cần RAM đủ để chạy n8n và Docker (khuyến nghị 2 GB RAM cho vài workflow nhỏ, 4 GB trở lên nếu chạy nhiều agent song song).

Tôi có thể dùng model local (Ollama) thay vì OpenAI không?

Có. n8n hỗ trợ kết nối Ollama qua node AI Agent (chọn "Ollama" làm connector). Cần chạy Ollama riêng trên VPS, tham khảo bài "Tự dùng AI chatbot riêng với Ollama".

Memory PostgreSQL có mất dữ liệu khi restart container không?

Không nếu volume PostgreSQL được persist. Dùng Docker volume hoặc bind mount cho container PostgreSQL. Nếu dùng SQLite mặc định của n8n, memory sẽ mất.

Bao nhiêu tool là tối đa trong một agent?

Không giới hạn cứng, nhưng càng nhiều tool agent càng chậm (do LLM phải đọc danh sách tool mỗi lần). Tôi khuyên dưới 10 tool cho workflow phản hồi nhanh.

Bài viết liên quan

Lưu ý: Bài viết mang tính tham khảo, tổng hợp kiến thức chung. Mỗi hệ thống, hạ tầng và nhu cầu có đặc thù riêng, nên kiểm thử trong môi trường an toàn và tham vấn kỹ sư trước khi triển khai thực tế.