---
read_when:
    - Користувач повідомляє, що агенти застрягають, повторюючи виклики інструментів
    - Вам потрібно налаштувати захист від повторюваних викликів
    - Ви редагуєте політики інструментів/runtime агента
summary: Як увімкнути та налаштувати захисні механізми, що виявляють повторювані цикли виклику інструментів
title: Виявлення циклів інструментів
x-i18n:
    generated_at: "2026-04-23T23:08:08Z"
    model: gpt-5.4
    provider: openai
    source_hash: 0f5824d511ec33eb1f46c77250cb779b5e3bd5b3e5f16fab9e6c0b67297f87df
    source_path: tools/loop-detection.md
    workflow: 15
---

OpenClaw може не давати агентам застрягати в повторюваних шаблонах виклику інструментів.
Цей захист **типово вимкнено**.

Вмикайте його лише там, де це потрібно, оскільки за суворих налаштувань він може блокувати легітимні повторні виклики.

## Навіщо це потрібно

- Виявляти повторювані послідовності, які не дають прогресу.
- Виявляти цикли без результату з високою частотою (той самий інструмент, ті самі входи, повторювані помилки).
- Виявляти конкретні шаблони повторюваних викликів для відомих polling-інструментів.

## Блок конфігурації

Глобальні типові значення:

```json5
{
  tools: {
    loopDetection: {
      enabled: false,
      historySize: 30,
      warningThreshold: 10,
      criticalThreshold: 20,
      globalCircuitBreakerThreshold: 30,
      detectors: {
        genericRepeat: true,
        knownPollNoProgress: true,
        pingPong: true,
      },
    },
  },
}
```

Перевизначення для окремого агента (необов’язково):

```json5
{
  agents: {
    list: [
      {
        id: "safe-runner",
        tools: {
          loopDetection: {
            enabled: true,
            warningThreshold: 8,
            criticalThreshold: 16,
          },
        },
      },
    ],
  },
}
```

### Поведінка полів

- `enabled`: головний перемикач. `false` означає, що виявлення циклів не виконується.
- `historySize`: кількість нещодавніх викликів інструментів, які зберігаються для аналізу.
- `warningThreshold`: поріг перед класифікацією шаблону як такого, що дає лише попередження.
- `criticalThreshold`: поріг для блокування повторюваних циклічних шаблонів.
- `globalCircuitBreakerThreshold`: глобальний поріг circuit breaker для відсутності прогресу.
- `detectors.genericRepeat`: виявляє повторювані шаблони той самий інструмент + ті самі параметри.
- `detectors.knownPollNoProgress`: виявляє відомі polling-подібні шаблони без зміни стану.
- `detectors.pingPong`: виявляє почергові ping-pong шаблони.

## Рекомендоване налаштування

- Почніть з `enabled: true`, залишивши типові значення без змін.
- Дотримуйтеся порядку порогів `warningThreshold < criticalThreshold < globalCircuitBreakerThreshold`.
- Якщо з’являються хибні спрацьовування:
  - підвищте `warningThreshold` і/або `criticalThreshold`
  - (необов’язково) підвищте `globalCircuitBreakerThreshold`
  - вимкніть лише той детектор, який спричиняє проблеми
  - зменште `historySize` для менш суворого історичного контексту

## Журнали та очікувана поведінка

Коли виявлено цикл, OpenClaw повідомляє про подію циклу і блокує або приглушує наступний цикл інструментів залежно від серйозності.
Це захищає користувачів від неконтрольованих витрат токенів і зависань, зберігаючи нормальний доступ до інструментів.

- Спочатку віддавайте перевагу попередженню та тимчасовому приглушенню.
- Підвищуйте рівень лише тоді, коли накопичуються повторні докази.

## Примітки

- `tools.loopDetection` об’єднується з перевизначеннями на рівні агента.
- Конфігурація для окремого агента повністю перевизначає або розширює глобальні значення.
- Якщо конфігурації немає, захисні механізми залишаються вимкненими.

## Пов’язане

- [Погодження Exec](/uk/tools/exec-approvals)
- [Рівні thinking](/uk/tools/thinking)
- [Sub-agents](/uk/tools/subagents)
