Skip to content

Thông tin kiểm chứng ngày 2026-10-24T00:00:00.000Z

5. Lên mức tự động (nấc 3 → 4) ​

Ở chương 1 ta có bốn nấc tự động. Workflow chính (chương 3) đưa bạn tới nấc 3: agent tự chạy theo spec và plan, bạn duyệt đầu và cuối. Chương này nói cách lên nấc 4: để agent chạy dài, qua đêm, theo lịch hoặc trên cloud, trong khi bạn không ngồi nhìn.

Nấc 4 không phải "bật một công tắc là xong". Nó là nấc 3 cộng thêm cơ chế lặp và rào chắn. Thiếu nền thì chạy càng lâu càng hỏng nhiều.

Điều kiện tiên quyết ​

Trước khi để agent chạy một mình, kiểm đủ bốn thứ:

Cần cóVì saoThiếu thì sao
SpecAgent biết làm gì và không làm gìAgent tự đoán yêu cầu, chạy càng lâu càng lệch
Plan fileViệc được chia nhỏ, có thứ tự, có checkbox để đánh dấu tiến độMỗi vòng lặp agent tự nghĩ lại từ đầu, làm trùng hoặc bỏ sót
TestAgent tự biết mình đúng hay sai mà không cần hỏi bạnAgent báo "xong" dựa trên cảm giác
Giới hạn số vòngCó điểm dừng chắc chắn kể cả khi task không thể hoàn thànhVòng lặp đốt token tới khi bạn phát hiện

Bài tập về nhà (chương 9, file practice/lab/backlog.md) được viết sẵn theo đúng khuôn này: mỗi mục có tiêu chí chấp nhận đo được, kết thúc bằng bun run check-types và bun test pass.

Auto mode ​

Auto mode (chế độ tự động) là một permission mode: một bộ phân loại duyệt thay bạn từng hành động, hành động rủi ro vẫn bị chặn hoặc hỏi lại. Chi tiết các mode: Permission mode.

Hiện trạng (Claude Code 2.1.310):

  • Từ v2.1.283, auto là mode khởi đầu cho phiên terminal/VS Code tương tác, trên mọi gói và mọi provider. Ngoại lệ: tài khoản HIPAA (v2.1.285+) về default.
  • claude -p thì không. Từ v2.1.302, chạy headless (-p hoặc Agent SDK) mà không đặt mode thì về default (Manual). Tool cần duyệt sẽ bị từ chối vì không có ai bấm duyệt. Chạy headless phải chủ động chọn: hoặc --permission-mode auto, hoặc có allow rule.
  • Đặt permissions.defaultMode: "auto" trong .claude/settings.json của repo không có tác dụng. Muốn auto thì dùng flag lúc khởi động.
  • Thư mục chưa trust: allow rule của dự án không áp dụng khi chạy claude -p (đã chạy thử trên máy soạn tài liệu). Mở claude tương tác một lần trong thư mục đó và đồng ý trust trước.
bash
# Headless, để bộ phân loại duyệt thay
claude -p "Thực thi task 3 trong docs/superpowers/plans/..." --permission-mode auto

# Headless, chỉ cho đúng những tool cần (allowlist hẹp)
claude -p "Chạy test và sửa lỗi kiểu" --allowedTools "Read,Edit,Bash(bun test*),Bash(bun run check-types*)"

Auto mode giảm số lần bị hỏi, không thay được test và review. Rào chắn ở chương 6.

Ralph loop ​

Ralph loop biến một phiên Claude Code thành vòng lặp: agent làm việc, định dừng, thì Stop hook chặn lại và đưa lại đúng prompt cũ. Agent thấy công việc của vòng trước qua file và git history, nên mỗi vòng làm tiếp từ chỗ dở. Vòng lặp chạy ngay trong phiên hiện tại, không cần script bash bên ngoài.

Cài và chạy ​

text
/plugin install ralph-loop@claude-plugins-official

Starter đã bật sẵn plugin này trong enabledPlugins. Cú pháp:

text
/ralph-loop "<prompt>" --max-iterations <n> --completion-promise "<text>"
Tùy chọnÝ nghĩa
--max-iterations <n>Dừng sau n vòng. Mặc định là không giới hạn, nên luôn đặt
--completion-promise <text>Chuỗi báo xong. Agent phải in nó bên trong thẻ <promise>...</promise>
/cancel-ralphHủy vòng lặp đang chạy

Completion promise: khớp chuỗi chính xác ​

Plugin chỉ coi là xong khi phần chữ cuối cùng của agent có <promise>TEXT</promise> và TEXT khớp chính xác với --completion-promise (khoảng trắng thừa được gom lại). Hệ quả:

  • Prompt nên ghi rõ: "khi xong thì in <promise>DONE</promise>". Chỉ ghi "in dòng DONE" thì có thể không khớp, vì hook tìm nội dung trong thẻ.
  • Chỉ có một chuỗi xong. Không dùng được hai kết cục kiểu "SUCCESS" và "BLOCKED". Vì vậy README của plugin nói rõ: --max-iterations mới là chốt an toàn chính.
  • Plugin dặn agent chỉ in promise khi điều đó hoàn toàn đúng, không in để thoát vòng. Đó là lời dặn trong prompt, không phải bằng chứng. Bằng chứng là test pass và diff bạn đọc.

Ví dụ cho bài về nhà ​

text
/ralph-loop "Đọc docs/backlog.md mục 1. Làm theo TDD. Xong khi mọi tiêu chí chấp nhận đạt, check-types và test pass, đã tự kiểm tra trên trình duyệt bằng skill verify-app, và đã commit. Mỗi vòng, nếu còn kẹt thì ghi vào docs/ket.md: kẹt ở đâu, đã thử gì. Khi xong hẳn thì in đúng: <promise>DONE</promise>" --max-iterations 15 --completion-promise "DONE"

Câu ghi chỗ kẹt lấy ý từ README plugin: cho agent việc có ích khi bí (ghi lại chỗ kẹt cho bạn đọc) thay vì lặp mù. Agent không tự thoát vòng lặp được, chỉ có promise hoặc --max-iterations dừng nó, nên đừng viết "sau N vòng thì dừng".

Giới hạn 8 lần tiếp tục của Stop hook ​

Claude Code giới hạn tối đa 8 lần tiếp tục liên tiếp do Stop hook gây ra. Bộ đếm reset mỗi khi Claude gọi tool. Nâng giới hạn bằng biến môi trường CLAUDE_CODE_STOP_HOOK_BLOCK_CAP.

Ảnh hưởng thực tế:

  • Vòng lặp đang làm việc thật (đọc file, sửa code, chạy test) thì gần như không chạm trần, vì mỗi lần gọi tool là bộ đếm về 0.
  • Vòng lặp bị kẹt, chỉ trả lời bằng chữ mà không gọi tool, sẽ bị cắt sau 8 lần liên tiếp. Đây là một lưới an toàn có sẵn, nhưng không thay --max-iterations: một vòng lặp vẫn gọi tool mà không tiến triển (sửa đi sửa lại cùng một chỗ) thì không bị giới hạn này chặn.

Những gì Ralph loop không làm ​

  • Không tự lập kế hoạch. Prompt nên trỏ tới spec/plan có sẵn.
  • Không thay việc review. Xong vòng lặp vẫn phải đọc diff (xem chương 6).
  • Không hợp với việc cần người quyết định thiết kế, hoặc tiêu chí xong mơ hồ (theo README plugin).

Codex: /goal ​

Bên Codex, cơ chế tương đương là /goal: đặt một mục tiêu, agent theo đuổi tới khi đạt.

text
/goal <mục tiêu>
/goal                 # xem mục tiêu hiện tại
/goal pause | resume | clear

/goal đã ra khỏi experimental (18–22/05/2026). Việc goal được giữ qua resume/khởi động lại và có ngân sách token: theo báo cáo cộng đồng, chưa có trong docs chính thức (kiểm tra ngày 24/10/2026). Đối chiếu đầy đủ ở chương 7.

Chạy theo lịch và chạy trên cloud ​

Claude Code: scheduled tasks ​

Scheduled tasks (việc chạy theo lịch, trước gọi là routines) để agent tự chạy trên cloud theo lịch. Đang ở dạng research preview.

text
/schedule                 # alias: /routines
/schedule list
/schedule update
/schedule run

Quản lý trên web tại claude.ai/code/routines. Lưu ý:

  • Lịch dày hơn 1 lần/giờ bị từ chối.
  • Lượt chạy theo lịch chạy ở auto mode.

Codex: Scheduled tasks ​

Tạo trên desktop app hoặc web; trigger theo lịch hoặc theo sự kiện (Gmail, Slack, GitHub). CLI Codex không quản lý được scheduled tasks.

Phiên cloud ​

bash
claude --cloud "Làm mục 3 trong docs/backlog.md theo TDD"

Mở một phiên chạy trên cloud thay vì trên máy bạn. --remote là tên cũ, đã deprecated.

You Should Know khi chạy dài ​

You Should Know (agent nhắc việc) là một "built-in mod" của Claude Code (từ v2.1.287, 01/10/2026): một agent phụ theo dõi phiên và nhắc những điều bạn hoặc Claude có thể bỏ sót. Phiên càng dài, càng nhiều output trôi qua, nó càng có ích.

text
/plugin enable cc-plugin-you-should-know@builtin

Starter đã có dòng "cc-plugin-you-should-know@builtin": true trong enabledPlugins.

  • Ghi chú nói rõ ai chịu trách nhiệm: "we", "the main agent" hoặc "you".
  • Nó không chặn agent. Nó nhắc, quyết định vẫn là của bạn.
  • Nó không thay review diff hay test.
  • Chỉ chạy ở phiên first-party có bật telemetry (xem giới hạn ở chương 6).
  • Tắt mặc định và ghi chú hiện phía trên ô prompt: theo báo cáo cộng đồng, chưa có trong docs chính thức (kiểm tra ngày 24/10/2026).

Theo dõi một lần chạy dài ​

Bạn không ngồi nhìn, nhưng phải biết hỏi ở đâu khi quay lại.

Nhìn vàoTrả lời câu hỏiCách xem
git logAgent đã làm xong những bước nào, commit có đều khônggit log --oneline -20, git diff HEAD~3
File planTask nào đã đánh dấu - [x], task nào còn dởMở file trong docs/superpowers/plans/
File trạng thái RalphĐang ở vòng thứ mấyhead -10 .claude/ralph-loop.local.md (trường iteration:). File biến mất khi vòng lặp kết thúc hoặc bị hủy
You Should KnowCó gì bất thường agent lướt qua (test bị skip, lệnh lỗi bị bỏ qua...)Ghi chú trong phiên
Agent viewCác phiên nền đang chạyclaude agents; khởi chạy nền bằng claude --bg "task"

Dấu hiệu nên dừng tay (/cancel-ralph): nhiều vòng liền không có commit mới, test cứ đỏ ở cùng một chỗ, hoặc diff bắt đầu đụng vào file ngoài phạm vi spec.

Nguồn ​