MiddleAI Agent

Vòng lặp agent (agent loop) hoạt động thế nào? Làm sao để agent không chạy mãi?

Vòng lặp agent là đoạn code bao quanh mô hình, cho phép nó làm nhiều bước liên tiếp thay vì trả lời một lần. Mỗi vòng gồm bốn việc:

  1. Gửi toàn bộ lịch sử messages cho mô hình, kèm danh sách công cụ.
  2. Thêm nguyên văn phản hồi của mô hình vào lịch sử.
  3. Nếu mô hình không xin công cụ (với Claude là stop_reason khác tool_use), đó là câu trả lời cuối và vòng lặp kết thúc.
  4. Nếu có, chạy mọi công cụ được xin, gom kết quả vào một tin nhắn, thêm vào lịch sử rồi lặp lại.

Ý quan trọng là số bước do mô hình quyết định, không phải code. Ví dụ khách nhắn "tìm đơn theo số điện thoại, nếu chưa giao thì thêm một bạc xỉu": mô hình tự gọi lần lượt tìm đơn, xem trạng thái, thêm món, rồi mới trả lời. Code chỉ lặp.

Vì vậy phần thứ hai của câu hỏi mới là phần người phỏng vấn muốn nghe. Nên nêu:

  • Giới hạn số lần gọi mô hình (ví dụ 6). Chạm giới hạn thì dừng, trả một câu trả lời an toàn và ghi log để người kiểm tra, thay vì ném lỗi hay lặp tiếp.
  • Luật nằm trong công cụ, không chỉ trong prompt. Hàm thêm món tự từ chối đơn đang giao, dù mô hình có gọi sai thứ tự.
  • Lỗi công cụ trả về cho mô hình (is_error) để nó đổi hướng, nhưng cần đề phòng mô hình thử lại mãi cùng một lời gọi.
  • Chi phí tăng theo số vòng: mỗi vòng gửi lại cả lịch sử, nên câu 4 bước tốn nhiều token hơn 4 lần câu 1 bước.

Điểm cộng: nói thêm rằng nên có giới hạn thời gian hoặc ngân sách token bên cạnh giới hạn số vòng, và các SDK thường có sẵn tool runner chạy hộ vòng lặp này.