Skip to content

Zerostack: AI Coding Agent Viết Bằng Rust, RAM 16MB Và Bài Học Về Hiệu Năng

Karify98 & Amy 🌸·
Cover Image for Zerostack: AI Coding Agent Viết Bằng Rust, RAM 16MB Và Bài Học Về Hiệu Năng

Khi AI Agent Nặng Hơn Cả IDE

Mở Claude Code hay Copilot lên, nhìn Activity Monitor và thấy: "Ủa, sao cái tool chat này ngốn RAM gần bằng cả cái VS Code vậy?" Đó không phải ảo giác. Hầu hết AI coding agent hiện nay — Claude Code, opencode, Copilot — đều ngốn 300-700MB RAM, chưa kể CPU khi hoạt động.

Lý do? Chúng được viết bằng Node.js hoặc TypeScript. Runtime của Node.js tự thân đã chiếm một phần đáng kể tài nguyên — trước khi LLM kịp "suy nghĩ" gì cả.

Zerostack ra đời để thách thức giả định đó.

Zerostack Là Gì?

Zerostack là một AI coding agent mã nguồn mở, viết hoàn toàn bằng Rust, được phát triển bởi gi-dellav. Dự án được lấy cảm hứng từ pi và opencode, nhưng tập trung vào một thứ mà hầu hết các agent bỏ qua: hiệu năng.

Con số biết nói:

  • Binary size: 12.9MB
  • RAM idle: ~16MB (so với ~300MB của opencode)
  • RAM peak: ~24MB (so với ~700MB của JS-based agents)
  • CPU idle: 0.0% (so với ~2% của opencode)
  • CPU working: ~1.5% (so với ~20%)
  • Codebase: ~13,000 dòng Rust

Nói cách khác: Zerostack nhẹ hơn 18 lần về RAM so với các lựa chọn JS-based, trong khi vẫn giữ đầy đủ tính năng của một AI coding agent hiện đại.

Tại Sao Rust Là Lựa Chọn Đúng Cho AI Agent?

Đây không phải là câu chuyện "Rust tốt hơn TypeScript". Mỗi ngôn ngữ có thế mạnh riêng. Nhưng với AI coding agent — thứ chạy ngầm trên máy developer, tương tác liên tục với filesystem, và cần phản hồi nhanh — Rust có 3 lợi thế rõ rệt:

1. Không Garbage Collection

JavaScript/TypeScript dùng V8 engine với garbage collector. Trên các ứng dụng chạy lâu dài như AI agent, GC pause có thể gây ra độ trễ khó chịu. Rust không có GC — compiler kiểm soát bộ nhớ tại compile time, không cần runtime can thiệp.

2. Binary Native, Không Interpreter

Zerostack compile thành một binary duy nhất. Không cần Node.js, không cần Python interpreter, không cần Docker. Chỉ cần cargo install zerostack là sẵn sàng.

Điều này cực kỳ quan trọng trong CI/CD pipeline — nơi mỗi MB RAM đều quý giá và không muốn agent coding chiếm hết tài nguyên build server.

3. Memory Safety Tại Compile Time

Đây là điểm mấu chốt. Một AI agent liên tục đọc/ghi file, chạy shell commands, và tương tác với API bên ngoài. Memory bug trong agent có thể dẫn đến crash hoặc tệ hơn — data corruption. Rust's borrow checker đảm bảo những bug này không tồn tại ngay từ đầu.

Tính Năng: Nhẹ Nhưng Không Thiếu

"Minimalistic" không có nghĩa là "thiếu tính năng". Zerostack có mọi thứ mong đợi từ một AI coding agent:

Multi-Provider

Hỗ trợ OpenRouter, OpenAI, Anthropic, Gemini, Ollama, và custom provider. Không lock-in vào một ecosystem nào.

# Dùng OpenRouter (mặc định)
export OPENROUTER_API_KEY="sk-..."

# Hoặc Anthropic trực tiếp
zerostack --provider anthropic --model claude-opus-4-8

Permission System 5 Chế Độ

Đây là tính năng tôi đánh giá cao nhất:

  • Restrictive — hỏi trước mọi thao tác (phù hợp production)
  • Read-only — chỉ được đọc, không được sửa
  • Guarded — đọc tự do, ghi cần phê duyệt
  • Standard — quyền mặc định cho công việc hàng ngày
  • YOLO — làm tất cả không hỏi (ai cũng có lúc cần)

Sự phân cấp này cực kỳ hữu ích khi onboarding junior developer hoặc chạy automated tasks. Không ai muốn AI agent tự ý xóa code vào chiều thứ Sáu.

Prompt Modes Có Thể Chuyển Đổi Runtime

/prompt code để viết code, /prompt review để review, /prompt plan để lên kế hoạch, /prompt debug để debug. Agent tự điều chỉnh tone và behavior theo task — không cần quản lý Skills riêng biệt.

MCP, Git Worktree, Sandbox

  • MCP (Model Context Protocol): Kết nối MCP servers để mở rộng tools
  • Git Worktree: /worktree để chuyển giữa các branch mà không mất context
  • Sandbox (bubblewrap): Mọi bash command chạy trong môi trường cách ly — an toàn tuyệt đối
  • ACP support: Editor như Zed có thể kết nối trực tiếp qua Agent Communication Protocol

So Sánh Nhanh: Zerostack vs JS-Based Agents

Tiêu chí Zerostack Claude Code / opencode
Ngôn ngữ Rust TypeScript/Node.js
Binary size 12.9MB Cần Node.js runtime
RAM idle ~16MB ~300MB
RAM peak ~24MB ~700MB
CPU idle 0.0% ~2%
Sandbox Có (bubblewrap) Không mặc định
Permission modes 5 chế độ 3-4 chế độ
Prompt modes 7+ modes Qua skills

Điều Này Có Nghĩa Gì Cho Developer?

1. AI Agent Cho Máy Cấu Hình Thấp

Với laptop 8GB RAM từ 2019, mở VS Code + browser + Docker là đã thấy RAM đỏ lòm. Thêm một Claude Code 700MB nữa là máy thành lò sưởi. Zerostack 16MB là lựa chọn thực tế cho những ai không muốn nâng cấp phần cứng chỉ để chạy AI tools.

2. CI/CD Pipeline Không Bị "Ngộp"

Khi tích hợp AI agent vào CI/CD (code review tự động, generate test, fix lint), mỗi MB RAM đều tính tiền. Zerostack với ~16MB RAM và 0% CPU idle là lựa chọn lý tưởng cho GitHub Actions runner hoặc build server.

3. Xu Hướng "Back to Native"

Zerostack không đơn độc. Chúng ta đang thấy một làn sóng AI tools viết bằng Rust, Go, Zig — những ngôn ngữ compiled, native performance. Đây là sự trưởng thành của AI tooling ecosystem: từ "làm cho nó chạy được" sang "làm cho nó chạy tốt".

4. Bảo Mật Tốt Hơn Mặc Định

Với sandbox bubblewrap và permission system chi tiết, Zerostack giảm thiểu rủi ro AI agent vô tình (hoặc cố ý) gây hại. Trong bối cảnh supply chain attack nhắm vào developer workstation ngày càng tăng, đây là tính năng sống còn.

Cài Đặt Trong 1 Phút

# Cần Rust toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Cài zerostack
cargo install zerostack

# Cấu hình API key
export OPENROUTER_API_KEY="sk-or-v1-..."

# Bắt đầu
zerostack

# Hoặc one-shot
zerostack -p "Giải thích project này cho tôi"

# Tiếp tục session trước
zerostack -c

Sau khi chạy, gõ /prompt autoconfig để agent hướng dẫn cấu hình chi tiết.

Hạn Chế Cần Biết

Zerostack vẫn đang trong giai đoạn phát triển sớm:

  • Windows chưa được test đầy đủ
  • Ecosystem plugin/skill chưa phong phú bằng Claude Code
  • ACP và persistent memory còn ở dạng gated (cần build với feature flag)
  • Cộng đồng còn nhỏ so với các agent lớn

Tuy nhiên, với tốc độ phát triển hiện tại và 480+ stars trên Hacker News chỉ sau vài ngày, Zerostack đang cho thấy đây không phải là "yet another AI wrapper" — mà là một hướng đi mới cho AI tooling.

Kết Luận

Zerostack không cố gắng thay thế IDE extension AI đầy đủ tính năng. Nó nhắm đến một phân khúc cụ thể: developer muốn AI agent nhanh, nhẹ, và an toàn — không phải một con quái vật ngốn RAM.

Điều thú vị hơn là xu hướng mà Zerostack đại diện: AI tools đang bước vào giai đoạn optimization. Sau 2 năm "move fast and break things" với LLM wrappers, developer đang đòi hỏi tools phải tôn trọng tài nguyên máy — giống như cách chúng ta tối ưu database query hay bundle size.

Đã thử Zerostack chưa? Hay vẫn trung thành với Claude Code / Copilot? Điều gì khiến chưa chuyển sang lightweight agents?


Bài viết được hỗ trợ bởi AI (Amy 🌸). Nội dung đã được kiểm duyệt bởi tác giả.

Related Posts