Claude Code chạy suốt đêm: loop engineering và Ralph Loop năm 2026
MarkdownCách chạy Claude Code trong một vòng lặp tự động: Ralph Loop, /loop, /goal, /batch. Các tình huống có thể dùng ngay và cách tránh tiêu tốn cạn token trong năm 2026.
Đọc toàn bộ bài viết
Điểm chính
Loop engineering là cách tiếp cận trong đó bạn không tự tay nhắc Claude Code mỗi lần, mà xây dựng một vòng lặp. Vòng lặp nhận nhiệm vụ, thực hiện một bước, kiểm tra kết quả rồi tự quyết định tiếp tục hay dừng. Hướng dẫn này chỉ bạn cách thiết lập Ralph Loop đầu tiên chỉ trong một buổi tối để nó làm việc cho bạn mỗi ngày.
Tài liệu tham khảo của Ailoot: ailoot.ai/docs/.
Loop engineering là gì, và vì sao bạn nên quan tâm?
Điểm chính
Loop engineering thay đổi vai trò của bạn. Trước đây, bạn ngồi nhắc agent: “làm X, sửa Y, kiểm tra Z”. Giờ đây, bạn viết một hệ thống nhỏ để thực hiện việc đó thay bạn theo vòng lặp: giao nhiệm vụ — nhận kết quả — kiểm tra — quyết định việc tiếp theo. Bạn ngừng gõ, còn agent tiếp tục tạo ra sản phẩm.
Còn phát biểu thứ hai cho thấy quy mô:
Đằng sau những phát biểu ấy là một vai trò kỹ thuật mới: bạn là kiến trúc sư của các vòng lặp, không phải người trực tiếp thao tác bàn phím.
Thực hiện việc đó một lần hôm nay, rồi mỗi ngày số lượng khách hàng tiềm năng tăng lên, bài viết được xuất bản tự động, bot xử lý thư từ và báo cáo chỉ số được gửi đến bàn bạn trước 9 giờ sáng. Bạn xây dựng nó, rồi nó làm việc mỗi ngày mà không cần bạn.
Nếu bạn vẫn mở Claude Code, viết prompt, chờ, đọc rồi viết prompt khác, bạn đang bỏ lỡ thay đổi lớn nhất của năm 2026. Các mô hình đã đủ mạnh để hoạt động theo vòng lặp mà không cần giám sát.
Ralph Loop khác gì một yêu cầu Claude Code thông thường
Điểm chính
Một yêu cầu Claude Code thông thường chỉ diễn ra một lần: bạn viết “làm X”, Claude thực hiện, rồi cuộc trò chuyện kết thúc. Ralph Loop cũng làm vậy nhưng theo vòng lặp: mỗi khi Claude định thoát, một hook sẽ chặn thao tác thoát và gửi lại prompt của bạn. Các tệp Claude đã tạo vẫn còn đó, nên mỗi lượt lặp mới tiếp nối lượt trước. Vòng lặp dừng khi nhận được tín hiệu hoàn tất (Claude xuất ra từ “DONE”) hoặc chạm giới hạn số lượt lặp.
At its core, the technique is a simple bash loop around an agent:
Đoạn mã gốc đã khởi đầu toàn bộ làn sóng này:
while :; do cat PROMPT.md | claude-code ; done
Một prompt trong tệp, được bao quanh bởi một vòng lặp vô hạn. Và nhận xét thẳng thắn nhất của tác giả:
Anthropic đóng gói cùng logic đó trong plugin ralph-loop và các lệnh /loop, /goal và /batch của Claude Code — có thể dùng ngay trong terminal mà không cần script. Việc Anthropic phát hành plugin để nhắc lại prompt vô hạn đã làm dấy lên cuộc tranh luận trong GitHub Issue #23084 về việc điều đó có công bằng với mô hình hay không. Cuộc tranh luận vẫn đang mở; plugin vẫn hoạt động.
Ba lệnh có sẵn trong Claude Code: /loop, /goal, /batch
Điểm chính
Claude Code v2.1+ có ba lệnh tương ứng với các mức độ tự chủ khác nhau. /loop lặp lại một nhiệm vụ theo khoảng thời gian (hàng giờ, hàng ngày, giám sát). /goal làm việc qua từng lượt cho đến khi mô hình đánh giá nói “xong”. /batch thực hiện một thay đổi cơ học lớn thông qua các agent worktree chạy song song. Mỗi lệnh có phạm vi sử dụng riêng.
| Lệnh | Khi nào sử dụng | Phiên bản | Giới hạn |
|---|---|---|---|
/loop 30m <prompt> | Lặp lại theo khoảng thời gian (giám sát, thăm dò định kỳ) | v2.1.72+ | 7 ngày, 50 tác vụ/phiên |
/goal <condition> | Làm việc cho đến khi đạt mục tiêu (mẫu verifier) | v2.1.139+ | Điều kiện tối đa 4000 ký tự |
/batch <change> | Tái cấu trúc cơ học song song | v2.1.63+ | Mỗi đơn vị có git worktree riêng |
/goal là lệnh giống Ralph Loop nhất. Bên dưới, một mô hình đánh giá (mặc định là Haiku) kiểm tra sau mỗi lượt xem mục tiêu đã đạt chưa. Nếu chưa, lượt tiếp theo sẽ có gợi ý cụ thể về điều cần sửa. Nếu rồi, lệnh sẽ dừng. Tôi đã trình bày chi tiết /goal trong hướng dẫn về chạy Claude Code tự động qua đêm bằng /goal — hướng dẫn có các tình huống dùng ngay cho 14 giờ làm việc.
/batch là lệnh ít dùng nhưng mạnh mẽ. Khi cần thực hiện cùng một thay đổi trên hơn 100 tệp (di chuyển API, thay thế component, đổi tên), /batch gửi từng tệp cho một subagent riêng trong git worktree riêng. Các thay đổi không xung đột vì mỗi agent làm việc trên một bản sao biệt lập. Tìm hiểu thêm về subagent trong hướng dẫn về subagent lồng nhau.
Trong phần mô tả cách tiếp cận này của tác giả, nó được gọi đơn giản là:
Các giới hạn cứng của /loop và /goal:
- Tác vụ chạy chừng nào Claude Code còn mở. Đóng terminal thì vòng lặp dừng. Với một chu kỳ qua đêm nghiêm túc, hãy dùng máy chủ từ xa hoặc shell wrapper của riêng bạn.
- Thời gian tồn tại tối đa của một tác vụ định kỳ là 7 ngày (sau đó tác vụ tự động bị xóa để tránh những vòng lặp bị quên).
- Tối đa 50 tác vụ đồng thời trong một phiên.
Cách khởi chạy vòng lặp tự động đầu tiên trong 5 phút
Điểm chính
Cách bắt đầu nhanh nhất là dùng /goal có sẵn. Mở Claude Code, nhập lệnh kèm mục tiêu và điều kiện dừng có thể kiểm chứng, rồi tiếp tục công việc của bạn. Claude tạo mã, chạy kiểm thử, đọc lỗi, sửa lỗi rồi chạy kiểm thử lại cho đến khi đạt.
5 bước:
Mở dự án trong Claude Code
Đi đến thư mục gốc của dự án trong terminal và chạy
claude. Chờ Claude đọcCLAUDE.mdvà lập chỉ mục repository.Xác định mục tiêu và điều kiện dừng
Mục tiêu là việc cần thực hiện. Điều kiện dừng là cách Claude biết khi nào hoàn tất. Tốt nhất, đó là một lệnh trả về 0 hoặc 1. Ví dụ: “Mục tiêu: cả 23 bài kiểm thử trong
tests/api/*.test.tsđều đạt. Dừng khipnpm testtrả về exit 0.”Chạy /goal
Lệnh:
/goal Tất cả bài kiểm thử trong tests/api/*.test.ts phải đạt. Chạy pnpm test, đọc lỗi, sửa lỗi và chạy lại. Dừng khi exit code = 0. Tối đa 20 lượt lặp.Claude bắt đầu vòng lặp: chạy kiểm thử — thấy lỗi — mở tệp — sửa lỗi — chạy lại.
Đặt giới hạn ngân sách
Trong một tab chạy nền, dùng
/usageđể theo dõi mức sử dụng. Đặt giới hạn token hoặc tiền cho ngày hôm đó để không tiêu hết số dư vào một vòng lặp. Xem thêm chi tiết trong hướng dẫn về cách không dùng cạn giới hạn Claude Code.Tiếp tục công việc của bạn
Quay lại sau 30 phút. Nếu nhiệm vụ đơn giản, hệ thống sẽ hiện “DONE, tất cả bài kiểm thử đều đạt”. Nếu phức tạp hơn, hãy đọc báo cáo: “đã dừng ở lượt lặp 20, lý do X”. Tự sửa những gì vòng lặp chưa làm được rồi khởi động lại.
Mẫu verifier: cách Claude tự kiểm tra công việc trong vòng lặp
Điểm chính
Claude luôn cần có cách kiểm tra công việc của mình. Không có kiểm tra, agent trong vòng lặp sẽ bắt đầu bịa — nó cho rằng nhiệm vụ đã xong trong khi mọi thứ thực tế đều hỏng. Verifier là một lệnh (kiểm thử, lint, mô hình đánh giá hoặc kiểm tra tùy chỉnh) đưa ra kết quả rõ ràng “xong/chưa xong”.
Có ba loại verifier:
1. Kỹ thuật (exit code) — đáng tin cậy nhất. pnpm test, npm run lint, tsc --noEmit, playwright test. Chúng trả về 0 hoặc 1, không cần diễn giải. /goal cũng hoạt động theo cách này — bên dưới, nó dùng mô hình đánh giá Haiku để kiểm tra sau mỗi lượt xem điều kiện đã được đáp ứng chưa (tối đa 4000 ký tự).
2. Mô hình đánh giá — một mô hình thứ hai xem xét kết quả của mô hình đầu tiên và chấm theo bộ tiêu chí. Phù hợp với những nhiệm vụ không có phép kiểm tra chính thức (“Văn phong có tốt không?” “Thiết kế có hợp thương hiệu không?”). Tại Anthropic, cách này được gọi là Claude Code Review — một chế độ trong đó agent đánh giá riêng tìm lỗi logic, trường hợp biên và vấn đề bảo mật trong công việc của agent chính. Theo dữ liệu nội bộ của Anthropic, cách này phát hiện 84% vấn đề trong các PR lớn (tăng từ 16% với phương pháp cơ sở).
3. Kiểm tra tùy chỉnh — shell script do bạn tự viết. “Nếu nhật ký không có từ ERROR thì coi như xong.” “Nếu tệp output.json tồn tại và phân tích được thì coi như xong.” “Nếu trang /pricing trả về 200 thì coi như xong.”
Trong cách tiếp cận của tác giả, các skill có một bước kiểm tra đối kháng riêng cho Claude sau mỗi giai đoạn. Đây là mẫu prompt tôi đặt trong CLAUDE.md hoặc trong một lệnh:
Tìm 10 lý do khiến dự án này có thể gặp trục trặc.
Hãy đặt mình vào tình huống có điều gì đó đã sai.
Tôi có thể xem lại câu chuyện này nhiều lần -
trước khi phát hành cho công chúng.
Lỗi phổ biến nhất của người mới là bắt đầu vòng lặp mà không có verifier. Agent quay vòng tại chỗ: viết mã, không kiểm tra, nghĩ rằng đã xong, chuyển sang lượt tiếp theo rồi viết lại những gì đã làm. Ba giờ sau, mọi thứ thành một mớ hỗn độn và hóa đơn là $200.
Quy tắc chính: viết verifier trước, rồi mới bắt đầu vòng lặp. Nếu bạn không thể nêu điều kiện dừng trong một dòng, nhiệm vụ chưa sẵn sàng để tự động hóa.
Cách tránh để hóa đơn tăng vọt qua đêm: giới hạn ngân sách và điều kiện dừng
Điểm chính
Một vòng lặp không có giới hạn ngân sách, điều kiện dừng theo chi phí hoặc verifier có thể phát sinh hóa đơn lớn trước khi có ai nhận ra. Có thể ngăn việc này bằng ba biện pháp bảo vệ: giới hạn số lượt lặp, giới hạn token hoặc tiền, và bộ phát hiện trì trệ.
Ba cơ chế phanh thiết yếu cho mọi vòng lặp chạy qua đêm:
1. Giới hạn số lượt lặp. --max-iterations 20. Vòng lặp không thể chạy quá N lần — ngay cả khi verifier không được kích hoạt. Nếu chưa đạt điều kiện dừng sau 20 lượt lặp, nhiệm vụ bị kẹt và cần con người can thiệp.
2. Giới hạn token hoặc tiền. /usage limit 50 — tối đa $50 mỗi ngày. Khi gần chạm giới hạn, vòng lặp tự dừng và gửi cảnh báo. Cách này giúp tránh tình huống mất kiểm soát.
3. Kiểm tiến độ với giao kèo rõ. So HEAD dưới đây phát hiện commit mới, không phải mọi sửa mã. Chỉ dùng trong worktree cách ly mà mỗi lượt đổi mã ghi commit checkpoint cục bộ trước khi so. Sửa hữu ích chưa commit không đổi HEAD, có thể báo trì trệ giả. Giữ kết quả verifier riêng: commit mới chỉ chứng minh thay đổi được ghi, không chứng minh tốt hơn hay đạt.
Cấu trúc wrapper minh họa ba kiểm tra. Dòng báo phí và gọi tác nhân tùy runner, chưa là công thức cài CLI đã xác minh; xác nhận giao diện của phiên bản cài trước khi điều chỉnh. Kiểm tiến độ bằng commit yêu cầu checkpoint mỗi lượt đổi mã. Nếu runner để sửa chưa commit, dừng xem lại thay vì gọi là không tiến triển:
#!/bin/bash
PROMPT="$1"
MAX_ITER=20
MAX_COST_USD=50
COMPLETION="DONE"
PREV_HASH=""
STAGNATION=0
for i in $(seq 1 $MAX_ITER); do
# Giới hạn chi phí
CURRENT_COST=$(claude usage --json | jq '.cost_usd')
if (( $(echo "$CURRENT_COST > $MAX_COST_USD" | bc -l) )); then
echo "STOP: đã chạm giới hạn ngân sách $MAX_COST_USD"
break
fi
# Chạy
OUTPUT=$(claude code -p "$PROMPT" --auto-accept)
# Kiểm tra hoàn tất
if echo "$OUTPUT" | grep -q "$COMPLETION"; then
echo "STOP: tín hiệu hoàn tất"
break
fi
# Chỉ kiểm tiến độ commit: mỗi lượt đổi mã phải tạo commit checkpoint.
# HEAD không phát hiện sửa hữu ích chưa commit.
CURRENT_HASH=$(git rev-parse HEAD 2>/dev/null)
if [ "$CURRENT_HASH" = "$PREV_HASH" ]; then
STAGNATION=$((STAGNATION + 1))
if [ "$STAGNATION" -ge 3 ]; then
echo "STOP: trì trệ trong 3 lượt lặp"
break
fi
else
STAGNATION=0
fi
PREV_HASH="$CURRENT_HASH"
done
Trước khi mở rộng, thử sửa chưa commit phải được coi là việc chưa ghi; commit checkpoint đổi HEAD; chỉ verifier riêng xác lập thành công. Ba lần hash không đổi chỉ báo không có thay đổi được ghi theo giao kèo, không chứng minh mọi tệp làm việc không đổi. Sau đó có thể thêm thông báo Slack khi dừng, báo cáo Telegram tự động vào buổi sáng hoặc thông báo push khi ngân sách chạm mức 80%. Nguyên tắc vẫn vậy: vòng lặp cần phanh, chứ không chỉ có chân ga.
5 tình huống vòng lặp qua đêm có thể dùng ngay
Điểm chính
Không phải nhiệm vụ nào cũng phù hợp với vòng lặp tự động. Những nhiệm vụ thích hợp có verifier rõ ràng và có thể thực hiện theo từng vòng: kiểm thử, tái cấu trúc, giám sát, quy trình viết bài, nhập dữ liệu. Những nhiệm vụ không phù hợp là việc không có kiểm tra chính thức hoặc có nhiều tiêu chí chủ quan.
Tình huống 1: Làm cho các bài kiểm thử lỗi đều đạt
/goal Có 47 bài kiểm thử thất bại trong thư mục tests/. Mục tiêu: làm cho tất cả đều đạt.
Chạy pnpm test, đọc stderr, mở tệp có lỗi, sửa lỗi rồi chạy lại pnpm test.
Dừng khi exit 0. Tối đa 30 lượt lặp.
Tình huống 2: Tái cấu trúc lớn trên 200 tệp
/batch Thay API client apiV1 cũ bằng apiV2 mới trong tất cả các tệp dưới `src/**/*.ts`.
Mỗi tệp có worktree riêng. Sau khi thay thế, chạy tsc --noEmit; sửa mọi lỗi.
Gộp các worktree khi hoàn tất.
Tình huống 3: Giám sát môi trường production qua đêm
/loop 30m Cứ mỗi 30 phút, kiểm tra https://your-app.example.com/api/health.
Nếu không trả về 200, đọc nhật ký, tìm nguyên nhân, sửa rồi triển khai lại.
Ghi nhật ký từng lượt lặp vào /tmp/night-monitor.log.
Tình huống 4: Nhập bộ dữ liệu lớn và loại bỏ trùng lặp
/goal Nhập tệp CSV /tmp/import.csv (12,000 hàng) vào bảng clients.
Với mỗi hàng, kiểm tra trùng lặp theo email; nếu không có thì thêm vào, nếu có thì cập nhật.
Ghi lại các xung đột vào /tmp/conflicts.log. Dừng khi xử lý xong hàng cuối cùng.
Tình huống 5: Quy trình làm bài viết (thiết lập điển hình)
Với một dịch vụ trực tuyến hoặc agency thường xuyên cần bài viết SEO, tình huống sẽ như sau:
/loop 8h Cứ mỗi 8 giờ: mở tệp backlog để tìm chủ đề có trạng thái 'queued'.
Nếu có chủ đề, chạy skill viết hướng dẫn.
Xuất bản lên dev. Đổi trạng thái thành 'review'. Thông báo cho người phụ trách qua Telegram.
Tình huống 5 tập trung vào việc giao nhiệm vụ cho các agent để xử lý bài viết qua đêm. Nguyên tắc vẫn như nhau:
Cần cung cấp gì trong mỗi lượt lặp: CLAUDE.md và Second Brain làm state
Điểm chính
Không có bộ nhớ, Claude bắt đầu mỗi lượt lặp từ đầu — mở lại dự án, đọc tệp và quên các quyết định ở lượt trước. Không có CLAUDE.md, Claude không biết kiến trúc; không có business/ (Second Brain), Claude không biết ngữ cảnh sản phẩm; không có skill, Claude không nhớ quy tắc và phong cách của bạn. State giữa các lượt lặp được lưu trong ba lớp tệp này. Không có chúng, vòng lặp sẽ suy giảm sau lượt thứ 5.
Ba lớp “bộ nhớ” dự án biến một prompt dùng một lần thành vòng lặp có kiểm soát:
1. CLAUDE.md — hiến chương của dự án. Sản phẩm là gì, tech stack ra sao, có những quy tắc nào và tuyệt đối không được làm gì. Claude đọc tệp này khi bắt đầu mỗi phiên và mỗi lượt lặp. Không có tệp này, Claude phải “mở lại” dự án mỗi lần — tiêu tốn context và tăng nguy cơ bịa đặt. Tìm mẫu sẵn dùng và 6 quy tắc trong hướng dẫn CLAUDE.md.
2. Second Brain — thư mục chứa kiến thức kinh doanh: sản phẩm, đối tượng khách hàng, mục tiêu, kinh tế học và marketing. Không phải mã — mà là ý nghĩa. Khi vòng lặp viết bài hoặc tìm câu trả lời cho bộ phận hỗ trợ, nó đọc Second Brain và phản hồi theo ngữ cảnh của dự án thay vì từ con số không.
3. Context engineering — chính xác những gì bạn cung cấp cho Claude trong mỗi lượt lặp. Không phải toàn bộ thư mục Second Brain, cũng không phải toàn bộ repository — chỉ phần liên quan. Plan Mode giúp ích: Claude xác định nhiệm vụ cần những tệp nào và chỉ đọc chúng. Xem chi tiết trong hướng dẫn Plan Mode.
Nguyên tắc vận hành chính mà tôi phải khắc sâu qua những lần mắc lỗi:
Tổ chức nhiều terminal, phiên làm việc và agent chạy song song
Mỗi phiên có gì? Những nhiệm vụ khác nhau: một vòng lặp sửa lỗi, vòng khác viết tính năng mới, vòng thứ ba đánh giá PR của nhóm, vòng thứ tư tối ưu hiệu năng và vòng thứ năm chuẩn bị tài liệu. Không phải một agent đa năng lớn duy nhất. Mà là hàng chục agent chuyên biệt, mỗi agent có skill, mục tiêu và verifier riêng.
Cách nhìn nhận lại quan trọng:
Để xem hướng dẫn về cách tổ chức nhiều agent chạy song song cùng các lệnh có thể dùng ngay, hãy xem hướng dẫn về vòng lặp agent.
Với một doanh nhân không có lập trình viên, ý nghĩa rất cụ thể. Bạn có một tài khoản Claude giá $200/tháng và một chiếc laptop bình thường. Bạn có thể chạy 5 vòng lặp song song — hỗ trợ, bài viết, chỉ số, thử nghiệm sản phẩm mới và theo dõi đối thủ. Mỗi vòng chạy trong một tab Claude Code riêng. Buổi sáng, bạn đọc bản tóm tắt. Đây đã là chuẩn mực làm việc vào mùa hè năm 2026.
Bốn lỗi thường gặp của vòng lặp tự động
Điểm chính
Hầu hết lỗi của vòng lặp tự động thuộc một trong bốn dạng: không có verifier — agent tự cho rằng mình đã xong; không có giới hạn ngân sách — vòng lặp có thể tiêu hết ngân sách chỉ sau một đêm; không có state giữa các lượt lặp — các quyết định mâu thuẫn với nhau; điều kiện dừng mơ hồ — vòng lặp không biết khi nào cần dừng.
Lỗi 1: “Vòng lặp bịa đặt”
Agent cho rằng đã hoàn tất dù verifier chưa được kích hoạt. Hoặc hoàn toàn không có verifier. Ba giờ sau, Claude nói “Đã xong hết!” — nhưng kiểm thử vẫn lỗi, trang không mở được và chẳng thứ gì hoạt động. Bạn đã tiêu $80 vào những lượt lặp vô ích.
Cách sửa: dùng verifier nghiêm ngặt (lệnh exit code), không dùng kiểm tra bằng lời.
Lỗi 2: “Đốt hết ngân sách qua đêm”
Không có giới hạn ngân sách, vòng lặp chẳng khác nào lựu đạn không chốt an toàn.
Cách sửa: dùng /usage limit hoặc script bên ngoài sử dụng claude usage --json để dừng vòng lặp khi chạm ngưỡng.
Lỗi 3: “Vòng lặp mất ngữ cảnh giữa các lượt”
Ở lượt 1, Claude đưa ra quyết định kiến trúc. Đến lượt 7, nó quên mất và đưa ra quyết định ngược lại. Sau 15 lượt, mã nguồn thành một mớ hỗn độn.
Cách sửa: tạo một lớp state bằng CLAUDE.md và thư mục Second Brain. Vòng lặp ghi mọi quyết định kiến trúc vào tệp mà nó sẽ đọc ở lượt tiếp theo.
Lỗi 4: “Điều kiện dừng thiếu chính xác — vòng lặp chạy mãi”
/goal "Make the page beautiful" — “đẹp” nghĩa là gì? Nếu không có chỉ số rõ ràng, vòng lặp sẽ không bao giờ dừng. Nó sẽ tiếp tục cho đến khi chạm giới hạn số lượt hoặc ngân sách.
Cách sửa: điều kiện dừng luôn phải đo lường được. Không phải “đẹp”, mà là “Lighthouse Performance ≥ 90, Accessibility ≥ 95”. Không phải “hoạt động được”, mà là “kiểm thử trong tests/pricing.test.ts đạt”.
Khi nào không cần loop engineering
Điểm chính
Loop engineering là công cụ cho các nhiệm vụ lặp lại và có thể kiểm chứng. Không cần dùng cho nhiệm vụ sáng tạo chỉ làm một lần, nhiệm vụ không có verifier chính thức và nhiệm vụ đòi hỏi đánh giá chủ quan. Hiểu rõ giới hạn quan trọng hơn biết kỹ thuật.
Những việc không phù hợp với vòng lặp tự động:
- Nhiệm vụ sáng tạo chỉ làm một lần. Một website cho sản phẩm mới, một logo, một bản ghi nhớ chiến lược. Dùng vòng lặp ở đây là quá mức cần thiết; viết một prompt rồi tự điều chỉnh kết quả sẽ dễ hơn.
- Nhiệm vụ không có verifier. Nếu không thể diễn đạt điều kiện dừng thành exit code hoặc tín hiệu rõ ràng, đừng bắt đầu vòng lặp; nếu không, đó sẽ là đống lửa cháy mãi.
- Nhiệm vụ cần đánh giá chủ quan. “Làm cho câu chữ hay hơn”, “cải thiện UX để dễ chịu hơn” — những việc này cần bạn, không phải vòng lặp.
- Lĩnh vực mới, chưa quen thuộc. Nếu chính bạn không hiểu “xong” trông như thế nào, đừng chạy Claude theo vòng lặp. Hãy tìm hiểu trước rồi mới tự động hóa.
Và quy tắc chính tôi học được qua sai lầm:
Câu hỏi quan trọng trước khi bắt đầu vòng lặp: Tôi có thể mô tả trong một dòng cách biết Claude đã xong chưa? Nếu có, vòng lặp có thể giúp ích. Nếu không, trước tiên hãy xác định điều kiện có thể kiểm chứng, rồi mới bắt đầu.
Nguồn
- Plugin Ralph Loop cho Claude - Anthropic - plugin chính thức
- Plugin Ralph Wiggum trên GitHub - Anthropic - mã nguồn
- Claude Code Review - Anthropic blog - bản xem trước nghiên cứu về đánh giá PR đa agent, tỷ lệ phát hiện 84%
- Tài liệu /goal - Claude Code Docs - tài liệu lệnh chính thức
- Tài liệu /loop cho các tác vụ đã lên lịch - Claude Code Docs - tài liệu chính thức
Xem thêm chi tiết
Câu hỏi thường gặp
Vì sao HEAD không đổi có thể báo sai rằng vòng lặp không tiến triển?
HEAD chỉ định commit; sửa hữu ích trong working tree chưa làm nó đổi cho tới khi commit. Bộ dò mẫu đòi hỏi commit checkpoint cục bộ sau mỗi lượt sửa mã. Nếu không có giao kèo này, tạm dừng và xem phần chưa commit.
Commit mới có chứng minh vòng lặp cải thiện kết quả không?
Không. Nó chỉ chứng minh thay đổi đã được ghi. Lưu kết quả bộ xác minh cùng checkpoint và dừng theo tiêu chí chấp nhận thực. Phải kiểm tra giao diện gọi runner và báo phí của wrapper trước khi dùng.