Một AI agent như Hermes Agent có khả năng tự chạy lệnh, đọc file, gọi API và thậm chí cài đặt phần mềm thay bạn. Nhưng chính khả năng đó cũng là con dao hai lưỡi nếu để agent thao tác trực tiếp trên máy chủ thật. Docker Sandbox chính là lớp cách ly giúp mọi lệnh của Hermes Agent chạy trong một môi trường tách biệt, giới hạn quyền và tài nguyên, thay vì chạm trực tiếp vào hệ điều hành chính. Cùng Tino tìm hiểu cách thiết lập Docker Sandbox cho Hermes Agent an toàn qua bài viết dưới đây nhé!
Docker Sandbox trong Hermes Agent là gì?
Hermes Agent hỗ trợ nhiều Terminal Backend, tức môi trường mà các câu lệnh do Agent yêu cầu sẽ được thực thi. Một số lựa chọn phổ biến gồm:
Backend Lệnh chạy ở đâu? Mức cô lập localTrực tiếp trên máy chạy Hermes Không cô lập dockerBên trong Docker container Cao sshMáy chủ từ xa Tách khỏi máy chạy Agent singularityContainer Singularity/Apptainer Cao modalCloud sandbox Cao daytonaCloud workspace Cao
Xem thêm: Hướng dẫn cách ly Sandbox cho AI Agent trên VPS
Tại sao nên chạy Hermes Agent trong Docker Sandbox?
Hermes Agent có khả năng thực hiện nhiều hành động tự động. Một Agent được cấp quyền Terminal có thể cài package, tạo file, sửa source code, chạy script hoặc gọi các công cụ dòng lệnh.
Docker Sandbox giúp giảm một số rủi ro quan trọng:
- Hạn chế câu lệnh AI tác động trực tiếp lên hệ điều hành host.
- Hạn chế phạm vi thư mục Agent có thể truy cập.
- Tránh đưa toàn bộ biến môi trường và credential của host vào môi trường chạy lệnh.
- Giới hạn CPU, RAM, dung lượng và số tiến trình.
- Có thể tạo môi trường riêng cho từng phiên làm việc.
- Có thể ngắt Internet đối với những tác vụ không cần truy cập mạng.
- Giảm ảnh hưởng của một lệnh sai hoặc script không đáng tin cậy.

Hermes Agent hiện áp dụng nhiều lớp hardening khi sử dụng Docker backend, bao gồm giảm Linux capabilities, bật no-new-privileges, giới hạn số tiến trình và sử dụng các tmpfs có giới hạn dung lượng.
Cần chuẩn bị gì trước khi thiết lập?
Bạn cần:
- Hermes Agent đã được cài đặt.
- Docker Engine hoặc Docker Desktop đang hoạt động.
- Quyền sử dụng Docker.
- Quyền chỉnh sửa ~/.hermes/config.yaml.
- Nên cập nhật Hermes Agent lên phiên bản mới trước khi cấu hình.
Cách thiết lập Docker Sandbox cho Hermes Agent
Cài Docker trên VPS
Giả sử VPS đang sử dụng Ubuntu và đã cài Hermes Agent.
Bước 1: Cập nhật hệ thống
SSH vào VPS rồi chạy:
sudo apt update
sudo apt install -y ca-certificates curl
Bước 2: Thêm repository Docker
Tạo thư mục lưu khóa:
sudo install -m 0755 -d /etc/apt/keyrings

Tải khóa Docker:
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Thêm repository:
tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
Cập nhật lại:
sudo apt update

Bước 3: Cài Docker Engine
Chạy:
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Bật Docker tự khởi động cùng VPS:
sudo systemctl enable --now docker
Bước 4: Kiểm tra Docker
Kiểm tra phiên bản:
docker --version

Chạy thử container:
sudo docker run --rm hello-world
Nếu xuất hiện:
Hello from Docker!
Docker đã hoạt động bình thường.

Nếu Hermes Agent chạy bằng tài khoản Linux thông thường, thêm tài khoản hiện tại vào nhóm Docker:
sudo usermod -aG docker $USER
Sau đó đăng xuất SSH và đăng nhập lại.
Kiểm tra:
docker ps
Nếu lệnh chạy mà không báo lỗi quyền truy cập, bạn có thể chuyển sang phần cấu hình Sandbox.
Thiết lập Docker Sandbox cho Hermes Agent
Bước 1: Mở file cấu hình Hermes Agent
Chạy:
nano ~/.hermes/config.yaml
Tìm phần:
terminal:
Nếu chưa có, thêm phần cấu hình vào cuối file (bước 2).
Bước 2: Chuyển Terminal Backend sang Docker
Thêm hoặc chỉnh thành:
terminal:
backend: docker
docker_image: "nikolaik/python-nodejs:python3.11-nodejs20"
Trong đó: backend: docker sẽ giúp các công cụ thực thi của Hermes Agent chạy bên trong Docker Sandbox thay vì chạy trực tiếp trên VPS.
Bước 3: Thêm giới hạn an toàn
Nên sử dụng cấu hình:
terminal:
backend: docker
docker_image: "nikolaik/python-nodejs:python3.11-nodejs20"
docker_forward_env: []
docker_mount_cwd_to_workspace: false
container_cpu: 1
container_memory: 2048
container_disk: 10240
container_persistent: false
Ý nghĩa chính:
- docker_forward_env: []: không chuyển API key từ VPS vào Sandbox.
- docker_mount_cwd_to_workspace: false: không tự chia sẻ thư mục hiện tại của VPS.
- container_cpu: 1: giới hạn 1 CPU.
- container_memory: 2048: giới hạn 2 GB RAM.
- container_disk: 10240: giới hạn khoảng 10 GB dung lượng khi Docker storage hỗ trợ.
- container_persistent: false: sử dụng môi trường tạm thời, phù hợp hơn cho Sandbox.

Bước 4: Lưu cấu hình
Trong Nano, nhấn Ctrl + O -> Enter để lưu, sau đó nhấn Ctrl + X để thoát
Bước 5: Tải Docker image
Chạy:
docker pull nikolaik/python-nodejs:python3.11-nodejs20
Kiểm tra:
docker images
Nếu image xuất hiện trong danh sách, Docker Sandbox đã có môi trường để khởi chạy.

Bước 6: Khởi động lại Hermes Agent
Sau khi đổi cấu hình, cần khởi động lại tiến trình Hermes Agent đang chạy. Cách restart phụ thuộc vào phương thức bạn đang dùng để vận hành Hermes.
- Nếu đang chạy Hermes trực tiếp trong Terminal, hãy dừng phiên hiện tại rồi chạy lại Hermes.
- Nếu Hermes được quản lý bằng systemd, cần restart service tương ứng.
Sau khi Hermes chạy lại, Docker backend sẽ được sử dụng cho các công cụ thực thi tương thích.
Bước 7: Kiểm tra Docker Sandbox
Yêu cầu Hermes Agent chạy một lệnh Terminal đơn giản, chẳng hạn:
Hãy chạy lệnh pwd và cho tôi biết thư mục hiện tại.

Sau đó thoát ra và chạy:
docker ps
Nếu container của Hermes xuất hiện, Docker Sandbox đang hoạt động.

Bạn cũng có thể yêu cầu Hermes chạy:
cat /etc/os-release
hoặc:
ls /
Kết quả lúc này đến từ môi trường container thay vì trực tiếp từ hệ điều hành VPS.
Như vậy, với cấu hình trên, Hermes Agent đã có môi trường thực thi riêng, đồng thời hạn chế quyền truy cập file, API key và tài nguyên của VPS.
Docker Sandbox có phải lớp bảo mật tuyệt đối?
Không. Docker Sandbox là một lớp bảo vệ quan trọng nhưng không nên được xem là cơ chế an toàn tuyệt đối.
Mô hình bảo mật của Hermes Agent sử dụng nhiều lớp, bao gồm kiểm soát người dùng, kiểm tra thao tác nguy hiểm, giới hạn ghi file, container isolation, bảo vệ credential MCP và cô lập session.

Một cấu hình an toàn nên kết hợp:
Docker Sandbox + giới hạn volume + hạn chế credential + giới hạn tài nguyên + kiểm soát network + cập nhật Hermes Agent thường xuyên.
Ngoài ra, Docker Terminal Backend không đồng nghĩa toàn bộ tiến trình Hermes Agent đều nằm trong container. Với môi trường doanh nghiệp hoặc dữ liệu đặc biệt nhạy cảm, nên cân nhắc whole-process containerization hoặc sandbox chuyên dụng có chính sách filesystem, network và process chặt chẽ hơn.
Một số lưu ý khi sử dụng Docker Sandbox với Hermes Agent
- Luôn cập nhật Hermes Agent trước khi triển khai production.
- Không mount toàn bộ VPS vào container.
- Ưu tiên volume read-only nếu Agent chỉ cần đọc.
- Giữ docker_forward_env rỗng nếu chưa cần credential.
- Không đưa Docker socket vào Sandbox.
- Giới hạn CPU và RAM để tránh tác vụ Agent chiếm toàn bộ tài nguyên VPS.
- Dùng container_persistent: false cho các tác vụ thử nghiệm hoặc code chưa đáng tin cậy.
- Tắt network khi workload không cần Internet.
- Tách môi trường production khỏi môi trường thử nghiệm.
- Không xem Docker là lớp bảo mật duy nhất.

Kết luận
Khả năng chạy lệnh và thao tác trực tiếp với hệ thống giúp Hermes Agent trở thành một AI Agent rất linh hoạt, nhưng quyền thực thi càng lớn thì yêu cầu kiểm soát bảo mật càng cao. Thiết lập Docker Sandbox cho Hermes Agent là một cách tương đối đơn giản để tách hoạt động của Agent khỏi hệ điều hành host, giới hạn tài nguyên và kiểm soát những dữ liệu mà môi trường thực thi được phép tiếp cận.
Cách triển khai này vừa giúp Hermes Agent giữ được khả năng tự động hóa mạnh mẽ, vừa giảm đáng kể rủi ro khi AI phải chạy code hoặc thực hiện các tác vụ trực tiếp trên VPS.
Các bài viết liên quan:
- Hướng dẫn cài đặt và sử dụng Hermes Agent Desktop
- Hướng dẫn kết nối Google Workspace với Hermes Agent
- Hướng dẫn kết nối Google Chat với Hermes Agent A-Z
- Hướng dẫn kết nối Slack với Hermes Agent trên VPS Hermes
- Hướng dẫn kết nối Kilo Code với Hermes Agent
- Hướng dẫn kết nối Telegram với Hermes Agent trên VPS Hermes
- Hướng dẫn kết nối tài khoản Zalo cá nhân với Hermes Agent trên VPS Hermes
- Hướng dẫn kết nối Discord với Hermes Agent trên VPS Hermes
- Cách viết Skill cho Hermes Agent: Đúng chuẩn, dễ kích hoạt
- Hermes Agent nên chạy Local hay VPS?
Những câu hỏi thường gặp
Hermes Agent có bắt buộc phải dùng Docker Sandbox không?
Không. Backend mặc định có thể chạy trực tiếp trên máy bằng local. Tuy nhiên, Docker Sandbox phù hợp hơn khi Agent được phép chạy lệnh, thực thi code hoặc xử lý nội dung không hoàn toàn đáng tin cậy.
Docker Sandbox có làm Hermes Agent chậm hơn không?
Có thêm một lượng overhead nhỏ do containerization, nhưng với hầu hết tác vụ AI Agent thông thường, chênh lệch thường không phải vấn đề lớn. Lợi ích về khả năng cô lập thường quan trọng hơn mức overhead này.
Hermes Agent trong Docker có truy cập được file trên VPS không?
Chỉ những thư mục được chia sẻ qua volume hoặc cơ chế mount tương ứng mới nên được cấp cho container. Không nên mount toàn bộ filesystem của VPS.
Có nên cho Docker Sandbox truy cập Internet không?
Tùy tác vụ. Nếu Agent cần tải package, truy cập API hoặc sử dụng dịch vụ online, network phải hoạt động. Nếu chỉ kiểm tra code hoặc xử lý dữ liệu cục bộ, tắt network sẽ tăng khả năng cô lập.
