Виявлення циклів інструментів
OpenClaw може не дозволяти агентам застрягати в шаблонах повторюваних викликів інструментів. Цей захист типово вимкнений. Вмикайте його лише там, де це потрібно, оскільки за суворих налаштувань він може блокувати легітимні повторні виклики.Навіщо це існує
- Виявляти повторювані послідовності, які не ведуть до прогресу.
- Виявляти цикли з високою частотою безрезультатних викликів (той самий інструмент, ті самі вхідні дані, повторювані помилки).
- Виявляти конкретні шаблони повторних викликів для відомих polling-інструментів.
Блок конфігурації
Глобальні значення за замовчуванням:Поведінка полів
enabled: головний перемикач.falseозначає, що виявлення циклів не виконується.historySize: кількість останніх викликів інструментів, що зберігаються для аналізу.warningThreshold: поріг, після якого шаблон класифікується лише як попередження.criticalThreshold: поріг для блокування повторюваних циклічних шаблонів.globalCircuitBreakerThreshold: глобальний поріг запобіжника для відсутності прогресу.detectors.genericRepeat: виявляє повторювані шаблони з тим самим інструментом + тими самими параметрами.detectors.knownPollNoProgress: виявляє відомі шаблони, схожі на polling, без зміни стану.detectors.pingPong: виявляє чергування за шаблоном ping-pong.
Рекомендоване налаштування
- Почніть із
enabled: true, не змінюючи типові значення. - Зберігайте порядок порогів як
warningThreshold < criticalThreshold < globalCircuitBreakerThreshold. - Якщо виникають хибні спрацьовування:
- підвищте
warningThresholdі/абоcriticalThreshold - (необов’язково) підвищте
globalCircuitBreakerThreshold - вимкніть лише той detector, який спричиняє проблеми
- зменште
historySizeдля менш суворого історичного контексту
- підвищте
Логи й очікувана поведінка
Коли цикл виявлено, OpenClaw повідомляє про подію циклу й блокує або приглушує наступний цикл інструментів залежно від серйозності. Це захищає користувачів від неконтрольованих витрат токенів і зависань, зберігаючи нормальний доступ до інструментів.- Спочатку надавайте перевагу попередженню та тимчасовому приглушенню.
- Підвищуйте рівень лише тоді, коли накопичуються повторні підтвердження.
Примітки
tools.loopDetectionоб’єднується з перевизначеннями на рівні агента.- Конфігурація для окремого агента повністю перевизначає або розширює глобальні значення.
- Якщо конфігурації немає, guardrails залишаються вимкненими.