Bỏ qua điều hướng

Ralph Loop là gì? Chạy AI agent trong vòng lặp Bash đến khi xong việc

Tìm hiểu Ralph Loop: kỹ thuật chạy AI agent theo vòng lặp Bash, giúp tối ưu Claude Code, tránh context rot và để AI tự code khi bạn rời máy (AFK).

Tuan Tran Van
8 phút đọc
Mục lục (7 phần)
  1. Ralph Loop là gì?
  2. Vì sao chạy theo vòng lặp lại hiệu quả?
  3. Giải phẫu một Ralph Loop
  4. Bắt đầu: từ HITL đến chạy tự động (AFK) (dành cho thành viên)
  5. Những nguyên tắc giữ Ralph đi đúng hướng (dành cho thành viên)
  6. Khi nào nên — và không nên — dùng Ralph (dành cho thành viên)
  7. Tài liệu tham khảo (dành cho thành viên)

Phần lớn lập trình viên dùng AI để code như dùng một khung chat: ra lệnh, ngồi nhìn, rồi nhảy vào sửa khi nó đi lạc. Cách làm có người giám sát (human-in-the-loop, HITL) này ổn cho bản chạy thử (prototype), nhưng đuối ngay khi tính năng phức tạp lên.

Ralph Loop là kỹ thuật chạy các agent lập trình AI (như Claude Code, Amp) trong một vòng lặp Bash, lặp đi lặp lại cho đến khi hoàn thành toàn bộ danh sách nhiệm vụ trong file PRD.

Thay vì để AI tự quyết định khi nào dừng dựa trên xác suất, Ralph buộc agent lặp lại phiên làm việc cho tới khi có kết quả kiểm chứng được qua test và lint.

Đó là bước chuyển từ điều hành agent theo từng bước sang chỉ định trạng thái cuối cùng, rồi để nó tự chạy đến đó.

Ảnh bìa: một AI agent chạy lặp đi lặp lại trong vòng lặp Ralph, mỗi vòng khởi tạo ngữ cảnh mới cho đến khi hoàn thành nhiệm vụ

Ralph Loop là gì?

Tên gọi Ralph Loop bắt nguồn từ nhân vật Ralph Wiggum trong The Simpsons—cậu bé nổi tiếng vì thất bại liên tục nhưng cứ kiên trì thử lại đến khi thành công. Kỹ thuật này do Geoffrey Huntley khởi xướng, dựa trên một hình dung đơn giản: phần mềm giống như nắm đất sét trên bàn xoay, kết quả chưa ưng thì ném lại vào vòng lặp để nhào nặn tiếp.

Về kiến trúc, Ralph chọn mô hình một khối (monolithic). Trong khi nhiều kỹ sư lao vào bài toán đa agent (multi-agent), Huntley cảnh báo rằng để các thực thể bất định (non-deterministic) nói chuyện với nhau rất dễ thành một mớ hỗn độn ("red hot mess"). Ralph đi hướng ngược lại: một tiến trình duy nhất, xử lý đúng một task mỗi vòng lặp. Khác biệt cốt lõi nằm ở mức độ tự trị:

  • Vibe coding: code theo cảm tính, nhận đại đề xuất của AI mà không soi kỹ. Xem thêm vibe coding là gì.
  • Planning: lập kế hoạch trước khi code, nhưng vẫn gói gọn trong một phiên làm việc dài nên dễ tích lũy sai số.
  • Ralph: agent tự chọn task quan trọng nhất từ PRD, tự làm, tự kiểm tra và lặp lại cho đến khi đạt mục tiêu.

Vì sao chạy theo vòng lặp lại hiệu quả?

Hai kẻ thù lớn nhất của AI coding hiện nay là context rot (thối rữa ngữ cảnh) và compaction (nén dữ liệu). Một phiên làm việc kéo dài sẽ làm đầy mảng dữ liệu (array) của ngữ cảnh, buộc model phải tóm tắt lại lịch sử. Quá trình nén đó đánh rơi những chỉ dẫn quan trọng ở đầu phiên, khiến AI "ngu" dần theo thời gian.

So sánh một phiên làm việc dài bị thối rữa ngữ cảnh với vòng lặp Ralph khởi tạo ngữ cảnh mới cho mỗi nhiệm vụ

Ralph xử lý gốc rễ bằng cơ chế fresh context. Vòng lặp Bash chạy bên ngoài sẽ giết và khởi động lại session AI hoàn toàn, xóa sạch dữ liệu rác và đưa model về trạng thái suy luận tốt nhất. Cách này hiệu quả hơn hẳn các plugin chạy bên trong Claude Code—vốn vẫn giữ session cũ nên không thật sự giải quyết được chuyện nén ngữ cảnh. Ralph còn chữa được tật "tưởng là xong" của model: nó dựng một hợp đồng thực thi, agent chỉ được thoát khi đưa ra bằng chứng kỹ thuật rằng code đã vượt qua mọi rào kiểm định.

Giải phẫu một Ralph Loop

Một Ralph Loop tiêu chuẩn gồm bốn thành phần ăn khớp với nhau để giữ trí nhớ qua mỗi lần reset ngữ cảnh:

Sơ đồ giải phẫu một Ralph Loop: vòng lặp Bash bao quanh bốn tệp trạng thái prd.json, progress.txt, agents.md và sigil Completion Promise

  1. prd.json: danh sách nhiệm vụ có cấu trúc, mang các trường trạng thái như passes: true/false. Đây là kim chỉ nam để agent tự xác định việc tiếp theo.
  2. progress.txt: bộ nhớ ngắn hạn, ghi lại quyết định kiến trúc, bài học và blocker của từng vòng lặp. Agent đọc file này khi mở session mới để khỏi lặp lại sai lầm cũ.
  3. agents.md (hoặc CLAUDE.md): bộ nhớ dài hạn, lưu các quy ước và pattern riêng của dự án mà AI phải tuân thủ tuyệt đối.
  4. Completion Promise (sigil): từ khóa dừng vòng lặp, ví dụ <promise>COMPLETE</promise>. Trong Claude Code, cơ chế này móc vào Stop Hook để chặn việc thoát session khi chưa đạt điều kiện hoàn thành.

Chia sẻ bài viết

X / TwitterFacebookLinkedIn