Cover Image

🕵️ Xây dựng AI Agent với các Tools tùy chỉnh

Tổng quan

AI Agent trong n8n không chỉ “trả lời câu hỏi” — nó tự quyết định cần dùng công cụ nào, gọi API nào, và thực hiện nhiều bước để hoàn thành một mục tiêu phức tạp. Đây là bước nhảy vọt từ “chatbot” sang “trợ lý tự hành”.


🤖 Sự khác biệt: LLM đơn giản vs AI Agent

graph TD
    subgraph Simple["💬 LLM đơn giản"]
        U1["User: Thời tiết HN hôm nay?"] --> L1["LLM"]
        L1 --> R1["❌ Xin lỗi, tôi không biết\n(dữ liệu cũ từ training)"]
    end

    subgraph Agent["🕵️ AI Agent"]
        U2["User: Thời tiết HN hôm nay?"] --> A["AI Agent\n(Suy nghĩ)"]
        A -->|Cần dữ liệu thực| T1["🔧 Tool: Weather API"]
        T1 --> A
        A --> R2["✅ Hà Nội hôm nay 32°C,\nnắng, độ ẩm 78%"]
    end

🏗️ Cấu trúc AI Agent trong n8n

graph LR
    I["📥 Input\n(từ user)"] --> AG["🧠 AI Agent Node\n(LLM + Reasoning)"]
    AG <-->|Sử dụng| T1["🌐 HTTP Request Tool\n(gọi API ngoài)"]
    AG <-->|Sử dụng| T2["🔍 Google Search Tool"]
    AG <-->|Sử dụng| T3["📊 Google Sheets Tool\n(đọc/ghi dữ liệu)"]
    AG <-->|Sử dụng| T4["💻 Code Tool\n(thực thi code)"]
    AG --> O["📤 Output\n(câu trả lời cuối cùng)"]

⚙️ Thiết lập AI Agent Node

Các thành phần bắt buộc

Thành phầnVai tròNode dùng
Chat ModelBộ não — quyết định hành độngOpenAI / Anthropic / Gemini
ToolsCông cụ Agent có thể sử dụngHTTP Request, Code, Search…
Memory (tùy chọn)Ghi nhớ lịch sử hội thoạiWindow Buffer Memory

Các loại Agent

LoạiĐặc điểmDùng khi nào
ReAct AgentReasoning + Acting theo vòng lặpHầu hết use cases
Plan-and-ExecuteLập kế hoạch trước, thực hiện sauTasks phức tạp nhiều bước
OpenAI FunctionsDùng function calling của OpenAICần độ chính xác cao

🔧 Tạo Custom Tool cho Agent

Tool 1: Tra cứu thông tin từ Google Sheets

Kết nối Google Sheets Tool → Agent có thể đọc/tìm kiếm dữ liệu từ bảng tính của bạn.

Cấu hình:

  • Tool Name: search_product_database
  • Description: Tìm kiếm thông tin sản phẩm trong database. Input: tên sản phẩm (string)
  • Operation: Get rows with filter

Tool 2: Gửi email qua Gmail

Tool Name: send_email
Description: Gửi email đến địa chỉ được chỉ định. 
Input JSON: { "to": "email@example.com", "subject": "...", "body": "..." }

Tool 3: Gọi Custom API

Dùng HTTP Request Tool để tạo tool gọi bất kỳ API nào:

  • Name: get_weather
  • Description: Lấy thông tin thời tiết hiện tại. Input: tên thành phố
  • URL: https://api.openweathermap.org/data/2.5/weather?q={{ $fromAI("city") }}&appid=YOUR_KEY

🎯 Ví dụ: Agent Hỗ trợ Khách hàng

Hệ thống:

Bạn là trợ lý hỗ trợ khách hàng của cửa hàng ABC.
Bạn có thể:
1. Tra cứu thông tin đơn hàng (dùng tool: check_order)
2. Kiểm tra tồn kho sản phẩm (dùng tool: check_inventory)  
3. Tạo ticket hỗ trợ (dùng tool: create_support_ticket)

Luôn xác nhận thông tin với khách trước khi thực hiện bất kỳ hành động nào.

Luồng hoạt động:

sequenceDiagram
    participant C as Khách hàng
    participant A as AI Agent
    participant DB as Database

    C->>A: "Đơn hàng #1234 của tôi đang ở đâu?"
    A->>DB: check_order(order_id="1234")
    DB-->>A: { status: "shipping", location: "Hà Nội" }
    A->>C: "Đơn hàng #1234 đang được vận chuyển,\nhiện tại đang ở Hà Nội và sẽ đến trong 1-2 ngày."

⚠️ Lưu ý khi xây dựng AI Agent

Kiểm soát quyền của Agent

Agent có thể thực hiện các hành động thực tế (gửi email, ghi dữ liệu, gọi API thanh toán…). Hãy giới hạn tools chỉ ở mức cần thiết và thêm bước xác nhận cho các hành động quan trọng.

Viết Tool Description thật rõ ràng

Agent quyết định dùng tool nào dựa vào têndescription của tool. Description phải mô tả rõ: tool làm gì, input cần gì, output trả về gì. Đây là yếu tố quan trọng nhất để Agent hoạt động đúng.