AI Agents & Skills

Ralph Wiggum loop: chạy agent lặp đi lặp lại cho tới khi test xanh

Tóm tắt

Ralph Wiggum loop (đặt theo tên nhân vật Simpsons) là kỹ thuật chạy AI agent trong một vòng lặp với prompt cố định, kiểm tra bằng test/lint/type-check sau mỗi lượt, và chỉ dừng khi kiểm tra đạt hoặc chạm giới hạn số vòng. “Xong” do harness quyết định, không phải do mô hình tự nhận.

Hầu hết lần dùng AI coding đều có cùng một kiểu thất bại: agent làm một lượt, tuyên bố xong, nhưng test vẫn đỏ. Ralph Wiggum loop (đặt theo tên nhân vật trong The Simpsons) xử lý bằng cách đơn giản đến mức ngớ ngẩn: chạy agent trong một vòng lặp với prompt cố định, kiểm tra bằng test/lint/type-check sau mỗi lượt, và chỉ dừng khi kiểm tra đạt hoặc chạm giới hạn số vòng. “Xong” do harness quyết định, không phải do mô hình tự nhận.

Cơ chế

for i in $(seq 1 20); do
  claude -p "$(cat PROMPT.md)"
  npm test && npm run lint && break   # kiểm tra không thể nói dối
done
  • Trạng thái nằm trong repo: mỗi vòng bắt đầu mới, dựa trên những gì đã lưu xuống đĩa (code, file ghi chú, git history).
  • Anthropic có plugin Ralph Wiggum cho Claude Code dùng Stop Hook thay cho vòng lặp bash — tiện hơn nhưng che bớt cơ chế bên dưới.

Vì sao hiệu quả?

  • Chuyển gánh nặng từ “tin lời mô hình” sang “tin kết quả lệnh”: test pass là bằng chứng khách quan.
  • Khai thác tính lặp: mỗi vòng agent thấy lỗi mới nhất và sửa tiếp, giống người lập trình chạy–sửa–chạy.
  • Mỗi vòng ngữ cảnh mới: tránh ngữ cảnh phình to và “trôi” theo thời gian.

Khi nào hợp, khi nào không?

HợpKhông hợp
Refactor, migration, dọn codeViệc khám phá, chưa có tiêu chí nghiệm thu
Sửa cho tới khi test suite xanhThiết kế UX, quyết định sản phẩm
Làm theo một spec cố địnhYêu cầu còn thay đổi giữa chừng

Rào chắn bắt buộc

  • Giới hạn số vòng và thời gian để kiểm soát chi phí token — vòng lặp không giới hạn là cách nhanh nhất để có hoá đơn bất ngờ.
  • Spec cố định trong suốt vòng lặp để agent không “trôi”.
  • Tiêu chí hoàn thành là lệnh chạy được, không phải câu hỏi “xong chưa?”.
  • Lưu log và diff từng vòng; ưu tiên thay đổi nhỏ.
  • Chạy trong nhánh riêng hoặc sandbox, review trước khi merge.

Bẫy thường gặp

  • Làm cho test xanh bằng cách xoá test: bảo vệ file test (chỉ đọc) hoặc kiểm tra số lượng test không giảm.
  • Kẹt ở cùng một lỗi: nếu 3–4 vòng liên tiếp không tiến triển, dừng và để người xem.
  • Spec mơ hồ: vòng lặp chỉ khuếch đại sự mơ hồ; viết tiêu chí thành công rõ trước.

Áp dụng thế nào?

  • Dev: bắt đầu với một migration nhỏ có test tốt; đặt giới hạn 10–20 vòng.
  • Tech Lead: yêu cầu PR từ vòng lặp phải đính kèm log số vòng và kết quả kiểm tra.
  • PM: ước tính chi phí theo số vòng tối đa × chi phí mỗi vòng, rồi nhân hệ số an toàn.

Nguồn & tham khảo

  1. The Ralph Wiggum Loop (DreamHost)
  2. Self-improving coding agents (Addy Osmani)