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_fetchhoặcmessagexuấ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.

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.

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

Kiểm tra lại giá trị:
openclaw config get tools.loopDetection.enabled
Kết quả true nghĩa là loop detection đã bật.

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
}
}
}

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 khienabledchưa bị đặt thànhfalse.
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 --followkhi 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:
- OpenClaw có khả năng tự học không?
- Chuyển từ Cron cũ sang Automations trong OpenClaw
- Cài đặt và sử dụng ClawHub CLI trên OpenClaw
- Tạo Custom Skills cho OpenClaw
- Lấy API Token Telegram để kết nối OpenClaw
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.
