---
read_when:
    - Ви хочете зрозуміти автостиснення та /compact
    - Ви налагоджуєте довгі сесії, які впираються в ліміти контексту
summary: Як OpenClaw підсумовує довгі розмови, щоб залишатися в межах лімітів моделі
title: Стиснення
x-i18n:
    generated_at: "2026-04-07T17:57:31Z"
    model: gpt-5.4
    provider: openai
    source_hash: e6590b82a8c3a9c310998d653459ca4d8612495703ca0a8d8d306d7643142fd1
    source_path: concepts/compaction.md
    workflow: 15
---

# Стиснення

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

## Як це працює

1. Старіші ходи розмови підсумовуються в компактний запис.
2. Підсумок зберігається в транскрипті сесії.
3. Недавні повідомлення зберігаються без змін.

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

Повна історія розмови залишається на диску. Стиснення змінює лише те, що
модель бачить на наступному ході.

## Автостиснення

Автостиснення увімкнене за замовчуванням. Воно запускається, коли сесія
наближається до ліміту контексту, або коли модель повертає помилку переповнення
контексту (у такому разі OpenClaw стискає і повторює спробу). Типові ознаки
переповнення включають
`request_too_large`, `context length exceeded`, `input exceeds the maximum
number of tokens`, `input token count exceeds the maximum number of input
tokens`, `input is too long for the model` і `ollama error: context length
exceeded`.

<Info>
Перед стисненням OpenClaw автоматично нагадує агенту зберегти важливі
нотатки у файли [memory](/uk/concepts/memory). Це запобігає втраті контексту.
</Info>

Використовуйте параметр `agents.defaults.compaction` у вашому `openclaw.json`, щоб налаштувати поведінку стиснення (режим, цільову кількість токенів тощо).
Підсумовування під час стиснення за замовчуванням зберігає непрозорі ідентифікатори (`identifierPolicy: "strict"`). Ви можете перевизначити це за допомогою `identifierPolicy: "off"` або надати власний текст через `identifierPolicy: "custom"` і `identifierInstructions`.

За бажанням ви можете вказати іншу модель для підсумовування під час стиснення через `agents.defaults.compaction.model`. Це корисно, коли ваша основна модель є локальною або малою моделлю, а ви хочете, щоб підсумки стиснення створювала потужніша модель. Перевизначення приймає будь-який рядок `provider/model-id`:

```json
{
  "agents": {
    "defaults": {
      "compaction": {
        "model": "openrouter/anthropic/claude-sonnet-4-6"
      }
    }
  }
}
```

Це також працює з локальними моделями, наприклад із другою моделлю Ollama, призначеною для підсумовування, або спеціалістом зі стиснення, налаштованим під конкретну задачу:

```json
{
  "agents": {
    "defaults": {
      "compaction": {
        "model": "ollama/llama3.1:8b"
      }
    }
  }
}
```

Якщо значення не задано, для стиснення використовується основна модель агента.

## Підключувані провайдери стиснення

Plugins можуть реєструвати власний провайдер стиснення через `registerCompactionProvider()` в API плагіна. Коли провайдер зареєстрований і налаштований, OpenClaw делегує підсумовування йому замість вбудованого LLM-конвеєра.

Щоб використовувати зареєстрований провайдер, задайте ідентифікатор провайдера у своїй конфігурації:

```json
{
  "agents": {
    "defaults": {
      "compaction": {
        "provider": "my-provider"
      }
    }
  }
}
```

Встановлення `provider` автоматично примусово вмикає `mode: "safeguard"`. Провайдери отримують ті самі інструкції зі стиснення та політику збереження ідентифікаторів, що й у вбудованому шляху, а OpenClaw усе одно зберігає контекст недавніх ходів і розділених ходів у суфіксі після виходу провайдера. Якщо провайдер зазнає збою або повертає порожній результат, OpenClaw повертається до вбудованого LLM-підсумовування.

## Автостиснення (увімкнено за замовчуванням)

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

Ви побачите:

- `🧹 Auto-compaction complete` у докладному режимі
- `/status`, що показує `🧹 Compactions: <count>`

Перед стисненням OpenClaw може виконати **тихий скид memory**, щоб зберегти
довготривалі нотатки на диск. Докладніше про деталі та конфігурацію див. у [Memory](/uk/concepts/memory).

## Ручне стиснення

Введіть `/compact` у будь-якому чаті, щоб примусово запустити стиснення. Додайте інструкції, щоб спрямувати
підсумок:

```
/compact Focus on the API design decisions
```

## Використання іншої моделі

За замовчуванням для стиснення використовується основна модель вашого агента. Ви можете використовувати більш
потужну модель для кращих підсумків:

```json5
{
  agents: {
    defaults: {
      compaction: {
        model: "openrouter/anthropic/claude-sonnet-4-6",
      },
    },
  },
}
```

## Сповіщення про початок стиснення

За замовчуванням стиснення виконується без повідомлень. Щоб показувати коротке сповіщення, коли стиснення
починається, увімкніть `notifyUser`:

```json5
{
  agents: {
    defaults: {
      compaction: {
        notifyUser: true,
      },
    },
  },
}
```

Коли цю опцію ввімкнено, користувач бачить коротке повідомлення (наприклад, "Compacting
context...") на початку кожного запуску стиснення.

## Стиснення проти обрізання

|                  | Стиснення                    | Обрізання                         |
| ---------------- | ---------------------------- | --------------------------------- |
| **Що це робить** | Підсумовує старішу розмову   | Обрізає старі результати інструментів |
| **Зберігається?**| Так (у транскрипті сесії)    | Ні (лише в пам’яті, для кожного запиту) |
| **Обсяг**        | Уся розмова                  | Лише результати інструментів      |

[Обрізання сесії](/uk/concepts/session-pruning) — це легше доповнення, яке
обрізає вивід інструментів без підсумовування.

## Усунення неполадок

**Стиснення відбувається надто часто?** Контекстне вікно моделі може бути малим, або результати
інструментів можуть бути великими. Спробуйте увімкнути
[обрізання сесії](/uk/concepts/session-pruning).

**Після стиснення контекст здається застарілим?** Використайте `/compact Focus on <topic>`, щоб
спрямувати підсумок, або увімкніть [скид memory](/uk/concepts/memory), щоб нотатки
зберігалися.

**Потрібен чистий аркуш?** `/new` починає нову сесію без стиснення.

Для розширеної конфігурації (резерв токенів, збереження ідентифікаторів, власні
рушії контексту, серверне стиснення OpenAI) див. розділ
[Поглиблений огляд керування сесіями](/uk/reference/session-management-compaction).

## Пов’язане

- [Сесія](/uk/concepts/session) — керування сесією та її життєвий цикл
- [Обрізання сесії](/uk/concepts/session-pruning) — обрізання результатів інструментів
- [Контекст](/uk/concepts/context) — як формується контекст для ходів агента
- [Hooks](/uk/automation/hooks) — хуки життєвого циклу стиснення (before_compaction, after_compaction)
