Phan Đông GiangPhan Đông Giang
Tất cả bài viết
2026-07-2410 phút

Cách Sử Dụng Loops (Vòng Lặp) Trong Claude Code

Đội ngũ Claude Code định nghĩa loop là các chu trình mang tính agentic, lặp lại cho đến khi đạt một điều kiện dừng. Tìm hiểu 4 kiểu loop chính, khi nào nên dùng từng loại, và cách duy trì chất lượng code trong khi quản lý lượng token sử dụng.

Cách Sử Dụng Loops (Vòng Lặp) Trong Claude Code

Hiện đang có rất nhiều người bàn về việc "thiết kế loop" thay vì chỉ prompt cho coding agent của bạn. Nếu bạn dành thời gian lên X (Twitter) để tìm hiểu chính xác loop là gì, bạn sẽ bắt gặp nhiều câu trả lời khác nhau.

Trong đội ngũ Claude Code, chúng tôi định nghĩa loop là việc agent lặp lại các chu trình công việc cho đến khi đạt một điều kiện dừng. Chúng tôi phân loại một vài kiểu loop khác nhau dựa trên:

  • Cách chúng được kích hoạt
  • Cách chúng dừng lại
  • Nguyên thủy (primitive) nào của Claude Code được sử dụng
  • Loại tác vụ nào phù hợp nhất với từng loại

Chúng tôi sẽ trình bày các kiểu loop chính, khi nào nên dùng từng loại, và cách duy trì chất lượng code trong khi vẫn quản lý tốt lượng token sử dụng. Không phải tác vụ nào cũng cần đến loop phức tạp; hãy bắt đầu với giải pháp đơn giản nhất và chỉ áp dụng các mẫu hình này một cách có chọn lọc.

Loop Theo Lượt (Turn-Based Loops)

Sơ đồ vòng lặp theo lượt: Prompt của bạn → Thu thập ngữ cảnh → Hành động → Xác minh công việc → Phản hồi
Loop theo lượt: thoát khi Claude nhận định đã hoàn thành, hoặc hết ngân sách effort.
Thuộc tínhMô tả
Kích hoạt bởiMột prompt của người dùng.
Tiêu chí dừngClaude nhận định đã hoàn thành tác vụ, hoặc cần thêm ngữ cảnh.
Phù hợp nhất vớiCác tác vụ ngắn, không thuộc một quy trình hay lịch trình đều đặn.
Cách quản lýViết prompt cụ thể và cải thiện bước xác minh bằng skill để giảm số lượt qua lại.

Mỗi prompt bạn gửi đi sẽ khởi động một loop thủ công, nơi bạn là người điều khiển từng lượt. Claude thu thập ngữ cảnh, hành động, kiểm tra lại công việc của mình, lặp lại nếu cần, rồi phản hồi. Chúng tôi gọi đây là agentic loop.

Ví dụ, bạn yêu cầu Claude tạo một nút like. Nó đọc code của bạn, thực hiện chỉnh sửa, chạy test, rồi trả lại thứ mà nó tin là hoạt động được. Sau đó bạn tự kiểm tra kết quả và viết prompt tiếp theo.

Bạn có thể cải thiện bước xác minh bằng cách mã hóa các bước thủ công của mình thành một file SKILL.md, để Claude có thể tự kiểm tra nhiều phần công việc của chính nó hơn, từ đầu đến cuối. File này nên bao gồm các công cụ hoặc connector cho phép Claude nhìn thấy, đo lường, hoặc tương tác với kết quả. Các bước kiểm tra càng mang tính định lượng, Claude càng dễ tự xác minh.

Ví dụ, trong file SKILL.md của bạn, bạn có thể khai báo:

Sao chép code
---
name: verify-frontend-change
description: Xác minh mọi thay đổi giao diện (UI) từ đầu đến cuối trước khi báo là đã hoàn thành.
---

# Xác minh các thay đổi giao diện

Đừng bao giờ báo cáo một thay đổi UI là hoàn tất chỉ dựa trên việc chỉnh sửa thành công. Hãy xác minh nó theo cách một người review thực thụ sẽ làm:

1. Khởi động dev server và mở trang vừa chỉnh sửa trong trình duyệt.
2. Tương tác trực tiếp với thay đổi đó. Với một control mới (nút bấm, ô nhập liệu, toggle): nhấp vào nó, xác nhận đúng trạng thái thay đổi như mong đợi, và chụp ảnh trước/sau.
3. Kiểm tra console trình duyệt: không có lỗi hoặc cảnh báo mới nào.
4. Dùng Chrome DevTools MCP, chạy một performance trace và audit Core Web Vitals.

Nếu bước nào thất bại, hãy sửa lỗi và chạy lại từ bước 1 — đừng bàn giao một công việc mới chỉ xác minh được một phần.

Loop Theo Mục Tiêu (/goal)

Sơ đồ vòng lặp theo mục tiêu: Claude làm việc → mô hình đánh giá kiểm tra điều kiện → loop kết thúc khi đạt mục tiêu hoặc hết số lượt
Loop theo mục tiêu: một evaluator model kiểm tra điều kiện mỗi khi Claude cố dừng lại.
Thuộc tínhMô tả
Kích hoạt bởiMột prompt thủ công theo thời gian thực.
Tiêu chí dừngĐạt được mục tiêu HOẶC đạt số lượt tối đa.
Phù hợp nhất vớiCác tác vụ có tiêu chí hoàn thành có thể xác minh được.
Cách quản lýĐặt tiêu chí hoàn thành cụ thể và giới hạn lượt rõ ràng, ví dụ "dừng sau 5 lần thử".

Đôi khi, một lượt duy nhất là chưa đủ, đặc biệt với các tác vụ phức tạp hơn. Agent hoạt động tốt hơn khi được phép lặp lại nhiều lần. Bạn có thể kéo dài thời gian Claude tiếp tục lặp bằng cách định nghĩa rõ thế nào là "xong" thông qua lệnh /goal.

Khi bạn định nghĩa tiêu chí thành công, Claude không cần tự quyết định thế nào là "đủ tốt" rồi kết thúc loop sớm. Mỗi lần Claude cố dừng lại, một mô hình đánh giá (evaluator model) sẽ kiểm tra điều kiện bạn đặt ra và gửi nó quay lại làm việc tiếp cho đến khi đạt mục tiêu hoặc chạm số lượt bạn quy định.

Đây là lý do vì sao các tiêu chí mang tính xác định (deterministic) — như số lượng test pass hay đạt một ngưỡng điểm số nhất định — lại hiệu quả đến vậy.

Ví dụ:

Sao chép code
/goal đưa điểm Lighthouse của trang chủ lên 90 trở lên, dừng sau 5 lần thử.

Loop Theo Thời Gian (/loop và /schedule)

Thuộc tínhMô tả
Kích hoạt bởiMột khoảng thời gian được chỉ định.
Tiêu chí dừngBạn hủy nó, hoặc công việc hoàn tất (PR được merge, hàng đợi rỗng).
Phù hợp nhất vớiCông việc lặp lại định kỳ, hoặc tương tác với các hệ thống/môi trường bên ngoài.
Cách quản lýĐặt khoảng thời gian dài hơn hoặc phản ứng theo sự kiện thay vì theo thời gian.

Một số công việc mang tính agentic lặp lại theo chu kỳ: tác vụ vẫn giữ nguyên, chỉ có dữ liệu đầu vào thay đổi. Ví dụ như tóm tắt tin nhắn Slack mỗi sáng. Những công việc khác lại phụ thuộc vào các hệ thống bên ngoài, và một cách đơn giản để tương tác với chúng là kiểm tra theo một khoảng thời gian nhất định rồi phản ứng với những gì đã thay đổi. Ví dụ như một PR có thể nhận được code review hoặc bị fail CI.

Với những trường hợp này, bạn có thể kích hoạt Claude chạy bằng lệnh /loop — lệnh này sẽ chạy lại một prompt theo một khoảng thời gian nhất định. Ví dụ:

Sao chép code
/loop 5m kiểm tra PR của tôi, xử lý các comment review, và sửa CI đang bị fail

/loop chạy trên máy tính của bạn, vì vậy nếu bạn tắt máy, nó sẽ dừng lại. Bạn có thể chuyển loop lên cloud bằng cách tạo một routine với /schedule.

Loop Chủ Động (Proactive Loops)

Sơ đồ vòng lặp chủ động chạy trên cloud: /schedule theo dõi báo cáo lỗi, agent chính lặp đến khi qua skill xác minh, mở PR, agent thứ hai review rồi thông báo cho bạn
Loop chủ động: chạy trên cloud, không cần laptop mở, cho đến khi bạn tắt nó.
Thuộc tínhMô tả
Kích hoạt bởiMột sự kiện hoặc lịch trình, không cần con người theo dõi theo thời gian thực.
Tiêu chí dừngMỗi tác vụ tự thoát khi đạt mục tiêu. Bản thân routine sẽ chạy cho đến khi bạn tắt nó.
Phù hợp nhất vớiCác luồng công việc lặp lại, đã được định nghĩa rõ ràng: báo cáo lỗi, phân loại issue, di trú, nâng cấp dependency, v.v.
Cách quản lýĐịnh tuyến các routine sang các mô hình nhỏ hơn, nhanh hơn, và dùng mô hình mạnh nhất cho các quyết định cần phán đoán.

Các nguyên thủy (primitive) nói trên, cùng với các tính năng khác của Claude Code như auto mode và dynamic workflow (research preview), có thể được kết hợp thành một loop cho những công việc chạy dài.

Ví dụ, để xử lý phản hồi gửi đến, bạn có thể dùng:

  • `/schedule` (research preview) để chạy một routine kiểm tra các báo cáo mới
  • `/goal` để định nghĩa thế nào là xong, và skill để ghi lại cách xác minh điều đó
  • Dynamic workflow để điều phối các agent phân loại từng báo cáo, sửa lỗi, và review bản sửa
  • Auto mode để routine chạy mà không cần dừng lại xin phép

Kết hợp lại, một prompt có thể trông như sau:

Sao chép code
/schedule mỗi giờ: kiểm tra kênh project-feedback để tìm báo cáo lỗi. /goal: không dừng lại cho đến khi mọi báo cáo tìm thấy trong lượt chạy này đều được phân loại, xử lý, và phản hồi. Khi sửa một lỗi, dùng một workflow để khám phá ba giải pháp song song trong các worktree riêng biệt và để một "giám khảo" (judge) phản biện đánh giá chúng.

Duy Trì Chất Lượng Code

Chất lượng đầu ra của một loop phụ thuộc vào hệ thống xung quanh nó. Khi thiết kế hệ thống, hãy lưu ý:

  • Giữ cho codebase luôn sạch sẽ: Claude sẽ đi theo các pattern và quy ước đã có sẵn trong codebase của bạn.
  • Cho Claude một cách để tự xác minh công việc của mình: Hãy mã hóa thế nào là "tốt" đối với bạn và đội nhóm của bạn thông qua skill.
  • Giúp tài liệu (docs) dễ tiếp cận: Tài liệu của framework và thư viện luôn có các best practice mới nhất.
  • Dùng một agent thứ hai để review code: Một người review với ngữ cảnh hoàn toàn mới sẽ ít thiên vị hơn và không bị ảnh hưởng bởi lập luận của agent chính. Bạn có thể dùng skill /code-review có sẵn hoặc Code Review for GitHub.

Khi một kết quả cụ thể không đạt tiêu chuẩn, đừng chỉ dừng lại ở việc sửa vấn đề đó — hãy cố gắng mã hóa nó lại để cải thiện cả hệ thống cho những lần lặp sau này.

Quản Lý Lượng Token Sử Dụng

Để quản lý lượng token sử dụng, các loop cần có ranh giới rõ ràng:

  • Chọn đúng nguyên thủy và đúng mô hình cho công việc: Các tác vụ nhỏ không cần nhiều agent hay loop. Một số tác vụ có thể dùng các mô hình rẻ hơn và nhanh hơn.
  • Định nghĩa rõ tiêu chí thành công và dừng lại: Hãy cụ thể về thế nào là "xong" để Claude đi đến giải pháp nhanh hơn (nhưng không quá nhanh).
  • Thử nghiệm trước khi chạy quy mô lớn: Dynamic workflow có thể tạo ra hàng trăm agent. Hãy đo lường mức sử dụng trên một phần nhỏ công việc trước.
  • Dùng script cho những công việc mang tính xác định: Chạy một script rẻ hơn nhiều so với việc suy luận qua từng bước. Ví dụ, một skill xử lý PDF có thể đi kèm một script điền form mà Claude chạy lại mỗi lần, thay vì phải suy luận lại đoạn code đó.
  • Đừng chạy routine thường xuyên hơn mức cần thiết: Hãy khớp khoảng thời gian với tần suất thực tế mà thứ bạn đang theo dõi thay đổi.
  • Xem lại mức sử dụng: Lệnh /usage phân tích chi tiết mức sử dụng gần đây theo skill, subagent, và MCP; lệnh /goal không kèm tham số sẽ hiện số lượt và lượng token đã dùng tính đến thời điểm đó; /workflows hiện lượng token của từng agent và bạn có thể dừng một agent bất kỳ lúc nào.

Bắt Đầu

Tóm lại:

Để bắt đầu với Loops, hãy nhìn vào những công việc bạn đang làm hằng ngày. Chọn một công việc mà chính bạn đang là nút thắt (bottleneck), rồi tự hỏi: phần nào của công việc này có thể giao cho AI?

  • Bạn có thể viết một bước kiểm tra/xác minh kết quả (verification check) không?
  • Mục tiêu của công việc đã đủ rõ ràng để AI thực hiện chưa?
  • Công việc đó có diễn ra theo một lịch trình cố định hoặc lặp lại thường xuyên không?

Khi đã có ý tưởng, hãy triển khai Loop, theo dõi cách nó hoạt động, quan sát xem nó gặp vấn đề ở đâu (ví dụ: bị kẹt ở một bước nào đó hoặc xử lý vượt quá phạm vi mong muốn), rồi liên tục điều chỉnh và cải thiện. Đừng ngại lặp lại quá trình này nhiều lần để Loop hoạt động hiệu quả hơn.

Để biết thêm thông tin, hãy đọc tài liệu Claude Code về chạy các agent song song, cũng như các trang về vòng lặp, lịch trình, mục tiêu và quy trình làm việc động.