SSD Nodes Learn 🎉 VPS từ $5.50/tháng
Hướng dẫn Matt ConnorBởi Matt Connor

Tự host Agentlas OS trên VPS: cài đặt và chi phí

Cài Agentlas OS v1.2.0 trên Linux VPS với lệnh pinned, biết state nằm ở đâu, kết nối Ollama và tính đúng chi phí hub khi idle.

Agentlas OS thực sự là gì

Agentlas OS là một agent runtime mã nguồn mở. Nó lưu các agent chuyên trách trên disk dưới dạng package và tạo một orchestrator tạm thời cho từng task. Bạn tự host bằng cách cài đặt nó vào user account của mình trên một Linux VPS. Đây không phải là một service. Không có daemon, không có port đang listen, không có web interface và không có container image trong repository.

Câu cuối quyết định mọi nội dung còn lại trên trang này. Hầu hết hệ thống multi-agent chạy một supervisor process luôn hoạt động và chứa các agent. Agentlas làm ngược lại: các agent chuyên trách là những file được lưu trên disk, còn orchestrator chỉ tồn tại trong thời gian task chạy. Kết quả thực tế là một hub ở trạng thái idle chỉ tốn dung lượng disk, không tốn memory.

Project gọi open core của mình là Hephaestus. Đây cũng là tên bạn sẽ thấy trong các command, path và environment variable. Repository là agentlas-ai/Agentlas-OS, được cấp phép theo Apache-2.0 và chủ yếu được viết bằng Python.

Dự án này thực sự còn mới đến mức nào?

Repository được tạo vào ngày 4 June 2026. Tính đến ngày 12 August 2026, repository này mới khoảng 10 tuần tuổi, có khoảng 1,150 stars và 112 forks. Với một công cụ dùng cho công việc thực tế, đây vẫn là dự án rất mới.

Tần suất phát hành quan trọng hơn tuổi của dự án. Version v1.1.103 được phát hành vào ngày 8 August 2026, còn v1.2.0 được phát hành vào ngày 12 August 2026. Riêng series 1.1 đã có hơn 100 tagged release, có ngày phát hành vài bản, do automation thực hiện. Một dự án thay đổi nhanh như vậy có thể thay đổi hành vi giữa thứ Ba và thứ Năm mà bạn không hề thay đổi cấu hình.

Vì vậy, hãy pin release. Installer đọc một environment variable cho việc này, và toàn bộ hướng dẫn bên dưới đều sử dụng biến đó. Nếu không pin version, việc cài đặt một dự án phát hành nhiều lần mỗi ngày sẽ nhận đúng phiên bản đang có trên main vào thời điểm đó.

Những gì cần có trên VPS

Yêu cầu khá nhỏ vì không có tiến trình nào chạy nền.

  • Một Linux VPS. Ubuntu 24.04 là lựa chọn cơ bản phù hợp. Trình cài đặt phát hiện hệ điều hành bằng uname -s và chọn nhánh không phải macOS cho Linux, nên máy không có giao diện vẫn được hỗ trợ.
  • curl, targit trên máy, cùng với một Python interpreter hoạt động.
  • Kết nối HTTPS outbound đến raw.githubusercontent.comgithub.com. Trình cài đặt tải release archive và kiểm tra SHA-256, nên máy không có kết nối outbound sẽ không thể cài đặt.
  • Một host harness, tức coding agent thực sự giao tiếp với model. Claude Code, Codex, opencode, goose và Hermes đều được hỗ trợ dưới dạng adapter.

Bạn không cần root. Trình cài đặt chỉ ghi vào thư mục home của bạn và ~/.local/bin, đồng thời cảnh báo thay vì dừng khi một path không có quyền ghi. Nếu bạn vẫn đang chọn máy, chạy coding agent trên VPS trình bày cách thiết lập base image và quyền truy cập mà phần này sử dụng.

Cài đặt bản release đã pin

README của upstream có một dòng lệnh duy nhất, pipe script từ main thẳng vào bash. Hãy tải script về và đọc trước. Script ghi vào cấu hình shell của bạn và mọi agent harness mà nó tìm thấy, nên bạn nên dành 10 giây để kiểm tra.

curl -fsSL -o install-all-runtimes.sh \
  https://raw.githubusercontent.com/agentlas-ai/Agentlas-OS/main/scripts/install-all-runtimes.sh
less install-all-runtimes.sh
HEPHAESTUS_REF=v1.2.0 bash install-all-runtimes.sh

HEPHAESTUS_REF là giá trị pin. Trong script, dòng này là version="${HEPHAESTUS_REF:-v1.2.0}". Vì vậy, nếu để biến này unset, hôm nay bạn sẽ nhận v1.2.0 nhưng tuần sau có thể nhận phiên bản khác. Hãy đặt giá trị này rõ ràng để lần rebuild vào tháng 10 cài đúng phiên bản bạn đã kiểm thử vào tháng 8.

Có một giới hạn cần lưu ý: URL của script ở trên trỏ đến main, còn HEPHAESTUS_REF pin payload runtime mà script tải xuống. Đây là hai thành phần khác nhau. Để pin cả hai, hãy lấy script từ tag thay vì main bằng cách thay main bằng v1.2.0 trong URL đó.

Khi chạy thành công, lệnh sẽ in ra các path mà nó đã ghi, bao gồm hai dòng sau:

Installed runner: /home/you/.agentlas/runtime/current/bin/hephaestus
Installed shell commands in /home/you/.local/bin (add ~/.local/bin to PATH to use them)

Dòng thứ hai thường bị bỏ qua. Trên một máy Ubuntu mới, ~/.local/bin thường chưa có trong PATH. Vì vậy, mọi lệnh hep-* đều fail với command not found dù quá trình cài đặt đã thành công. Hãy sửa lỗi này và xác nhận:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
hep-global status

hep-global status cho biết global router đã cài gì và đã phát hiện những harness nào. Nếu lệnh này chạy được, PATH của bạn đã đúng.

Trạng thái được lưu ở đâu

Mọi thứ đều là file trong thư mục home của bạn, nên việc backup và di chuyển rất đơn giản.

  • ~/.agentlas/runtime/v1.2.0/ chứa runtime, còn ~/.agentlas/runtime/current/ là symlink trỏ đến phiên bản đang active. Hai phiên bản đã pin có thể nằm song song.
  • ~/.local/bin/ chứa các shell wrapper: hephaestus, hep-build, hep-network, hep-search, hep-storm, hep-cloudhep-upload.
  • ~/.agentlas/networking/memory/ chứa bộ nhớ bền vững: playbook-registry.json, playbook-candidates.jsonlmemory-events.jsonl.
  • ~/.agentlas/networking/hub-agents/<slug>/memory/experience.sqlite chứa dữ liệu kinh nghiệm của từng agent, được giới hạn theo owner.
  • <project>/.agentlas/ontology-runtime.sqlite chứa trạng thái theo từng project, nên trạng thái này đi cùng repository thay vì gắn với máy chủ.
  • ~/.cache/agentlas/python chứa Python cache trên Linux. macOS dùng path khác; installer chọn nhánh này bằng uname.

Tài liệu về memory nêu rõ rằng không được đưa secret, credential thô và transcript đầy đủ vào bất kỳ scope memory nào. Giá trị credential được giữ trong các file local đã thêm vào gitignore, còn memory chỉ lưu tên và path. Hãy backup các thư mục ~/.agentlas.agentlas của project; bạn có thể dựng lại hệ thống trên một VPS mới.

Agentlas có thể trỏ đến những model backend nào

Đây là chi tiết giúp định hình lại toàn bộ thiết lập: Agentlas không gọi model API. Host harness mới thực hiện việc đó.

Tài liệu kiến trúc mô tả các runtime adapter có nhiệm vụ chuyển đổi một core để chạy với từng harness, đồng thời nêu rõ host runtime quản lý thông tin xác thực của model. Agentlas cung cấp 2 thành phần để harness sử dụng: một file AgentSkills và một MCP (model context protocol) server giao tiếp qua stdio. Vì vậy, câu hỏi “Agentlas hỗ trợ những model nào” thực chất là “harness của bạn hỗ trợ những model nào”, và câu trả lời là mọi model mà Claude Code, Codex, opencode, goose hoặc Hermes có thể truy cập.

Đăng ký MCP server trong cấu hình TOML theo kiểu Codex như sau:

[mcp_servers.hephaestus-network]
command = "~/.agentlas/runtime/current/bin/hephaestus"
args = ["mcp", "serve"]

Trong quá trình cài đặt, server này cũng được tự động đăng ký vào ~/.cursor/mcp.json, ~/.config/goose/config.yaml và các cấu hình harness khác. Nếu bạn kết nối nhiều server loại này trên cùng một máy, chạy MCP server trên VPS sẽ giải thích chi tiết hơn về mô hình stdio và process.

Trỏ Agentlas đến endpoint Ollama tự host

Vì harness quản lý kết nối đến model, trỏ Agentlas đến các model local nghĩa là trỏ harness của bạn đến Ollama. Ollama đã thêm subcommand launch trong v0.15 cho đúng mục đích này và subcommand này vẫn được phát hành trong v0.32.9 tính đến ngày 11 tháng 8 năm 2026. Subcommand này cấu hình harness hiện có để dùng các model local mà không cần đặt biến môi trường:

ollama pull qwen3-coder:30b
ollama launch opencode

Thay opencode bằng claude, codex hoặc droid, tùy harness bạn đã cài. Sau đó định tuyến một request qua runtime local:

~/.agentlas/runtime/current/bin/hephaestus route "summarise the failing tests" --runtime ollama

Nếu định tuyến thành công, hệ thống trả về một JSON decision cho biết agent hoặc team được chọn, kèm theo receipt_id. Nếu kết quả không có thông tin hữu ích, nguyên nhân thường là context length. Tài liệu Agentlas yêu cầu model có context ít nhất 64k cho các session định tuyến nhiều và nêu qwen3-coder, gemma3deepseek-r1 làm ví dụ. Hướng dẫn riêng của Ollama dành cho các công cụ coding cũng yêu cầu mức tối thiểu 64k này. Routing decision đưa inventory của các agent vào prompt, nên model có context 8k hoặc 32k sẽ làm inventory bị cắt và chọn sai.

Có một điểm cần lưu ý mà tagline sẽ không nói cho bạn biết. Ollama, Gemma và DeepSeek không có plugin hoặc command system riêng, nên các slash command /agentlas không tồn tại trên đó. Với thiết lập dùng model local, bạn điều khiển hệ thống thông qua MCP server và command hephaestus route. Đây là một phần chức năng bị giảm đáng kể, và đó là đánh đổi thực tế để giữ weights trên chính máy của bạn.

Một hub gồm các specialist không hoạt động tốn bao nhiêu RAM

Không tốn gì cả. Đó là toàn bộ câu trả lời, và bạn có thể tự kiểm chứng thay vì chỉ tin vào nó.

Các specialist trong hub được mượn đến dưới dạng package artifact, không phải process. Một specialist gồm một agent.md và một thư mục .agentlas/ chứa JSON: routing-card.json dành cho trigger và capability, memory-map.json quy định phạm vi được ghi, còn mode-map.json cho biết specialist chạy độc lập hay theo nhóm. Hephaestus Network được mô tả là một scheduler chạy trong process, không có background service. Giữa các task, bạn có thể tự kiểm tra:

pgrep -af hephaestus
systemctl --user list-units --type=service | grep -i agentlas
du -sh ~/.agentlas

Hai lệnh đầu tiên không in gì trên một máy đang idle, vì không có gì được giữ trong memory. Lệnh thứ ba in ra chi phí duy nhất mà một hub đang chờ áp lên hệ thống: disk. Chi phí này tăng theo số specialist bạn giữ lại, cộng với embedding model đi kèm mà runtime phát hành.

Vì vậy, câu hỏi về memory hoàn toàn là câu hỏi về lúc burst, còn burst phụ thuộc vào harness và model backend của bạn. Nếu harness gọi đến một hosted API, chi phí resident là một process vài trăm megabyte. Nếu bạn self-host weights, chính weights mới là phần tốn tài nguyên:

ChartModel weights resident on the VPS, published Ollama download sizes, August 2026
The data behind this chart
[
  {
    "label": "Hosted API model",
    "weights_gb": 0
  },
  {
    "label": "gemma3:4b",
    "weights_gb": 3.3
  },
  {
    "label": "gemma3:12b",
    "weights_gb": 8.1
  },
  {
    "label": "gemma3:27b",
    "weights_gb": 17
  },
  {
    "label": "qwen3-coder:30b",
    "weights_gb": 19
  }
]

Đó là kích thước download được công bố trong thư viện model của Ollama, không phải số đo từ một lần benchmark, và KV cache cho context 64k sẽ cộng thêm vào mọi con số lớn hơn 0 ở trên. Model mà tài liệu Agentlas nêu đầu tiên, qwen3-coder:30b, cần 19 GB weights trước khi tính context; ngay cả biến thể Gemma 27B cũng cần 17 GB. So với các con số đó, chính lớp Agentlas không đáng kể trong ngân sách tài nguyên.

So sánh với việc chạy một harness

Chạy một harness với một API được host thì VPS của bạn chạy một process. Thêm Agentlas thì máy vẫn chạy process đó, đồng thời có thêm các file. Orchestrator không phải là một chương trình chạy lâu dài bổ sung. Nó là một prompt lớn hơn được ghép từ các package trên đĩa rồi loại bỏ.

Phần chi phí thay đổi là context, không phải memory. Orchestrator nạp nhiều specialist card cùng metadata định tuyến sẽ dùng nhiều token hơn cho mỗi task so với harness cơ bản. Với API được host, chi phí này tính bằng tiền chứ không phải RAM. Với local weights, chi phí thể hiện ở thời gian, vì prompt dài hơn cần prefill lâu hơn trên CPU hoặc khiến GPU bận hơn.

Vì vậy, cách sizing cho một máy như thế này phụ thuộc vào quyết định chọn model, không phụ thuộc vào agent framework. Sizing RAM và CPU cho một coding agent VPS trình bày chi tiết vấn đề này. Kết luận vẫn giống nhau: chọn plan dựa trên backend bạn định chạy, sau đó cộng thêm vài gigabyte headroom cho harness. Nếu muốn so sánh với thiết kế supervisor luôn chạy, harness multi-agent Omnigent giữ coordinator chạy thường trực. Đây là đánh đổi ngược lại và thể hiện trực tiếp qua lượng memory idle.

Các chế độ lỗi và chuỗi bạn sẽ thấy

hep-build: command not found ngay sau khi cài đặt sạch. Installer đã ghi vào ~/.local/bin, nhưng thư mục này không nằm trong PATH trên image Ubuntu mặc định. Dòng cuối của installer đã thông báo điều đó nhưng đã bị cuộn khỏi màn hình. Thêm export như ở trên.

Hành vi thay đổi sau khi bạn build lại máy. Bạn chưa đặt HEPHAESTUS_REF, nên installer dùng tag mặc định đang hiện hành vào ngày hôm đó. Hãy pin tag này và ghi lại cùng các số phiên bản khác.

Routing chọn sai specialist trên local model. Context window của model quá nhỏ so với inventory của agent. Chuyển sang model có context window từ 64k trở lên và đặt context length của Ollama tương ứng, vì giá trị mặc định thấp hơn mức các coding tool cần.

Không nhận diện được ollama launch. Subcommand này được thêm vào Ollama v0.15. Các package cũ trong distribution repository có trước phiên bản này, vì vậy hãy cài Ollama hiện tại.

Installer ghi vào những harness bạn không dự kiến. Script phát hiện và cấu hình mọi harness mà nó tìm thấy, đồng thời ghi vào ~/.claude/, ~/.codex/, ~/.gemini/, ~/.cursor/ và các thư mục khác. Trên build box dùng chung, hãy đọc script trước khi chạy và xác định những thư mục nào bạn cần quan tâm.

Có nên chạy ngay không

Một dự án mới 10 tuần, được phát hành tự động vài lần mỗi ngày, chưa phù hợp để chạy trong môi trường production. Kiến trúc của dự án thực sự đáng chú ý, license là Apache-2.0, và thiết kế dựa trên file khiến việc gỡ cài đặt chỉ cần xóa 2 thư mục. Những điểm này khiến việc dùng thử khá dễ, nhưng phụ thuộc vào dự án lại có rủi ro cao.

Hiện tại, cách tiếp cận hợp lý là cố định ở v1.2.0, chạy trên một máy chủ có thể rebuild, đưa ~/.agentlas vào hệ thống backup, và đọc lại changelog trước khi thay đổi phiên bản đã cố định. Để xem tổng quan rộng hơn về các lựa chọn khác trong lĩnh vực này và mức độ trưởng thành của từng lựa chọn, bài tổng hợp về các AI agent tự host là điểm bắt đầu phù hợp hơn. Tự host một Hermes agent trên VPS trình bày một trong các harness mà Agentlas điều chỉnh để sử dụng.

FAQ

Agentlas OS có chạy dưới dạng server trên VPS của tôi không?

Không. Repository không có daemon, không có cổng đang lắng nghe và không có container image. Installer ghi runtime vào ~/.agentlas/runtime/ và các command wrapper vào ~/.local/bin. Hephaestus Network là scheduler chạy trong process, không phải background service. Bạn có thể xác nhận trên một máy đang rảnh: pgrep -af hephaestus không in ra gì và không có systemd unit nào để enable. Self-hosting ở đây có nghĩa là code và state nằm trên máy của bạn, không có nghĩa là có một service đang lắng nghe.

Một hub gồm các specialist đang idle dùng bao nhiêu RAM?

Không dùng RAM, vì các specialist đang idle không phải là process. Một specialist gồm một file agent.md và một thư mục .agentlas/ chứa routing-card.json, memory-map.json cùng các metadata tương tự. Vì vậy, một hub đang parked chỉ chiếm disk. Đo dung lượng bằng du -sh ~/.agentlas. Memory chỉ được dùng khi task chạy. Thành phần tiêu thụ memory là process của harness và model backend, không phải lớp Agentlas.

Tôi có thể dùng những model nào, và có thể trỏ Agentlas đến Ollama của riêng tôi không?

Agentlas không tự gọi model API. Host harness quản lý credentials và connection. Vì vậy, các model được hỗ trợ là những model mà harness của bạn hỗ trợ. Với local weights, chạy ollama launch opencode, thay claude, codex hoặc droid, để cấu hình harness kết nối đến Ollama server của bạn mà không cần environment variable. Dùng model có context ít nhất 64k, chẳng hạn qwen3-coder hoặc gemma3, vì routing prompt chứa inventory của các agent và sẽ bị truncate nghiêm trọng với context window nhỏ hơn.

Tôi nên cài version nào, và tại sao pin version lại quan trọng trong trường hợp này?

Cài v1.2.0, tagged release hiện tại vào ngày 12 August 2026, bằng cách set HEPHAESTUS_REF=v1.2.0 trước khi chạy installer. Default của chính script là version="${HEPHAESTUS_REF:-v1.2.0}". Giá trị này sẽ theo bất kỳ release nào mà maintainer tag tiếp theo. Pin version quan trọng hơn bình thường vì project đã publish hơn một trăm release trong series 1.1, trong đó có những ngày publish nhiều release. Vì vậy, rebuild không pin version sau vài tuần sẽ không tạo ra đúng system mà bạn đã test.