Mỗi bản Hermes Agent cài đặt đều có một setting sandbox quyết định lệnh shell thực sự thi hành ở đâu. Lựa chọn này có sức nặng: nó quyết định một câu lệnh tồi có bán kính nổ tới đâu, agent cảm thấy nhanh ra sao, và bạn trả bao nhiêu cho mỗi giờ hoạt động.
Hermes xuất xưởng bảy backend. README liệt kê đầy đủ: local, docker, ssh, singularity, modal, daytona, vercel. v0.14.0 thêm Vercel Sandbox để gom đủ bộ. Đây là cây quyết định.
Bảy backend, gọn trong một bảng
| Backend | Cách ly | Độ trễ | Chi phí | Tính bền | Phù hợp nhất với |
|---|---|---|---|---|---|
| local | Không có | <10 ms | Miễn phí | Có (đĩa của bạn) | Một mình bạn trên một VM dùng-rồi-bỏ |
| Docker | Container | ~50 ms | Miễn phí | Theo container | Mặc định cho mọi máy dev |
| SSH | Tùy máy remote | Trễ remote | Phí remote | Có | Chạy trên máy của ai khác |
| Singularity | Container HPC | ~100 ms | Miễn phí | Theo container | Cluster HPC, scientific compute |
| Modal | Container serverless | ~200 ms cold | Trả theo giây hoạt động | Có snapshot | Compute giật cục, công việc GPU |
| Daytona | Workspace serverless | ~300 ms cold | Trả theo giây hoạt động | Ngủ đông khi nhàn | Môi trường agent sống lâu, chi phí nhàn gần bằng không |
| Vercel Sandbox | Container serverless | ~200 ms cold | Trả theo giây hoạt động | Tạm bợ | Tooling web, luồng nặng JS |
local và docker miễn phí và ở trên máy của bạn. Năm cái còn lại chạy chỗ khác — trả bằng độ trễ, trả bằng tiền, nhưng đổi lại được gì đó.
Khi nào chọn cái nào
local — "tôi tin agent này trên máy này"
Agent chạy lệnh trực tiếp trên filesystem của bạn với quyền user của bạn. Không cách ly chút nào. Nếu agent quyết rm -rf ~/code, nó xóa thật. Nếu một prompt injection lọt vào tool output, lệnh được tiêm vào sẽ chạy.
Khi nào đây là lựa chọn đúng: bạn đang nghịch một VM dùng-rồi-bỏ, agent đang làm những thứ chính bạn sẽ làm với bán kính nổ tương đương, và độ trễ bằng không quan trọng hơn lề an toàn.
Khi nào đây là lựa chọn sai: gần như mọi lúc khác.
docker — mặc định đúng đắn
Một container trên máy bạn, cách ly bằng Linux namespace. Góc nhìn filesystem của agent là góc nhìn của container; /home thật của bạn ẩn đi trừ khi bạn mount nó vào.
hermes config set sandbox docker rồi hermes setup sẽ kéo và cấu hình image. Sau đó mọi shell tool call đi qua container.
Đây là mặc định đúng cho ~80% người dùng. Overhead độ trễ (~50 ms mỗi lệnh) vô hình trong chat. Cách ly đủ mạnh để một agent chạy rm -rf / chỉ thổi bay góc nhìn của container, mà container thì dùng một lần. Bạn có thể docker exec vào nếu cần debug.
ssh — "agent sống ở một máy khác"
Tool shell của agent thi hành qua SSH trên một host từ xa. Tiến trình Hermes cục bộ là client; remote là nơi việc diễn ra.
Đây là lựa chọn đúng khi agent đang làm công việc hạ tầng thuộc về remote — deploy lên server, debug log production, chạy migration. Bạn không cần sandbox cục bộ vì host chính là sandbox.
Remote phải là một host bạn chấp nhận để agent có quyền shell. Đối xử với SSH credential như prod credential, vì chính là vậy.
singularity — cluster HPC
Singularity (giờ là Apptainer) là runtime container mà các cluster HPC thực sự dùng, vì Docker đòi root trên host và môi trường HPC không cấp. Nếu bạn chạy Hermes trên một cluster nghiên cứu — SLURM lên lịch, không Docker, đầy GPU — đây là lựa chọn đúng.
Nếu các từ "HPC" hay "Singularity" không gợi gì với bạn, bỏ qua mục này.
modal — compute giật cục, đặc biệt là GPU
Modal là một nền tảng container serverless. Hermes dựng một container Modal mỗi lệnh (hoặc mỗi session, có tái sử dụng), chạy lệnh, rồi dẹp. Bạn trả theo giây compute hoạt động. Có tier GPU.
Khi nào nó thắng Docker: agent cần GPU, hoặc tài nguyên compute vượt máy cục bộ của bạn. Khi nào Modal thắng các serverless khác: cold start ~200 ms — chấp nhận được cho tool use ở nhịp chat, và snapshot đủ tốt để trạng thái giữa session sống sót khá tốt.
daytona — sống lâu, gần-bằng-không khi nhàn
Tính năng sát thủ của Daytona là ngủ đông. Môi trường agent của bạn đi ngủ khi không có gì xảy ra và thức theo yêu cầu trong vài trăm ms. Bạn trả theo giây hoạt động, không phải giây nhàn.
Hiệu ứng thực tế: bạn có thể có một môi trường "Hermes của tôi" với dotfile, skill, công việc dang dở của bạn, sống nhiều tháng gần như miễn phí vì bạn chỉ trả khi đang dùng.
Đây là lựa chọn đúng nếu bạn muốn một agent "sống ở đâu đó" mà không ở trên laptop. Request đầu sau một thời gian nhàn dài tốn ~300 ms để thức; request tiếp theo nhanh như container.
vercel — Vercel Sandbox (v0.14.0)
Backend mới nhất, thêm trong v0.14.0. Cùng mô hình container serverless như Modal, nhưng trên hạ tầng Vercel. Nếu bạn đã có Vercel làm đích deploy, đây là lựa chọn ít ma sát nhất để đưa cả sandbox agent về cùng provider.
Phù hợp nhất với: luồng nặng JS mà bạn muốn môi trường agent gương soi môi trường deploy production.
Cách chuyển
hermes config set sandbox docker
# hay: local, ssh, singularity, modal, daytona, vercel
Với các backend cần credential (ssh / modal / daytona / vercel), hermes setup sẽ hỏi bạn; hoặc đặt qua hermes config set trực tiếp theo tài liệu.
Bạn cũng có thể đè per-session nếu cần: hermes --sandbox modal cho một lần chạy đơn cần GPU, rồi quay về sandbox mặc định sau đó.
Còn nếu không sandbox gì cả thì sao?
Bạn có thể tắt sandbox hoàn toàn (backend local), nhưng Hermes phủ thêm một lớp workflow phê duyệt lệnh: các lệnh nguy hiểm như rm -rf, curl | sh, hay bất cứ thứ gì chạm /etc sẽ hỏi phê duyệt rõ ràng trước khi chạy. v0.14.0 cứng hóa lớp đó với ba lần đóng bypass dangerous-command và một chặn brute-force sudo (#23736, #26829). Nên ngay cả local cũng không phải "không gì cả" — đó là "cách ly nhẹ hơn nhưng prompt thật". Xem bài về model bảo mật để có chi tiết từng lớp.
Khuyến nghị thực sự
Cho phần lớn người, phần lớn thời gian: Docker.
Nếu bạn muốn agent sống trên một server không phải laptop: Daytona (đặc tính ngủ-đông-khi-nhàn thật sự kỳ diệu, và phép tính chi phí khớp).
Nếu bạn có workload GPU hoặc agent đang compute thật: Modal.
Nếu bạn là người nghiên cứu trên cluster: Singularity.
local chỉ khi bạn hiểu đánh đổi. SSH chỉ khi công việc thuộc về remote. Vercel nếu bạn đã ở trên Vercel.