Chuyển đến nội dung

Giải pháp · Agent lập trình

VPS cho OpenHands

OpenHands là một agent lập trình tự động: giao cho nó một repository và một nhiệm vụ, nó tự sửa mã, chạy, kiểm thử và mở pull request, với mô hình bạn chọn thông qua API key. README của chính dự án nói cách mạnh nhất để chạy nó là trên một máy chủ đám mây, và cảnh báo của chính dự án nói agent có toàn quyền truy cập máy mà nó chạy. Cả hai đều dẫn tới cùng một câu trả lời: một máy không phải laptop của ai cả. Hướng dẫn máy chủ của dự án coi 2 vCPU và 4 GB là dư dả cho một người dùng; BD-8 giá $12.90 mỗi tháng cho gấp đôi mức đó với giá thấp hơn các máy 4 GB khác.

Những gì nó cần

Phần mềm theo tài liệu chính thức, cấu hình ghi rõ nguồn

Phần mềm và cách thiết lập bảo mật lấy từ tài liệu của chính dự án. Khi dự án không công bố thông số phần cứng, cấu hình sẽ ghi rõ con số đó là của ai.

Từ README, SELF_HOSTING.md và tài liệu của OpenHands

  • “2 vCPU / 4 GB RAM là dư dả cho một người dùng” (hướng dẫn VM của dự án). Tài liệu yêu cầu “một bộ xử lý hiện đại và tối thiểu 4GB RAM”.
  • Cài đặt: Node.js 24 trở lên và uv, rồi npx @openhands/agent-canvas --public. Một lệnh khởi động agent server, backend tự động hóa và ứng dụng web phía sau ingress trên 127.0.0.1:8000.
  • Đặt LOCAL_BACKEND_API_KEY trước lần khởi động đầu tiên: ở chế độ public, mọi lệnh gọi API phải kèm key và ứng dụng web hỏi key trước mọi thứ khác. Chặn mọi thứ trừ SSH trên tường lửa trước; hướng dẫn nói phải làm việc đó trước khi agent chạy lần nào.
  • Một API key từ nhà cung cấp mô hình: tài liệu nói OpenHands cần key cho hầu hết các mô hình. Docker là tùy chọn và chỉ cần nếu bạn muốn mỗi cuộc hội thoại chạy trong sandbox container riêng. Không cần GPU trừ khi bạn tự host mô hình.

Cấu hình (con số của dự án, rồi của chúng tôi)

Chọn cấu hình theo mục đích sử dụng
Khối lượng công việcvCPURAM
Một người dùng, mô hình được host, agent trên máy chủ (chính thức)Con số của chính hướng dẫn. Agent server chạy trực tiếp trên máy, nên chính máy là sandbox.24 GB
Một hoặc hai người dùng, mỗi cuộc hội thoại một sandbox DockerCủa chúng tôi. Mỗi cuộc hội thoại có một container; việc cài dependency, build và bộ kiểm thử đều chạy bên trong.48 GB
Máy chủ agent dùng chung của một nhóm, nhiều agent cùng lúcCủa chúng tôi. Nhiều agent song song trên nhiều repository, mỗi agent đang biên dịch gì đó.824 GB

Các gói phù hợp

5 máy, giá trực tiếp

Máy phù hợp rẻ nhất trước. Giá là giá hôm nay, theo tháng, lấy từ danh mục.

  • BD-8$12.90/tháng

    4 vCPU · 8 GB · 100 GB ổ đĩa · 32 TB

    Rẻ nhất mà vẫn đủ chỗ để build và kiểm thử. 4 vCPU, 8 GB, 100 GB và 32 TB lưu lượng, rẻ hơn các máy 4 GB khác. Gấp đôi con số của hướng dẫn; bộ kiểm thử sẽ tận dụng được số nhân.

  • U2-4-40$14.90/tháng

    2 vCPU · 4 GB · 40 GB ổ đĩa · Unmetered

    Đúng con số của hướng dẫn, unmetered, Istanbul. 2 vCPU / 4 GB / 40 GB. Một người dùng, mô hình được host, agent chạy trên máy chủ. Lưu lượng không tính cho việc clone và cài gói.

  • BD-24$31.90/tháng

    8 vCPU · 24 GB · 300 GB ổ đĩa · 32 TB

    8 vCPU / 24 GB cho máy chủ agent của một nhóm. Nhiều agent cùng lúc, sandbox Docker, backend tự động hóa chạy theo lịch.

  • C2-4-80$37.90/tháng

    2 vCPU · 4 GB · 80 GB ổ đĩa · 3 TB

    Con số của hướng dẫn, tại hàng chục thành phố. 2 vCPU / 4 GB / 80 GB. Chọn vì thành phố; mỗi lần chỉ chạy một cuộc hội thoại.

  • C4-8-160$75.90/tháng

    4 vCPU · 8 GB · 160 GB ổ đĩa · 3 TB

    4 vCPU / 8 GB / 160 GB, tại hàng chục thành phố. Cấu hình thoải mái với ổ đĩa cho nhiều bản checkout và image Docker.

Hiện chưa có preset khởi động cho OpenHands: việc cài đặt là năm bước dưới đây, do bạn tự gõ, theo thứ tự trong hướng dẫn của chính dự án. Tường lửa trước, key thứ hai, agent thứ ba.

Cài đặt

Năm bước, theo đúng thứ tự trong hướng dẫn của chính OpenHands

Hướng dẫn nói rõ tường lửa phải có trước lần khởi động đầu tiên, vì agent server có toàn quyền trên máy và chỉ tường lửa cùng key đứng giữa nó và người lạ.

  1. Tường lửa trước tiên. ufw allow OpenSSH && ufw --force enable Không cho gì vào ngoài SSH. Ingress (8000), agent server (18000), backend tự động hóa (18001) và static server (3001) không được truy cập được từ bên ngoài; hướng dẫn nói rõ đúng như vậy.
  2. Node.js 24 và uv. apt-get install -y curl git curl -fsSL https://deb.nodesource.com/setup_24.x | bash - && apt-get install -y nodejs curl -LsSf https://astral.sh/uv/install.sh | sh uv chạy agent server; hướng dẫn cài nó bằng trình cài đặt một dòng từ astral.sh.
  3. Tạo key, khởi động ở chế độ public. export LOCAL_BACKEND_API_KEY=$(openssl rand -base64 32); echo $LOCAL_BACKEND_API_KEY npx @openhands/agent-canvas --public Hãy sao chép key vào nơi an toàn trước khi tiếp tục; chế độ public nghĩa là ứng dụng web sẽ hỏi bạn key này. Để chạy lâu dài, dùng unit systemd của hướng dẫn tại /etc/systemd/system/agent-canvas.service có Environment=LOCAL_BACKEND_API_KEY=… bên trong, rồi systemctl enable --now agent-canvas.
  4. Truy cập qua SSH, thêm mô hình. ssh -N -L 8000:127.0.0.1:8000 root@your-server rồi mở http://127.0.0.1:8000, dán key, sau đó vào Settings: chọn nhà cung cấp LLM và mô hình rồi dán API key của nhà cung cấp đó. Bắt đầu một cuộc hội thoại trên một repository.
  5. Tùy chọn: một tên miền. Trỏ bản ghi A về máy chủ, mở cổng 80 và 443, apt-get install -y nginx certbot python3-certbot-nginx, và khối nginx của hướng dẫn để proxy tới 127.0.0.1:8000 với header WebSocket; certbot --nginx -d canvas.example.com --redirect lấy chứng chỉ. Nếu 443 phải mở ra toàn thế giới, hướng dẫn nói key là lớp phòng vệ chính của bạn, vì vậy hãy giữ nó dài và bí mật.

Nói thẳng

Gói chúng tôi thực sự sẽ mua

Hướng dẫn nói 2 vCPU và 4 GB là dư dả cho một người dùng. Hãy mua máy 8 GB có giá thấp hơn các máy 4 GB và để agent biên dịch thoải mái.

Cho agent lập trình của một người

BD-8 · $12.90/tháng

4 vCPU, 8 GB và 100 GB với giá $12.90: máy chủ agent, vài repository đã checkout, cây phụ thuộc của chúng và một bộ kiểm thử chạy trong khi bạn theo dõi, vẫn còn dư bộ nhớ nếu bạn bật Docker sandbox. Mô hình nằm ở nơi khác, sau một API key, nên máy này không bao giờ cần GPU và hóa đơn đáng kể là của nhà cung cấp mô hình. C2-4-80 với giá $37.90 đúng bằng con số trong hướng dẫn, có ở hàng chục thành phố, nếu thành phố quan trọng với bạn hơn số nhân.

Câu hỏi

Những điều mọi người hỏi trước khi mua.

OpenHands cần bao nhiêu RAM?
Hướng dẫn VM của chính dự án nói 2 vCPU và 4 GB RAM là dư dả cho một người dùng, và tài liệu khuyến nghị bộ xử lý hiện đại cùng tối thiểu 4 GB. Mức đó đủ cho agent server, backend tự động hóa và ứng dụng web với mô hình được host. Những gì agent làm sau đó, clone repository, cài dependency, chạy build và kiểm thử, là công việc lập trình thông thường và cần tài nguyên lập trình thông thường, vì vậy máy rẻ nhất trên trang này có 4 nhân và 8 GB thay vì đúng mức tối thiểu.
Tại sao nên chạy trên máy chủ thay vì laptop của tôi?
Hai lý do từ chính README. README nói cách mạnh nhất để chạy OpenHands là trên máy chủ đám mây, để agent tiếp tục chạy khi laptop của bạn tắt và có thể được kích hoạt từ Slack, GitHub hoặc webhook. Và README cảnh báo rằng agent server chạy trực tiếp trên máy với toàn quyền truy cập hệ thống tệp, shell và mạng. Một máy không chứa gì ngoài agent và các repository nó làm việc là cách trung thực để trao cho nó quyền truy cập đó.
Nó có cần API key không, hay dùng được mô hình cục bộ?
Tài liệu nói OpenHands cần API key để truy cập hầu hết các mô hình ngôn ngữ, và liệt kê các nhà cung cấp mô hình được host mà nó khuyến nghị. Mô hình cục bộ qua Ollama hoặc máy chủ tương tự được hỗ trợ, nhưng tài liệu nói thêm rằng để agent làm việc hiệu quả với mô hình cục bộ cần phần cứng mạnh và mô hình được tinh chỉnh để làm theo chỉ dẫn. Trên thực tế: dùng mô hình được host và API key trên máy này, và nếu muốn mô hình cục bộ, dùng một máy chủ mô hình riêng có cấu hình theo trang Ollama hoặc dòng GPU.
--public và LOCAL_BACKEND_API_KEY có tác dụng gì?
Khi không có --public, ứng dụng chèn khóa phiên vào trang web cho tiện, điều mà README gọi là không an toàn với một bản triển khai có thể truy cập công khai. Khi có --public, khóa không nằm trong trang: mọi người mở ứng dụng web đều phải dán LOCAL_BACKEND_API_KEY trước, và mọi lệnh gọi API đều phải kèm theo khóa này. Thứ tự trong hướng dẫn là tường lửa, rồi khóa, rồi khởi động, và khóa được tạo bằng openssl rand -base64 32.
Tôi có cần Docker không?
Không cần cho bản cài mặc định, vốn chạy agent server trực tiếp trên máy với Node 24 và uv. Docker dành cho các chế độ sandbox: chạy toàn bộ stack từ image của dự án, hoặc cho mỗi cuộc hội thoại một container riêng để nhiều agent làm việc cùng lúc mà không dùng chung hệ thống tệp. README lưu ý rằng sandbox cô lập việc thực thi cuộc hội thoại, không phải toàn bộ ứng dụng. Nếu bạn muốn dùng, hãy cài Docker và chọn hàng 8 GB trở lên.
Những cổng nào liên quan?
Mọi thứ đều bind vào loopback: proxy ingress trên 127.0.0.1:8000 định tuyến tới static server trên 3001, agent server trên 18000 và backend tự động hóa trên 18001. Bạn truy cập 8000 qua SSH tunnel, hoặc qua nginx trên 443 nếu thêm tên miền. Không cổng nào trong bốn cổng đó được mở trên tường lửa; hướng dẫn liệt kê chúng theo số là những cổng không được truy cập từ bên ngoài.