Bài viết này sẽ hướng dẫn bạn từ A-Z cách setup và sử dụng kết hợp OpenClaw, Hermes Agent với 9router - một trạm trung chuyển giúp bẻ lái các truy vấn API giúp bạn có thể sử dụng các API LLM hoàn toàn miễn phí từ đó tiết kiệm được rất nhiều chi phí vận hành các AI agent.
Trước hết nếu bạn chưa biết cách cài đặt OpenClaw và Hermes AI agent, có thể tham khảo các bài viết sau:
OpenClaw AI là gì? Cách cài trợ lý ảo trên VPS Ubuntu
Hướng dẫn cài đặt Hermes Agent trên Linux Ubuntu: kẻ thách thức OpenClaw
1. 9Router là gì?
Nói một cách dễ hiểu, 9Router là một local proxy server chạy trực tiếp trên máy của bạn, đóng vai trò như một "trạm trung chuyển thông minh" đứng giữa các AI coding tool (như Claude Code, Cursor, Cline, OpenClaw, Hermes...) và các nhà cung cấp AI (Anthropic, OpenAI, Gemini, GLM...).
Khi sử dụng 9Router, thay vì trỏ thẳng tới nhà cung cấp, bạn sẽ cấu hình tool của mình trỏ vào địa chỉ local của 9Router (http://localhost:20128/v1). Lúc này, 9Router sẽ gánh vác toàn bộ phần việc như Dịch định dạng (Format translation), Theo dõi hạn mức (Quota tracking) & Tự động làm mới Token, tự động chuyển sang provider tiếp theo nếu cần.

Nhờ cơ chế Fallback thông minh này, hệ thống AI Agent của bạn sẽ không bao giờ ngừng hoạt động, tự động duy trì công việc mà ví tiền của bạn thì vẫn an toàn tuyệt đối!
2. Hướng dẫn cài đặt và cấu hình 9Router
Bước 1: Kiểm tra VPS đã có Node.js chưa
Chạy:
node -v
npm -v

Nếu hiện version v20.x.x, v22.x.x, và npm ... thì bỏ qua bước cài Node.
Nếu báo command not found, cài Node.js như sau:
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt install -y nodejs
Sau đó kiểm tra lại:
node -v
npm -v
Bước 2: Cài 9Router bằng npm
Chạy:
npm install -g 9router

Tiếp theo ta khởi động 9router với lệnh sau:
9router

Vì bạn đang ở VPS không có browser thì chỉ cần thấy dòng này là được:
Server: http://localhost:20128
Bước 3: Mở dashboard 9Router trên WebUI
Vì 9Router chạy trên VPS, còn bạn dùng máy cá nhân, cách dễ và an toàn nhất là dùng SSH tunnel.
Trên máy tính cá nhân của bạn, mở terminal / CMD / PowerShell và chạy:
ssh -L 20128:127.0.0.1:20128 root@IP_VPS_CUA_BAN
Ví dụ:

Sau đó trên trình duyệt máy bạn mở:
http://localhost:20128
Bạn sẽ thấy dashboard 9Router.

Lưu ý: Để vào được WebUI 9router thì bạn phải luôn giữ kết nối giữa SSH tunel của máy bạn với VPS. Trường hợp bị disconnect thường xuyên quá thì tạo SSH tunnel có keepalive với lệnh:
ssh -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -N -L 20128:127.0.0.1:20128 root@IP_VPS_CUA_BAN

Giải thích ngắn:
- ServerAliveInterval=30: cứ 30 giây gửi tín hiệu giữ kết nối.
- ServerAliveCountMax=3: nếu 3 lần liên tiếp không phản hồi thì mới ngắt.
- -N: chỉ mở tunnel, không mở shell SSH. Cửa sổ CMD sẽ đứng im là bình thường.
Không nên mở port 20128 public ra Internet nếu chưa hiểu bảo mật, vì đó là dashboard/API router AI của bạn.
Bước 4: Cấu hình chạy ngầm 9router bằng systemd
Bước này giúp bạn không cần chạy 9router thủ công, VPS reboot thì 9Router cũng tự chạy lại.
Trước tiên, ở cửa sổ VPS đang chạy 9router, bấm: Ctrl + C để dừng phiên chạy thủ công.
Sau đó tạo file service:
nano /etc/systemd/system/9router.service
dán nội dung dưới đây vào:
[Unit]
Description=9Router AI Gateway
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
WorkingDirectory=/root
ExecStart=/root/.local/bin/9router --host 127.0.0.1 --port 20128 --no-browser --tray --skip-update --log
Restart=always
RestartSec=10
Environment=HOME=/root
Environment=PATH=/root/.local/bin:/usr/local/bin:/usr/bin:/bin
[Install]
WantedBy=multi-user.target
Lưu file trong nano: Ctrl + O → Enter → Ctrl + X

Rồi chạy 4 lệnh này:
systemctl daemon-reload
systemctl enable 9router
systemctl start 9router
systemctl status 9router

Nếu thấy dòng: Active: active (running) là 9Router đã chạy ngầm thành công.
Bước 5: Kết nối provider và tạo combos trong 9Router
Trong 9Router Web UI, vào Providers -> Tìm nhóm: Free Tier Providers

Tại đây, các bạn có thể lựa chọn các bên cung cấp free tier để kết nối. Trong bài viết này, TotHost sẽ hướng dẫn bạn kết nối đơn giản với Provider OpenCode Free:
Chọn vào OpenCode Free.
Nhấn dấu “+” để add các model trong phần “Suggested free models” vào Available Models, sau đó nhấn nút “Test” để kiểm tra xem model nào có thể dùng được.

Sau khi đã chọn ra vài model có thể sử dụng được, ta sẽ tạo combo các model để 9router có thể luân phiên điều phối cho AI agent.
Ở menu bên trái, bấm Combos -> chọn Create Combo.

Tiếp đến ta đặt tên cho combo, ở đây mình đặt là: “9router-combo”
Sau đó nhấn “Add model” để thêm các model lúc nãy đã chọn vào combo. Xong xuôi thì nhấn “Create”

Thứ tự sắp xếp các model trong phần này cũng rất quan trọng, vì 9router sẽ chạy model lần lượt từ trên xuống dưới. Nếu có model lỗi thì fallback sang model tiếp theo. Ngoài ra, các bạn không nên chọn Round Robin vì nó sẽ random ngẫu nhiên model mỗi lần chạy, dẫn đến khó kiểm soát chất lượng đầu ra.
Tiếp theo, ta sẽ test xem combo này đã chạy được chưa bằng API local. Trên VPS ta chạy lệnh:
curl http://127.0.0.1:20128/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "9router-combo",
"messages": [
{
"role": "user",
"content": "Xin chào, hãy trả lời bằng tiếng Việt một câu ngắn."
}
]
}'
Nếu thành công, nó sẽ trả về JSON khá dài, trong đó có đoạn trả lời của model.

Như vậy ta đã hoàn tất việc cài đặt và cấu hình 9router, tiếp theo sẽ đến với phần kết nối 9router với AI agent.
3. Hướng dẫn kết nối OpenClaw với 9Router
Mục tiêu phần này là cho OpenClaw dùng 9Router như một Custom Provider.
Đầu tiên, ta mở trình cấu hình provider của OpenClaw, trên VPS, chạy:
Openclaw model
Sau đó sẽ hiện ra danh sách model, ta chọn More...

Sau đó tìm đến mục Custom Provider và Enter để chọn

Tiếp theo hệ thống sẽ hỏi API Base URL, ta điền:
http://127.0.0.1:20128/v1

Kế tiếp hệ thống hỏi How do you want to provide this API key? ta chọn Paste API key now và Enter
Vì 9Router của bạn hiện đang tắt Require API key, nên khi OpenClaw hỏi API key, bạn có thể để trống hoặc nhập tạm:
sk-9router-local

Key này chỉ để OpenClaw có giá trị điền vào trường API key. 9Router local của bạn hiện không kiểm tra key nên dùng chuỗi giả này được.
Tiếp theo đến phần chọn Endpoint compatibility, ta chọn OpenAI-compatible rồi Enter.

Sau đó hệ thống sẽ hỏi Model ID, ta nhập đúng theo tên combo đã được đặt ở bước Kết nối provider và tạo combo trong 9router. (Ví dụ: tên combo của TotHost là “9router-combo”). Nhấn Enter thấy hiện Verification successful là được.

Tiếp theo, hệ thống sẽ hỏi Endpoint ID, bạn có thể để nguyên và enter để đến bước tiếp.

Tiếp đến hệ thống hỏi Model alias, bạn có thể đặt tên ngắn dễ nhớ để gọi model trong OpenClaw, ví dụ như:
9router

Sau này, trong OpenClaw, thay vì nhớ 9router-combo, bạn có thể thấy/gọi nó bằng alias dễ nhớ là 9router. Hoặc, nếu bạn không muốn đặt alias thì để trống và nhấn Enter để bỏ qua.

Tiếp đến hệ thống hỏi Does this model support image input? ta chọn No. Lý do là vì combo 9router-combo của bạn đang gồm nhiều model free/fallback, chưa chắc tất cả model đều hỗ trợ image input. Nếu bật Yes, OpenClaw có thể gửi ảnh vào model không hỗ trợ vision và gây lỗi. Sau này nếu bạn tạo riêng một combo toàn model vision, lúc đó mới chọn Yes.
Như vậy, phần cấu hình kết nối 9router và OpenClaw đã xong, giờ ta cần kiểm tra xem nó đã hoạt động chưa, trên VPS chạy lệnh:
openclaw tui

Ở đây, OpenClaw đã phản hồi lại và phần model đã hiện tên “9router-combo” - đúng tên TotHost đã đặt lúc trước. Vậy là thành công!
4. Hướng dẫn kết nối Hermes với 9Router
Trong phần này ta sẽ cấu hình Hermes dùng endpoint của 9Router.
Trên VPS, chạy:
hermes model
Trong danh sách provider, chọn Custom endpoint,

Khi Hermes hỏi Base URL, nhập:
http://127.0.0.1:20128/v1

Tiếp theo hệ thống hỏi API key, vì 9Router của bạn đang tắt Require API key, bạn có thể bỏ qua hoặc nhập tạm
sk-9router-loca
Lưu ý: Khi nhập API key màn hình sẽ không hiển thị gì vì đó là tính năng bảo mật.

Tiếp theo đến bước Select API compatibility mode: ta chọn 2. Chat Completions sau đó nhấn Enter

Đến bước chọn model ta chọn đúng model giống tên combo đã tạo khi cài đặt kết nối provider và tạo combo trong 9Router. Ở đây, combo của TotHost tên là 9router-combo.

Tiếp theo, khi hệ thống hỏi Context length in tokens [leave blank for auto-detect], cứ để trống, hệ thống tự điều chỉnh. Sau này nếu cần tối ưu context dài thì chỉnh sau.
Kế đến là bước đặt tên cho provider trong Hermes: Bạn có thể để nguyên tên hệ thống gợi ý và bấm enter. Hoặc, đặt cho nó 1 cái tên dễ nhận biết như “9router local” mà TOT đang đặt ở đây.

Tiếp theo, restart Hermes gateway để Hermes đang chạy ngầm nhận cấu hình model mới qua 9Router. Trên VPS, chạy:
hermes gateway restart --system
Kiểm tra trạng thái bằng lệnh:
hermes gateway status --system
Nếu thấy hiện trạng thái đang chạy/active là ổn.

Để kiểm tra xem Hermes đã gọi qua 9router thành công chưa, trên VPS chạy:
hermes chat
Ta để ý thấy phần model hiện tên như đã setup là được. Thử nhắn 1 vài câu để kiểm tra xem model có hoạt động không.

Ra được kết quả như trên là thành công
5. Kết luận
Có thể thấy, sự kết hợp giữa OpenClaw / Hermes Agent và 9Router chính là giải pháp hữu hiệu giúp bạn sở hữu một đội ngũ trợ lý AI tự động hóa mạnh mẽ mà không phải lo lắng về hóa đơn API đắt đỏ mỗi tháng.
Thực tế trong quá trình sử dụng thì 9router vẫn gặp một vài vấn đề như model phản hồi chậm hay liên tục sử dụng tài khoản đã hết quota. Hi vọng những vấn đề này sẽ được khắc phục trong những bản cập nhật mới!