Cách chạy coding AI agent trên VPS
Hướng dẫn cài đặt Aider và Goose trên VPS để code từ terminal. Kết nối mượt mà với Ollama hoặc API để tối ưu hóa workflow và quản lý session qua tmux.
Tại sao nên chạy coding agent trên VPS
Một coding agent là công cụ đọc codebase, viết các thay đổi và chạy lệnh để kiểm tra chúng, tất cả đều thực hiện từ terminal. Chạy agent trên một VPS có ba lợi thế so với laptop của bạn: nó vẫn tiếp tục làm việc sau khi bạn ngắt kết nối, nó nằm ngay cạnh code và các build tools của bạn, và nó có thể kết nối với một model mà bạn tự host. Hãy khởi chạy nó bên trong một session tmux để bạn có thể đóng laptop và tiếp tục công việc sau đó, tương tự như cách chạy Claude Code trên VPS với tmux.
Có hai agent chạy trên terminal mà bạn nên biết. Aider là lựa chọn ưu tiên terminal và git: nó tự động commit mỗi thay đổi với một message hợp lý, giúp lịch sử git luôn sạch sẽ và mọi chỉnh sửa đều có thể hoàn tác. Đây là một trong những coding agent trên terminal lâu đời nhất, mặc dù tốc độ phát hành của nó đã chậm lại. Goose, từ Block, có phạm vi rộng hơn: một agent Apache-2.0 với hệ sinh thái extension lớn và hỗ trợ nhiều provider, bao gồm cả các model local qua Ollama, hiện đang được phát triển dưới sự quản lý của Agentic AI Foundation (AAIF) thuộc Linux Foundation. Aider phù hợp với workflow kỷ luật, tập trung vào git; Goose phù hợp với một trợ lý đa năng hơn với bộ plugin rộng lớn.
Những gì bạn cần
Bạn cần một VPS đã cài sẵn git, tmux, và một phiên bản Python gần đây để dùng Aider, hoặc bộ cài Goose cho Goose. Và bạn cần một model: hoặc là API key từ các provider như Anthropic hoặc OpenAI, hoặc là một model local được phục vụ bởi Ollama trên cùng VPS đó. Phương án tự host giúp giữ code trên server riêng của bạn và không tốn chi phí trên mỗi token, đổi lại bạn cần đủ bộ nhớ cho một model đủ mạnh.
Cài đặt và chạy Aider
Cài đặt Aider trong một môi trường cô lập bằng pipx, công cụ này đi kèm với apt vì Ubuntu 24.04 chặn việc cài đặt pip install trực tiếp bên ngoài virtual environment (PEP 668). Sau đó chạy Aider bên trong project của bạn, trong một session tmux để nó không bị dừng khi mất kết nối:
sudo apt install pipx
pipx ensurepath
pipx install aider-chat
tmux new -s aider
cd ~/my-project
aiderLưu ý về phiên bản: cách cài đặt này hoạt động như mô tả trên Ubuntu 24.04. Trên Ubuntu 26.04 hiện tại sẽ lỗi, vì các dependency được pin của Aider bao gồm một bản numpy cũ không build được với Python 3.14 của bản 26.04. Cách khắc phục là cung cấp cho Aider một bản Python 3.12 riêng:
pipx install --python 3.12 --fetch-missing-python aider-chatpipx sẽ tải một interpreter độc lập chỉ dành riêng cho Aider, và quá trình cài đặt sẽ hoàn tất. Đây là hệ quả của việc Aider chậm cập nhật; nếu điều này làm bạn khó chịu, Goose là lựa chọn được bảo trì tích cực hơn.
Khi đã chạy, hãy detach khỏi session bằng tổ hợp phím Ctrl-b rồi d, agent sẽ tiếp tục làm việc ngay cả khi bạn đóng laptop; hãy reattach lại sau bằng tmux attach -t aider để xem nó đã thay đổi những gì. Aider đọc repository, đề xuất chỉnh sửa, áp dụng chúng và commit mỗi thay đổi, nó có thể lấy thêm các file khác để làm context khi một thay đổi trải dài qua nhiều file. Vì mỗi thay đổi là một commit, việc hoàn tác agent chỉ đơn giản là một lệnh git revert, đây là lưới an toàn giúp bạn yên tâm khi sử dụng. Goose được cài đặt bằng script một dòng đã được tài liệu hóa và chạy tương tự từ terminal, thực hiện các tác vụ thông qua các extension của nó:
curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bashHosted model hay self-hosted model
Sử dụng hosted model mang lại chất lượng tốt nhất và không cần phần cứng local, nhưng bạn sẽ tốn chi phí trên mỗi token và code của bạn sẽ được gửi đến provider. Chi phí trên mỗi token sẽ tăng nhanh hơn dự kiến, vì agent sẽ gửi lại toàn bộ hội thoại trong mỗi lượt. Phân tích của Claude Code về chi phí token thực tế của một session agent dài cũng áp dụng ở đây, vì Aider và Goose có cách tính phí tương tự. Sử dụng self-hosted model qua Ollama giúp giữ mọi thứ trên server của bạn và hoàn toàn miễn phí sau khi đã mua phần cứng, nhưng một coding model đủ tốt để sử dụng cần lượng RAM thực sự lớn. Đó là sự đánh đổi cần cân nhắc: chất lượng và sự tiện lợi đối với quyền riêng tư và chi phí.
Nếu bạn chọn self-hosted, câu hỏi thực tế là model nào phù hợp với server của bạn. Hãy kiểm tra dung lượng trước khi tải một model 8GB lên một máy không đủ sức chứa:
An toàn: nó chỉnh sửa file và chạy lệnh
Một coding agent không hoạt động thụ động. Nó ghi đè file và có thể chạy các lệnh build và test, vì vậy hãy quản lý nó cẩn thận như bất kỳ process nào có thể thay đổi hệ thống của bạn. Ba thói quen sẽ giúp giảm thiểu hầu hết rủi ro. Hãy làm việc bên trong một git repository để mọi thay đổi đều được theo dõi và có thể hoàn tác, điều mà Aider thực hiện tự động cho bạn. Chạy agent bằng user thường không có đặc quyền, tuyệt đối không dùng root, tuân theo nguyên tắc least-privilege users, để một lệnh lỗi không thể can thiệp vào toàn bộ hệ thống. Và hãy hardening chính server đó, vì một coding VPS vẫn là một server công khai: chỉ dùng SSH key, firewall mặc định là deny, và các thiết lập bảo mật khác. Hướng dẫn OpenClaw hardening guide cũng áp dụng quan điểm tương tự cho một agent tự chủ hơn, và các nguyên tắc này đều có thể áp dụng chung.
Để tích hợp một coding agent vào workflow của riêng bạn, xây dựng AI agent với Claude cho thấy cách một model điều khiển các công cụ của bạn; chạy Google Gemini CLI trên VPS là một tùy chọn terminal khác, và self-hosting OpenHands là hướng đi tự chủ nặng hơn. Dự án open source được star nhiều nhất trong lĩnh vực này hiện đã có hướng dẫn riêng: chạy OpenCode trên VPS thiết lập nó với cùng mô hình tmux và user không có đặc quyền.
FAQ
Tôi có thể chạy coding agent với model local thay vì API trả phí không?
Có. Cả Aider và Goose đều hoạt động với các model local được phục vụ bởi Ollama, vì vậy bạn có thể chạy một coding agent hoàn toàn tự host mà không tốn chi phí token và không để code rời khỏi server. Điểm mấu chốt là bộ nhớ: một model đủ khả năng viết code hữu ích cần lượng RAM hoặc VRAM lớn, vì vậy hãy kiểm tra cấu hình máy trước khi quyết định.
Nên dùng Aider hay Goose?
Chọn Aider nếu workflow của bạn tập trung vào terminal và git và bạn muốn một tùy chọn trưởng thành nhất, ít tốn tài nguyên nhất; nó tự động commit mọi thay đổi để lịch sử của bạn luôn có thể hoàn tác. Chọn Goose nếu bạn muốn một trợ lý đa năng hơn với hệ sinh thái extension lớn và hỗ trợ nhiều provider. Cả hai đều chạy từ terminal và đều làm việc được với Ollama, nên cả hai đều phù hợp với VPS.
Tôi cần bao nhiêu bộ nhớ cho một self-hosted coding model?
Tùy thuộc vào kích thước của model và mức độ quantization của nó. Một model quantized nhỏ có thể chạy trên vài GB, trong khi một model mạnh hơn cần nhiều hơn nhiều, và context window dài cũng làm tăng thêm nhu cầu này. Hãy sử dụng công cụ tính toán ở trên để ước tính dung lượng bộ nhớ mà một model và độ dài context nhất định cần trước khi bạn tải nó về.
Có an toàn không khi để một AI agent chỉnh sửa code và chạy lệnh của tôi?
Có thể kiểm soát được nếu bạn có thói quen đúng đắn. Hãy giữ công việc trong một git repository để mọi chỉnh sửa đều là một commit có thể hoàn tác, chạy agent dưới quyền một user không có đặc quyền thay vì root, và hardening VPS như cách bạn làm với bất kỳ server công khai nào. Hãy kiểm tra các thay đổi mà nó commit thay vì tin tưởng mù quáng, đặc biệt là bất kỳ lệnh nào nó muốn chạy trên hệ thống của bạn.