close

Hướng dẫn sửa lỗi Tool Loop trong OpenClaw: agent lặp Argument liên tục nhưng không tạo ra kết quả

Tác giả: Đông Tùng Ngày đăng: 24/09/2026 Chuyên mục: OpenClaw
Disclosure
Website Tino blog được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Tino Group có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Tino blog sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại Tino blog được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

Tool Loop trong OpenClaw là lỗi agent liên tục gọi cùng một tool với cùng tham số (argument) mà không tạo ra kết quả mới. Cách xử lý nhanh: gõ /stop để dừng run, cập nhật OpenClaw, bật tools.loopDetection.enabled, xem log để tìm tool bị lặp, rồi mở session mới với yêu cầu có điều kiện dừng rõ ràng.

Bài này thuộc nhóm cài đặt và vận hành OpenClaw trên VPS; khái niệm OpenClaw, agent và tool có ở bài OpenClaw là gì.

Cập nhật 24/10/2026 theo tài liệu OpenClaw 2026.10.x. Ảnh chụp trên OpenClaw 2026.9.6; các lệnh vẫn đúng ở bản hiện hành.

Tool Loop là gì?

Tool Loop là hiện tượng AI Agent gọi lặp lại cùng một công cụ, cùng bộ tham số, nhưng phiên làm việc không có bước tiến mới. Agent mắc kẹt trong chu trình lặp một hành động đã thất bại, thay vì dừng lại và đổi hướng.

Với hệ thống chạy nền 24/7 như OpenClaw, nơi agent tự chạy theo lịch, đọc bộ nhớ và gọi công cụ thật (shell, HTTP, tệp hệ thống), vòng lặp không kiểm soát gây ba hậu quả: token bị đốt liên tục, tiến trình chiếm tài nguyên VPS, và đôi khi người vận hành phải tự kết thúc tiến trình.

Dấu hiệu OpenClaw đang bị Tool Loop

OpenClaw có thể đang bị Tool Loop nếu bạn thấy một hoặc nhiều dấu hiệu sau:

  • Một tool như exec, read, process, web_fetch hoặc message xuất hiện liên tục.
  • Argument của nhiều lần gọi tool giống hệt nhau.
  • Tool đã trả kết quả nhưng agent vẫn gọi lại.
  • Một lệnh thất bại liên tục với cùng lỗi.
  • Agent chỉ hiện tool call mà không có câu trả lời cuối.
  • Token hoặc context tăng nhanh bất thường.
  • Session chạy rất lâu nhưng nhiệm vụ gần như không tiến triển.
  • Tệp bị ghi hoặc nối thêm nhiều lần ngoài ý muốn.
  • Bot gửi trùng một nội dung nhiều lần trên Telegram, Discord hoặc kênh khác.

Đặc biệt, nếu log hiện chuỗi như dưới đây và tiếp tục lặp, khả năng cao agent đã rơi vào Tool Loop:

Tool: exec
Arguments: { "command": "..." }
Tool Result: ...

Tool: exec
Arguments: { "command": "..." }
Tool Result: ...

Nguyên nhân khiến OpenClaw lặp lại cùng Argument

OpenClaw lặp cùng tool, cùng argument thường do model, kết quả tool hoặc context, ít khi do VPS. Các nguyên nhân phổ biến:

  • Model không nhận ra tool đã xong: đã có kết quả nhưng vẫn cho rằng cần gọi lại.
  • Tool trả lỗi hoặc dữ liệu rỗng: agent thử lại cùng lệnh với hy vọng kết quả khác.
  • Context quá dài: session chứa nhiều nội dung khiến model khó theo dõi các bước đã làm.
  • Model gọi tool kém: model nhỏ hoặc không có tool calling gốc dễ tạo lời gọi trùng.
  • Provider xử lý kết quả tool sai: kết quả bị truyền thiếu hoặc sai định dạng trước khi về model (ví dụ Ollama cấu hình qua /v1).
  • Lỗi runtime hoặc Gateway: một số phiên bản cũ có lỗi khiến tool call bị thực thi lại.
  • Prompt thiếu điều kiện dừng: agent tiếp tục tìm hoặc làm cùng một thao tác.
  • Chưa bật loop detection dạng rolling: lớp này tắt mặc định nên vòng lặp kéo dài hơn.

Cách sửa lỗi Tool Loop lặp Argument trong OpenClaw

Sửa Tool Loop theo thứ tự: dừng run, cập nhật, bật loop detection, kiểm cấu hình, xem log, mở session mới, đổi model. Làm lần lượt dưới đây.

Ba lớp chặn vòng lặp tool của OpenClaw: lớp chặn 3 lỗi giống hệt luôn bật, rolling loop detection tắt mặc định bật bằng tools.loopDetection.enabled, guard sau compaction báo lỗi compaction_loop_persisted; kèm thứ tự xử lý /stop, openclaw update, bật lớp 2, config validate, logs --follow, /new, đổi model

Bước 1: Dừng vòng lặp đang chạy

Trước tiên dừng tác vụ hiện tại để không tốn thêm token. Trong cửa sổ chat OpenClaw (Control UI, TUI hoặc kênh chat), gõ:

/stop

/stop huỷ run đang chạy của session hiện tại và dừng các lệnh Gateway hoặc sandbox do run đó khởi động (OpenClaw: Slash commands). Dừng xong, chưa nên gửi lại ngay yêu cầu cũ.

Bước 2: Kiểm tra và cập nhật OpenClaw

Trên VPS, kiểm tra trạng thái cập nhật:

openclaw update status

Nếu có phiên bản mới, chạy:

openclaw update

OpenClaw khuyên dùng openclaw update vì lệnh này tự nhận diện kiểu cài, kiểm bản mới trong khi Gateway cũ vẫn phục vụ, rồi kích hoạt và xác minh (OpenClaw CLI: update). Cách nâng cấp an toàn, kể cả trên Docker, có ở bài hướng dẫn nâng cấp OpenClaw.

Terminal VPS chạy openclaw update status: kênh stable, có bản npm 2026.9.6, rồi openclaw update chạy các pha requested, staging, validating

Bước 3: Bật Tool Loop Detection

Bật loop detection giúp OpenClaw phát hiện các lời gọi tool lặp mà không tiến triển. Chạy:

openclaw config set tools.loopDetection.enabled true --strict-json
Terminal chạy openclaw config set tools.loopDetection.enabled true --strict-json, OpenClaw báo Updated tools.loopDetection.enabled, thay đổi áp dụng không cần khởi động lại Gateway

Kiểm tra lại giá trị:

openclaw config get tools.loopDetection.enabled

Kết quả true nghĩa là loop detection đã bật.

Terminal chạy openclaw gateway restart rồi openclaw config get tools.loopDetection.enabled trả về true

Theo tài liệu OpenClaw, loop detection dạng rolling tắt mặc định và bật bằng tools.loopDetection.enabled: true; bạn cũng có thể bật trong Control UI ở Settings → Agent Defaults → Tools (OpenClaw: Tool-loop detection). Tài liệu khuyên bật với model nhỏ; model lớn ít khi cần.

Bước 4: Kiểm tra cấu hình

openclaw config validate

Nếu cấu hình hợp lệ, tiếp tục. Nếu OpenClaw báo lỗi, chạy openclaw doctor để xem chi tiết, hoặc để OpenClaw tự sửa:

openclaw doctor --fix

config validate kiểm cấu hình hiện tại theo schema đang chạy mà không sửa tệp (OpenClaw CLI: config).

Lưu ý: thay đổi trong nhóm tools được hot reload, nên thường không cần openclaw gateway restart. Chỉ restart khi CLI hiện dòng Restart the gateway to apply.

Bước 5: Xem log để tìm tool bị lặp

Mở một cửa sổ SSH khác và chạy:

openclaw logs --follow

Rồi thử lại tác vụ. Chú ý tool nào xuất hiện liên tục với cùng argument, ví dụ:

exec → cùng command
exec → cùng command
exec → cùng command

read → cùng file → cùng offset
read → cùng file → cùng offset

Nếu kết quả hoặc lỗi cũng giống nhau qua nhiều lần gọi, đó là dấu hiệu rõ của Tool Loop. openclaw logs --follow theo dõi log Gateway trực tiếp, tự kết nối lại khi rớt mạng (OpenClaw CLI: logs). Log có thể chứa tham số tool chưa che, nên kiểm trước khi gửi cho người khác.

Bước 6: Tạo session mới

Nếu session cũ đã chứa nhiều tool call lặp, bắt đầu lại với context sạch:

/new

/new mở session mới; /reset đặt lại session hiện tại. Muốn dọn các session lỗi khỏi danh sách, xem cách xoá và lưu trữ session bằng OpenClaw CLI. Sau đó gửi lại yêu cầu rõ hơn, ví dụ:

Hãy tìm file cấu hình OpenClaw. Khi tìm thấy, báo đường dẫn và dừng.
Không gọi lại cùng tool với cùng argument nếu kết quả không thay đổi.

Bước 7: Thử model khác nếu lỗi vẫn tiếp tục

Nếu OpenClaw đã cập nhật, loop detection đã bật, session mới vẫn lặp, thử cùng tác vụ với model khác:

  • Model A → liên tục lặp tool call
  • Model B → hoàn thành bình thường

Khi đó, khả năng gọi tool của model hoặc provider đang dùng là nguyên nhân. Cách đổi model xem ở đổi provider, model và API key trong OpenClaw; nếu dùng model local qua Ollama, kiểm tra cấu hình theo hướng dẫn chạy OpenClaw với Ollama local.

Cách bật Loop Detection bằng file openclaw.json

Lưu ý: với người mới, nên dùng lệnh CLI ở Bước 3.

Ngoài CLI, bạn có thể sửa trực tiếp tệp cấu hình ~/.openclaw/openclaw.json (định dạng JSON5):

nano ~/.openclaw/openclaw.json

Thêm loopDetection vào phần tools:

{
  tools: {
    loopDetection: {
      enabled: true
    }
  }
}
Tệp openclaw.json mở trong terminal: khối tools có profile coding và loopDetection enabled true, bên dưới là hooks và channels

Nếu tệp đã có phần tools, chỉ thêm loopDetection: { enabled: true } vào bên trong, không tạo thêm khối tools thứ hai. Lưu xong, kiểm tra:

openclaw config validate

Gateway theo dõi tệp cấu hình và áp dụng phần lớn thay đổi tự động; cấu hình tools không cần restart trong điều kiện thông thường. Nếu cần bật riêng cho một agent, đặt cùng khối này ở agents.entries.<id>.tools.loopDetection.

Loop Detection trong OpenClaw hoạt động như thế nào?

OpenClaw có ba lớp chặn vòng lặp tool, theo tài liệu hiện hành:

  • Chặn lỗi giống hệt (luôn bật): ba lần liên tiếp cùng tool, cùng argument, cùng lỗi thì OpenClaw dừng lượt và ghi lỗi hướng dẫn cách khắc phục. Lớp này không phụ thuộc tools.loopDetection.
  • Rolling loop detection (tắt mặc định): theo dõi lịch sử tool call để phát hiện mẫu lặp không tiến triển; cảnh báo model trước, lặp tiếp thì chặn cả lô tool.
  • Post-compaction guard: sau khi context bị compaction, kiểm tra agent có lặp cùng tool + argument + kết quả không, nếu có thì huỷ run với lỗi compaction_loop_persisted. Lớp này hoạt động khi enabled chưa bị đặt thành false.

Loop detection không chặn mọi lời gọi giống nhau. Ví dụ sau vẫn có tiến triển:

read offset=0
read offset=100
read offset=200

Trong khi trường hợp sau đáng nghi, đặc biệt khi kết quả không đổi:

read offset=0
read offset=0
read offset=0

Đặt tools.loopDetection.enabled: false sẽ tắt cả lớp rolling lẫn guard sau compaction; lớp chặn ba lỗi giống hệt vẫn còn (OpenClaw: Tool-loop detection). Khái niệm compaction có ở bài khái niệm cốt lõi trong OpenClaw.

Cách hạn chế Tool Loop trong OpenClaw

Hạn chế Tool Loop chủ yếu là chọn model gọi tool tốt, giữ context gọn và viết yêu cầu có điểm dừng:

  • Bật tools.loopDetection.enabled, đặc biệt khi dùng model nhỏ hoặc model local.
  • Cập nhật OpenClaw lên bản stable phù hợp.
  • Mở session mới khi context đã quá dài hoặc chứa nhiều tool call lỗi.
  • Viết prompt có mục tiêu và điều kiện dừng rõ ràng.
  • Theo dõi openclaw logs --follow khi tool liên tục thất bại.
  • Thử model khác nếu lỗi chỉ xảy ra với một model.
  • Không gửi lại cùng yêu cầu khi agent đang mắc vòng lặp.
  • Giới hạn quyền tool để vòng lặp không gây hại; xem cách ly sandbox cho AI Agent trên VPS.

Kết luận

Tool Loop xảy ra khi agent gọi lại cùng một tool mà không có tiến triển. Thứ tự xử lý: dừng run → cập nhật OpenClaw → bật loop detection → kiểm cấu hình → xem log → tạo session mới → đổi model. Bật tools.loopDetection.enabled giúp OpenClaw tự cảnh báo và chặn vòng lặp sớm, đỡ tốn token và tài nguyên VPS.

Muốn chạy OpenClaw 24/7 mà không tự cài? VPS OpenClaw của Tino cài sẵn OpenClaw trên VPS NVMe đặt tại Việt Nam; bạn vẫn có quyền root để cấu hình. Xem cấu hình và giá trên trang sản phẩm.

Bài viết liên quan:

Những câu hỏi thường gặp

Tool Loop có phải do VPS yếu không?

Thường là không. Vòng lặp thường do model, kết quả tool, context, provider hoặc runtime. VPS thiếu tài nguyên chủ yếu khiến tool chạy chậm hoặc lỗi hết bộ nhớ; nếu lỗi đó lặp lại ba lần giống hệt, OpenClaw sẽ tự dừng lượt.

Tại sao OpenClaw cứ gọi lại cùng một lệnh exec?

Model có thể chưa hiểu kết quả, lệnh liên tục thất bại hoặc kết quả không đủ để quyết định bước tiếp. Chạy openclaw logs –follow để xem lệnh và kết quả từng lần gọi, rồi sửa lệnh, đổi prompt hoặc đổi model.

Có cần restart Gateway sau khi bật Loop Detection không?

Thông thường không, vì thay đổi trong nhóm tools được hot reload. Chỉ chạy openclaw gateway restart khi CLI báo Restart the gateway to apply.

Tăng context window có sửa được Tool Loop không?

Không phải giải pháp chính. Context lớn giúp model giữ nhiều thông tin hơn nhưng không xử lý trực tiếp vòng lặp. Nên bật loop detection và tìm tool hoặc model gây lỗi trước.

Lỗi compaction_loop_persisted nghĩa là gì?

Đây là lỗi của guard sau compaction: sau khi nén context, agent vẫn lặp cùng tool, cùng argument và cùng kết quả nên OpenClaw huỷ run. Hãy mở session mới bằng /new và viết lại yêu cầu có điều kiện dừng.

Đông Tùng

Senior Technology Writer

Là cử nhân Quản trị kinh doanh của Trường Đại học Tài chính - Marketing, Tùng bắt đầu làm việc tại Tino Group từ năm 2021 ở vị trí Content Marketing để thỏa mãn niềm đam mê viết lách của bản thân. Sở hữu khả năng sáng tạo đặc biệt, anh cùng đội ngũ của mình đã tạo nên những chiến dịch quảng cáo độc đáo cùng vô số bài viết hữu ích về nhiều chủ đề khác nhau. Sự tỉ mỉ, kiên trì và tinh thần sáng tạo của Tùng đã góp phần lớn vào thành công của Tino Group trong lĩnh vực marketing trực tuyến.

Xem thêm bài viết

Bài viết liên quan