Встроенные инструменты
Обнаружение циклов вызовов инструментов
OpenClaw может предотвращать застревание агентов в повторяющихся паттернах вызовов инструментов. Этот ограничитель по умолчанию отключен. Включайте его только там, где это необходимо, так как при строгих настройках он может блокировать легитимные повторные вызовы.
Для чего это нужно
- Обнаружение повторяющихся последовательностей, которые не приводят к прогрессу.
- Обнаружение высокочастотных циклов без результата (один и тот же инструмент, одни и те же входные данные, повторяющиеся ошибки).
- Обнаружение специфических паттернов повторных вызовов для известных инструментов с опросом (polling).
Блок конфигурации
Глобальные значения по умолчанию:
{
tools: {
loopDetection: {
enabled: false,
historySize: 30,
warningThreshold: 10,
criticalThreshold: 20,
globalCircuitBreakerThreshold: 30,
detectors: {
genericRepeat: true,
knownPollNoProgress: true,
pingPong: true,
},
},
},
}
Переопределение для конкретного агента (опционально):
{
agents: {
list: [
{
id: "safe-runner",
tools: {
loopDetection: {
enabled: true,
warningThreshold: 8,
criticalThreshold: 16,
},
},
},
],
},
}
Поведение полей
enabled: Главный переключатель.falseозначает, что обнаружение циклов не выполняется.historySize: количество последних вызовов инструментов, хранящихся для анализа.warningThreshold: порог перед классификацией паттерна как только предупреждения.criticalThreshold: порог для блокировки повторяющихся циклических паттернов.globalCircuitBreakerThreshold: глобальный порог автоматического выключателя при отсутствии прогресса.detectors.genericRepeat: обнаруживает повторяющиеся паттерны с одинаковым инструментом и параметрами.detectors.knownPollNoProgress: обнаруживает известные паттерны, похожие на опрос, без изменения состояния.detectors.pingPong: обнаруживает чередующиеся паттерны "пинг-понг".
Рекомендуемая настройка
- Начните с
enabled: true, значения по умолчанию без изменений. - Соблюдайте порядок порогов:
warningThreshold < criticalThreshold < globalCircuitBreakerThreshold. - Если возникают ложные срабатывания:
- увеличьте
warningThresholdи/илиcriticalThreshold - (опционально) увеличьте
globalCircuitBreakerThreshold - отключите только детектор, вызывающий проблемы
- уменьшите
historySizeдля менее строгого исторического контекста
- увеличьте
Логи и ожидаемое поведение
При обнаружении цикла OpenClaw сообщает о событии цикла и блокирует или ослабляет следующий цикл вызова инструмента в зависимости от серьезности. Это защищает пользователей от неконтролируемого расхода токенов и зависаний, сохраняя при этом нормальный доступ к инструментам.
- Сначала предпочтительнее предупреждение и временное подавление.
- Эскалация происходит только при накоплении повторяющихся свидетельств.
Примечания
- Конфигурация
tools.loopDetectionобъединяется с переопределениями на уровне агента. - Конфигурация для конкретного агента полностью переопределяет или расширяет глобальные значения.
- Если конфигурация отсутствует, ограничители остаются выключенными.