Nếu bạn quan tâm đến tự động hóa đủ lâu, rất có thể n8n đã trở thành một phần quen thuộc trong bộ công cụ hằng ngày của bạn. Với mình cũng vậy. n8n cực kỳ mạnh ở khả năng điều phối workflow, kết nối các dịch vụ và xử lý luồng dữ liệu. Nhưng càng đi sâu vào những quy trình phức tạp, mình càng nhận ra một giới hạn: n8n làm rất tốt vai trò “nhạc trưởng”, nhưng lại thiếu đi một lớp “trí tuệ” đủ linh hoạt để tương tác sâu với môi trường hệ thống cục bộ.
Mọi thứ bắt đầu thay đổi khi mình thử kết hợp n8n với Claude Code. Đây không đơn thuần là chuyện gọi thêm một API AI cho đẹp workflow. Thực chất, mình đang biến n8n thành một bộ điều khiển, ra lệnh cho các AI Agent chạy trực tiếp trên terminal của server thông qua SSH. Từ đó, một khả năng mới được mở ra: n8n không chỉ chạy workflow, mà còn kích hoạt và điều phối kỹ năng của Claude Agent ngay trong môi trường thật.
Trong bài viết này, mình sẽ chia sẻ chi tiết cách mình thiết lập, cấu hình và tối ưu sự kết hợp giữa n8n và Claude Code thông qua SSH – một cách làm đơn giản, nhưng cực hiệu quả.
Vì sao nên kết hợp n8n và Claude Code?
Trước khi đi vào kỹ thuật, có lẽ nên dừng lại một chút để nói rõ: điều gì khiến sự kết hợp này trở nên đáng thử?
Khi tích hợp Claude Code vào n8n, bạn không còn chỉ “gửi prompt – nhận text”. Thay vào đó, bạn có được ba lợi ích rất lớn:
- Ngữ cảnh (Context): Claude Code chạy trực tiếp trên terminal – có thể là server, VPS hoặc máy cá nhân. Điều đó đồng nghĩa với việc nó nhìn thấy file, thư mục, log và trạng thái hệ thống tại chỗ. n8n có thể yêu cầu Claude kiểm tra một file log cụ thể, phân tích cấu trúc project, hay đọc nội dung một script – những việc mà API AI thông thường không thể làm một cách tự nhiên.
- Khả năng thực thi Agent (Agents & Skills): Claude Code có thể tự chia nhỏ vấn đề, triển khai các agent con để xử lý từng phần công việc (ví dụ: một agent kiểm tra mạng, một agent rà soát bảo mật). n8n chỉ cần đưa ra yêu cầu ở mức cao, phần phức tạp phía dưới được Claude xử lý.
- Quản lý phiên làm việc (Session Management): Đây là điểm mình đánh giá cao nhất. Việc duy trì một session liên tục cho phép n8n và Claude “trò chuyện” qua lại nhiều bước, giữ được ngữ cảnh xuyên suốt. Nhờ đó, bạn có thể xây dựng chatbot thông minh, hoặc các quy trình xử lý sự cố nhiều vòng như một kỹ sư thật đang ngồi trước terminal.
Chuẩn bị môi trường
Để bắt đầu, bạn chỉ cần ba thành phần chính:
- Một instance n8n: Mình khuyến nghị self-host n8n trên VPS (DigitalOcean, Vultr, v.v.) hoặc trên homelab để có toàn quyền kiểm soát và hiệu năng ổn định.
- Một AI Terminal: Trong bài này, mình sử dụng Claude Code (cần gói Pro). Ngoài ra, bạn có thể cân nhắc Gemini CLI hoặc Codex nếu muốn thử các lựa chọn khác.
- Một cốc cà phê Homey: Vì phần tiếp theo thực sự khá hay đấy.
Cài Claude Code ở đâu?
Câu trả lời ngắn gọn là: ở bất kỳ đâu bạn muốn.
Claude Code có thể chạy trên Linux, macOS, hoặc Windows thông qua WSL. Bạn có thể:
- Cài chung trên server đang chạy n8n.
- Trên một Raspberry Pi trong mạng nội bộ.
- Hoặc như mình, cài trên một Ubuntu server riêng để quản lý tài nguyên tập trung.
Điểm quan trọng nhất là: n8n sẽ kết nối tới máy chạy Claude Code thông qua SSH.
Đây là cách làm gọn gàng, ổn định và “đúng chất hệ thống” hơn rất nhiều so với việc dựng thêm các HTTP wrapper phức tạp.
Thiết lập kết nối SSH trong n8n
Quy trình này đơn giản đến mức ban đầu mình cũng hơi nghi ngờ. Nhưng thực tế cho thấy nó hoạt động rất ổn định.
Bước 1: Tạo SSH Node trong n8n
Trong workflow, thêm một node SSH và chọn action Execute Command.
Bước 2: Cấu hình Credentials
Thiết lập thông tin đăng nhập SSH để n8n truy cập được vào server chạy Claude Code:
- Host: IP public hoặc IP nội bộ (LAN/VPN).
- Username & Password / Private Key: thông tin SSH tương ứng.
Sau đó, hãy test kết nối để chắc chắn mọi thứ hoạt động.
Bước 3: Kiểm tra lệnh cơ bản
Trước tiên, thử một lệnh đơn giản như:
hostname
Nếu node trả về tên máy, kết nối đã ổn.
Tiếp theo, kiểm tra Claude Code:
claude --version
Nếu thấy version được trả về, bạn đã sẵn sàng.
Sử dụng Claude Code qua n8n: từ cơ bản đến nâng cao
Chạy ở chế độ headless
Để Claude trả kết quả trực tiếp cho n8n mà không cần giao diện tương tác, hãy dùng flag -p (print).
Ví dụ:
claude -p "Tại sao lập trình viên lại thích uống cà phê?"
n8n sẽ gửi lệnh qua SSH, Claude xử lý và trả text về ngay trong output node.
Tận dụng ngữ cảnh hệ thống
Đây là phần khiến mọi thứ thực sự khác biệt.
Vì Claude chạy trong terminal thật, bạn có thể điều hướng thư mục trước khi gọi nó:
cd /path/to/my/project && claude -p "Phân tích file main.py trong thư mục hiện tại và cho tôi biết nó làm gì."
Claude “nhìn thấy” file vì nó đang đứng đúng thư mục đó. Điều này gần như không thể làm một cách tự động với AI qua giao diện web.
Quản lý session – giữ hội thoại liên tục
Nếu chỉ hỏi một câu rồi kết thúc, bạn đang bỏ phí rất nhiều tiềm năng. Claude Code cho phép duy trì session bằng Session ID.
Cách làm cơ bản:
- Tạo Session ID: Dùng node Code trong n8n:
return { json: { session_id: crypto.randomUUID() } };
- Gọi Claude với Session ID
claude -p "Kiểm tra trạng thái Wi-Fi hiện tại" --session-id {{ $json.session_id }}
- Tiếp tục hội thoại
claude -p "Dựa trên kết quả trên, hãy thử khởi động lại service mạng" --session-id {{ $json.session_id }}
Claude sẽ nhớ toàn bộ ngữ cảnh trước đó, giống như bạn đang nói chuyện với cùng một kỹ sư IT xuyên suốt phiên làm việc.
Ứng dụng thực tế: “Phòng IT ảo” trên Telegram
Từ cơ chế session này, mình xây dựng một workflow mà mình dùng gần như hằng ngày: tương tác với Claude Code qua Telegram.
Luồng hoạt động:
- Mình gửi yêu cầu trên Telegram (ví dụ: “Deploy 2 agent để so sánh Vim và Nano”).
- n8n nhận webhook, tạo Session ID.
- n8n gửi lệnh qua SSH.
- Claude thực thi và trả kết quả.
- n8n đẩy kết quả về Telegram.
- Nếu mình bấm “Continue” và gửi thêm yêu cầu, workflow chạy tiếp với cùng Session ID.
Nhờ vậy, mình có thể debug server, kiểm tra mạng, hay phân tích vấn đề phức tạp ngay trên điện thoại – cảm giác gần như đang ngồi trước terminal.
——
Việc kết hợp n8n và Claude Code qua SSH đã thay đổi hoàn toàn cách mình nhìn về tự động hóa:
- n8n đóng vai trò người điều phối, quản lý logic và luồng dữ liệu.
- Claude Code là “phòng IT” phía sau, trực tiếp thao tác với hệ thống và triển khai agent.
Thay vì xây hàng chục node phức tạp, giờ đây mình chỉ cần một prompt đủ tốt. Claude sẽ tự chia nhỏ vấn đề và xử lý phần còn lại.
Nếu bạn thích thử nghiệm, hãy bắt đầu thật đơn giản: một lệnh hostname. Từ đó, từng bước mở rộng tới việc quản lý server qua Telegram hay các workflow thông minh hơn. Giới hạn thực sự của mô hình này nằm ở mức độ sáng tạo của bạn – không phải ở công cụ.
Top comments (0)