---
title: "zerostack: agent lập trình Rust chỉ cần 8MB RAM"
description: "Một lập trình viên tự viết coding agent bằng Rust thuần với RAM idle chỉ 8MB. HN tranh cãi liệu con số đó có ý nghĩa không."
pubDate: "2026-05-17"
lang: "vi"
slug: "zerostack-rust-coding-agent-8mb"
url: "https://hoangyell.com/vi/zerostack-rust-coding-agent-8mb/"
author: "HoangYell"
translation_en: "https://hoangyell.com/zerostack-rust-coding-agent-8mb/"
categories: ["AI & Agents"]
tags: ["rust", "coding-agents", "developer-tools", "performance", "open-source"]
heroImage: "https://raw.githubusercontent.com/yellcamap/img/refs/heads/main/photo-1571171637578-41bc2dd41cd2.webp"
---

Một buổi sáng tôi gõ `claude --version` chỉ để kiểm tra con số. Con trỏ đứng yên. Bốn giây sau terminal in ra một chuỗi version rồi im lặng.

Tôi không phải người duy nhất để ý chuyện này. Một tài khoản tên `mohsen1` trên HN đã bấm giờ nghiêm chỉnh và đăng kết quả lên:

```
$ time claude --version
2.1.143 (Claude Code)

Executed in    4.39 secs      fish           external
   usr time   29.68 millis    0.26 millis   29.41 millis
   sys time   71.30 millis    1.30 millis   70.00 millis
```

Benchmark đó giờ đang nằm trong thread bình luận của [zerostack](https://crates.io/crates/zerostack/1.0.0), một coding agent Rust vừa xuất hiện trên HN hôm qua với 335 upvote.

## Câu chuyện trong một câu

zerostack là một coding agent full-featured viết bằng 7.000 dòng Rust thuần - hỗ trợ đa provider (OpenRouter, OpenAI, Anthropic, Gemini, Ollama), hệ thống phân quyền bốn mức, quản lý session, hệ thống prompts có thể chuyển đổi, MCP cho công cụ mở rộng, tích hợp git worktree, và vòng lặp tác vụ dài hạn - với RAM idle chỉ khoảng 8MB và binary nặng 8.9MB.

Để so sánh: opencode và các agent nền JS khác chạy ở mức khoảng 300MB lúc rảnh.

## Vì sao bài này leo top HN

*So sánh kiến trúc runtime: ZeroStack (Rust binary 8MB) vs. Node.js Agent cồng kềnh:*

```markdy
scene width=1100 height=540
theme: light=doodle dark=nebula
layout auto

service RustCLI "zerostack (File binary duy nhat 8.9MB)"
module RustCore "Tokio Async + 7.000 dong Pure Rust"
cluster RustFootprint "Hieu nang: 8MB RAM luc nhan roi / 10ms Khoi dong"
service HeavyCLI "Node CLI / Runner Electron"
module V8Runtime "Moi truong Node.js + V8 JIT + Hang nghin NPM package"
cluster HeavyFootprint "Hieu nang: 300MB+ RAM nhan roi / 4.3s Khoi dong"

group zerostack_arch "ZeroStack (Agent Native bang Rust)":
  RustCLI
  RustCore
  RustFootprint

group heavy_arch "Cac Agent Node.js / Electron thong thuong":
  HeavyCLI
  V8Runtime
  HeavyFootprint

edge e1: RustCLI -> RustCore: "Zero-cost abstraction truc tiep"
edge e2: RustCore -> RustFootprint: "Tieu thu tai nguyen toi thieu"

edge e3: HeavyCLI -> V8Runtime: "Chi phi bien dich V8 engine"
edge e4: V8Runtime -> HeavyFootprint: "Rac bo nho & phinh to dependency"

beat compare "Chiem 1/40 bo nho nhung khong danh doi tinh nang" {
  show $nodes stagger=50ms
  glow RustFootprint "Khoi dong tuc thi trong 10ms, ho tro day du MCP va da LLM"
}

player:
    playback:
      loop true
    controls:
      speed true
      speeds "0.25"
      fullscreen true
      gif true
      theme true
    interaction:
      zoom true
      pan true
      click_to_play true
      double_click_to_reset true
      keyboard false
    chrome:
      badge true
      progress none
```

Công thức quen thuộc: Rust, một lập trình viên, một dự án lớn dần thành thứ gì đó thật sự, và một README có bảng hiệu năng khiến các tool khác trông ngại.

| Chỉ số            | zerostack | opencode / agent JS |
| ----------------- | --------- | ------------------- |
| RAM (rảnh)        | ~8MB      | ~300MB              |
| RAM (đang làm)    | ~12MB     | ~300MB+             |
| CPU (rảnh)        | 0,0%      | ~2%                 |
| CPU (dùng tool)   | ~1,5%     | ~20%                |
| Kích thước binary | 8,9MB     | -                   |

Cú đấm càng mạnh hơn khi nhìn vào danh sách tính năng thật sự. Đây không phải toy project bị cắt xén. Nó có hệ thống prompts với các chế độ chuyển đổi được: `code`, `plan`, `review`, `debug`, `ask`, `brainstorm`, `frontend-design`, `review-security`... Nó tự đọc `AGENTS.md` và `CLAUDE.md` từ thư mục dự án, y như mọi agent lớn khác. Nó có bộ phát hiện doom-loop - tự động dừng lại khi agent lặp đúng một tool call ba lần liên tiếp.

Nói cách khác: đủ tính năng, nhưng chỉ bằng một phần bốn mươi bộ nhớ.

## Thread HN đang tranh cãi gì

Bình luận nổi nhất đến từ `throwa356262`, thẳng vào con số:

> "RAM footprint: ~8MB khi session rỗng, ~12MB khi đang làm việc. Tôi thích điều này lắm, Claude Code đang dùng nhiều gigabyte, cực kỳ khó chịu trên laptop cấu hình thấp."

Tiếp theo, `360MustangScope` thú nhận họ đang giữa chừng tự viết một agent Rust thì zerostack xuất hiện:

> "Thật buồn cười khi opencode cứ leak bộ nhớ dần, đến khi làm dự án lớn thì leo lên 6GB rồi chậm dần đều."

Rồi bình luận sắc bén nhất thread đến từ `2001zhaozhao`:

> "Hơi buồn cười khi coding agent cần kéo 1000W+ và dùng 2TB+ bộ nhớ ở data center để chạy, vậy mà người ta cứ tập trung vào vài watt và vài trăm megabyte trên laptop - vốn đã bị chi phí compile code che khuất rồi."

Kỹ thuật mà nói, điều này đúng. Model không chạy trên máy của bạn. Inference nằm đâu đó ở một data center, và chi phí năng lượng mỗi request lớn hơn nhiều so với những gì client địa phương tiêu tốn. Liệu process local dùng 8MB hay 300MB chỉ là nhiễu so với đó.

Nhưng tôi nghĩ lập luận ngược lại cũng có lý: hiệu năng client-side không phải chuyện bảo vệ môi trường - mà là chuyện _cảm giác_ dùng tool. Một tool ngốn 2% CPU khi bạn không dùng nó, một tool mất bốn giây để in ra version của chính nó - tool đó đang nói với bạn điều gì đó về những giả định mà tác giả đã mặc định. Và những giả định đó không phải của tôi.

## Nên thử không?

**Thử zerostack nếu:** bạn đang dùng agent dòng lệnh và muốn thứ gì đó không ngốn 2% CPU lúc nhàn, máy bạn có RAM hạn chế và 300MB thật sự gây khó chịu, bạn muốn chuyển LLM provider mà không phải đổi tool, hoặc bạn tò mò xem một lập trình viên solo xây dựng toàn bộ agent stack trong ~7k dòng như thế nào.

**Bỏ qua nếu:** bạn cần tích hợp VS Code của Claude Code, cần hỗ trợ Windows được kiểm thử kỹ (zerostack nói thẳng là không test), hoặc workflow của bạn phụ thuộc vào thứ gì đó provider-specific.

Cài đặt chỉ một lệnh:

```bash
cargo install zerostack
export OPENROUTER_API_KEY="your-key"
zerostack
```

Có một tính năng tôi thích: sandbox mode. Cài `bubblewrap` rồi truyền `--sandbox`, mọi lệnh bash sẽ chạy trong môi trường cô lập. Loại tính năng này cho thấy tác giả đã nghĩ đến những gì có thể xảy ra nếu mọi thứ đi sai hướng.

Toàn bộ codebase nhỏ đến mức một người dùng (`hiAndrewQuinn`) đã đút cả source code vào một agent khác để kiểm tra tự động và không thấy gì đáng ngờ. Đó là ưu điểm của codebase nhỏ và dễ đọc.

***

Thảo luận trên [Hacker News](https://news.ycombinator.com/item?id=48164287) · Nguồn: [crates.io](https://crates.io/crates/zerostack/1.0.0) · Đăng bởi [gidellav](https://news.ycombinator.com/user?id=gidellav)
