Hermes Agent: VPS $5 có đủ để chạy không?
Hermes không cần GPU vì model chạy ở nơi khác. Xem cách chạy bằng user riêng, đặt ProtectSystem=strict trong systemd và xử lý IPv6 trong UFW.
Hermes Agent là gì
Hermes Agent là một AI agent self-hosted do Nous Research phát hành vào tháng 2 năm 2026. Bạn chạy nó trên server của mình. Nó lưu memory lâu dài về các project, tự viết các skill có thể tái sử dụng trong quá trình làm việc, và kết nối với bạn qua các ứng dụng chat như Telegram và Discord. Hermes Agent không phụ thuộc vào model cụ thể. Bạn có thể trỏ nó đến bất kỳ language model nào mình muốn. Nó cũng đủ nhẹ để chạy trên VPS $5, trong Docker hoặc qua SSH. Mô hình tách biệt này, trong đó model chạy ở nơi khác còn vòng lặp xử lý, các tool và memory chạy trên máy của bạn, khiến Hermes trở thành một agent harness thay vì một model. Đây cũng là lý do một server nhỏ đã đủ.
Giống mọi agent, giá trị của Hermes Agent nằm ở khả năng thực hiện công việc thay bạn. Vì vậy, bạn cần thiết lập nó cẩn thận. Một agent có khả năng ghi nhớ, học và chạy task là một process luôn hoạt động, có quyền truy cập thực tế vào server của bạn. Hướng dẫn này cài đặt Hermes Agent theo cách an toàn. Các bước hardening ở đây cũng giống những gì bạn cần áp dụng khi chạy OpenClaw an toàn.
Lệnh cài đặt một dòng và lý do bạn nên đọc trước
Hermes được cài đặt bằng một lệnh duy nhất:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bashCách này tiện, nhưng cũng cần được thực hiện thận trọng. Khi pipe trực tiếp một script từ Internet vào shell, bạn sẽ chạy mọi nội dung có trong script đó với quyền của user đang thực thi. Trước khi chạy trên server thật, hãy tải script về, đọc nội dung rồi chạy bằng một user riêng thay vì root:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh -o hermes-install.sh
less hermes-install.shĐiều này không có nghĩa là bạn phải đặc biệt nghi ngờ Hermes. Đây là thói quen giúp mọi lần cài đặt curl | bash không âm thầm trở thành điểm yếu nhất trong hệ thống của bạn.
Cấp cho nó một user không có đặc quyền
Chạy Hermes bằng một system account riêng, không bao giờ chạy bằng root. Như vậy, lỗi hoặc instruction xấu sẽ không thể ảnh hưởng đến phần còn lại của máy. Tạo user không có login shell:
sudo useradd --system --home /opt/hermes --shell /usr/sbin/nologin hermesCài Hermes dưới /opt/hermes và đặt account đó làm owner. Installer chính thức cài cho user chạy nó, vì vậy hãy chạy script bạn đã tải xuống bằng user hermes, ví dụ sudo -u hermes bash hermes-install.sh. Các file sẽ được đặt trong home directory của user đó thay vì của bạn. Lý do cũng giống như khi chạy service bằng user không có đặc quyền: account mà agent chạy dưới đó sẽ giới hạn mức độ thiệt hại mà agent có thể gây ra. OS account chỉ là một nửa của vấn đề. Các setting riêng của agent mới quyết định nó có thể tự thực hiện bao nhiêu thao tác mà không hỏi trước. Đây là vấn đề đằng sau các permission mode của Claude Code khi agent chạy trên một box mà bạn không ngồi trực tiếp trước đó. Nếu box cuối cùng phải phục vụ nhiều người chứ không chỉ riêng bạn, OneCLI mở rộng ý tưởng mỗi agent dùng một account riêng cho cả team bằng cách cấp cho mỗi người một agent trong sandbox riêng, trong khi các model key vẫn nằm trong một gateway duy nhất nên không ai phải tự sao chép chúng.
Thiết lập firewall cho máy chủ và cô lập secret
Hermes hoạt động bằng cách kết nối đến model và các ứng dụng chat mà bạn kết nối, nên không cần nhận kết nối đến từ Internet. Đặt firewall mặc định từ chối mọi kết nối ở phía trước máy chủ:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableHãy chú ý đến khoảng trống của firewall IPv6 ở đây, vì một bộ rule chỉ áp dụng cho IPv4 có thể khiến service bị lộ trên IPv6. Nếu agent cần truy cập một tài nguyên chỉ tồn tại trong mạng gia đình, chẳng hạn NAS hoặc database nội bộ, quảng bá mạng đó vào tailnet bằng subnet router sẽ cho phép agent truy cập qua kết nối outbound thay vì mở một cổng inbound. Lưu model API key và mọi chat token trong một file chỉ user hermes có thể đọc (mode 600), rồi nạp file đó vào service thay vì dán token vào command line, nơi chúng sẽ xuất hiện trong shell history. Một secrets file như vậy cũng là mục tiêu nhỏ nhưng có giá trị cao, giống admin token đứng sau một password manager tự host; lập luận trong đợt hardening Vaultwarden cũng áp dụng tương tự: bảo vệ file duy nhất có thể mở khóa mọi thứ khác, đồng thời bảo vệ các bản backup của file đó chặt chẽ như vậy. File permission ngăn các user khác trên máy truy cập, nhưng không ngăn provider bên dưới; vì vậy, nếu các key mà agent nắm giữ đủ nhạy cảm để thay đổi cách đánh giá rủi ro này, memory được mã hóa và attestation sẽ quyết định liệu công ty hosting có thể đọc chúng từ RAM hay không.
Chạy Hermes dưới dạng systemd service được tăng cường bảo mật
Một systemd unit giúp Hermes tiếp tục chạy sau khi bạn logout và sau khi reboot, tự khởi động lại nếu bị crash, đồng thời cho phép thêm sandboxing ở cấp kernel để giới hạn những gì nó có thể truy cập. Bật NoNewPrivileges, ProtectSystem=strict, PrivateTmp và ProtectHome để giới hạn phạm vi ảnh hưởng nếu bị breach.
Tạo một unit được tăng cường bảo mật tại đây, rồi sao chép unit đó vào /etc/systemd/system/hermes.service. Unit khởi động hermes gateway, là tiến trình chạy lâu dài kết nối với các app chat của bạn; sau khi cài đặt, chạy hermes --help để xác nhận command và đường dẫn đến binary trên phiên bản bạn đang dùng trước khi enable service:
Các directive, cùng với bước daemon-reload và enable --now, được giải thích trong chạy một chương trình dưới dạng systemd service:
sudo systemctl daemon-reload
sudo systemctl enable --now hermesĐể xem ví dụ hoàn chỉnh của cùng mẫu cấu hình trên một agent khác, chạy dsh headless bằng systemd trình bày kỹ hơn về các rule Restart và những lệnh journalctl bạn sẽ cần khi service dừng vào ban đêm. Tốt hơn hết, đừng đợi đến sáng mới phát hiện: một unit OnFailure= đẩy cảnh báo đến ntfy server của bạn sẽ gửi notification đến điện thoại ngay khi Hermes không thể tiếp tục restart.
Nếu muốn systemd supervise một container thay vì bản cài native, giữ KiroCrew luôn chạy dưới dạng container được pin phiên bản cũng đạt kết quả tương tự là service vẫn hoạt động sau reboot, đồng thời giữ nguyên version của image.
Gia cố server
Cuối cùng, hãy gia cố lớp truy cập bên ngoài. Chuyển SSH sang chỉ xác thực bằng key và tắt đăng nhập root, như trong Gia cố SSH trên VPS, để không ai có thể đoán được account bạn dùng để quản trị server. Agent lưu memory liên tục cần được bảo vệ. Biện pháp rẻ nhất là bảo đảm không ai có thể đăng nhập vào server đang chạy agent đó.
Sau khi đã khóa chặt server, capability mà hầu hết mọi người bổ sung tiếp theo là web search. Trỏ agent đến instance SearXNG của chính bạn giúp các truy vấn đó chỉ đi qua server của bạn, nhưng đồng nghĩa với việc agent sẽ nhận các trang mà chưa có ai kiểm duyệt. Hermes cũng hiếm khi là agent duy nhất trên server. Nếu bạn đồng thời chạy Claude Code tại đó, hai session có thể chuyển việc trực tiếp cho nhau thay vì phải định tuyến mọi lần bàn giao qua bạn. Nếu agent tiếp theo là agent đọc code thay vì các ứng dụng chat, chạy các lượt quét bảo mật của open-kritt trên cùng server cũng theo mô hình tương tự: một bản release được pin, một account riêng và một web UI được truy cập qua SSH tunnel thay vì mở cổng public.
Nếu bạn muốn hiểu cơ chế bên trong thay vì chạy agent đã đóng gói sẵn, tự xây dựng AI agent trên VPS trình bày quy trình từng bước. Nếu các thuật ngữ trong hướng dẫn đó vẫn còn mới, lộ trình theo từng giai đoạn để học AI agent sắp xếp loop, tool, memory và safety theo đúng thứ tự chúng phụ thuộc lẫn nhau. Nhờ vậy, các lựa chọn mà Hermes thực hiện thay bạn sẽ không còn giống như phép màu.
FAQ
Tôi có thể chạy Hermes Agent trên một VPS giá rẻ không?
Có. Hermes được thiết kế để chạy trên một server nhỏ, và VPS $5 là đủ cho một agent cá nhân chạy liên tục. Hermes kết nối đến language model và các chat app của bạn thay vì phục vụ lưu lượng lớn, nên dùng ít tài nguyên. Hãy cấp cho nó một user riêng, firewall và systemd service; một VPS nhỏ có thể chạy thoải mái. Nếu bạn đã có máy ở nhà, trước tiên hãy cân nhắc phần cứng và chi phí điện so với khoản phí hàng tháng đó, vì một máy Proxmox ở nhà và một VPS thuê có những ưu điểm khác nhau.
Chạy one-line install script có an toàn không?
Lệnh cài đặt curl | bash tiện dụng, nhưng cách an toàn là download script, đọc nội dung trước khi chạy, và chạy bằng một user riêng thay vì root. Khi đó, một piped installer từ bất kỳ project nào cũng không thể làm nhiều hơn phạm vi mà account bị giới hạn đó cho phép. Điều này không chỉ áp dụng cho Hermes; đây là thực hành tốt với mọi kiểu cài đặt như vậy.
Làm cách nào để chạy Hermes mà không dùng root?
Tạo một system user riêng không có login shell, cài Hermes vào một directory do user đó sở hữu, chẳng hạn /opt/hermes, rồi chạy service bằng account đó. Nếu agent bị compromise, thiệt hại chỉ giới hạn trong những tài nguyên mà account đó có thể truy cập.
Làm cách nào để Hermes tiếp tục chạy sau khi tôi logout?
Chạy Hermes dưới dạng systemd service. Một unit file sẽ khởi động Hermes khi boot, restart service nếu bị crash và giữ service chạy sau khi phiên SSH kết thúc. Các tùy chọn sandbox của systemd cũng giới hạn những gì process có thể truy cập. Dùng tool ở trên để tạo một unit đã harden, rồi enable bằng systemctl enable --now hermes.
Hermes Agent có cần GPU không?
Không. Hermes là agent runtime, không phải language model, nên chạy tốt trên một VPS nhỏ chỉ có CPU. Phần tính toán nặng diễn ra tại nơi model chạy, thường là một hosted API mà bạn kết nối đến. Nếu cũng muốn self-host model trên cùng máy, hãy chọn cấu hình máy theo yêu cầu của model, không phải theo Hermes. Với việc host model chỉ bằng CPU, hãy áp dụng các con số trong hướng dẫn Ollama.