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

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

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

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

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

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

## Автоматичний Compaction

Автоматичний Compaction увімкнено типово. Він запускається, коли сесія наближається до межі контексту,
або коли модель повертає помилку переповнення контексту (у такому разі
OpenClaw виконує Compaction і повторює спробу). Типові ознаки переповнення включають
`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>
Перед виконанням Compaction OpenClaw автоматично нагадує агенту зберегти важливі
нотатки у файли [memory](/uk/concepts/memory). Це запобігає втраті контексту.
</Info>

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

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

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

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

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

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

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

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

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

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

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

## Автоматичний Compaction (увімкнено типово)

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

Ви побачите:

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

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

## Ручний Compaction

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

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

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

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

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

## Сповіщення Compaction

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

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

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

## Compaction і pruning

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

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

## Усунення проблем

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

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

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

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

## Пов’язане

- [Session](/uk/concepts/session) — керування сесіями та життєвий цикл
- [Session Pruning](/uk/concepts/session-pruning) — обрізання результатів інструментів
- [Context](/uk/concepts/context) — як будується контекст для ходів агента
- [Hooks](/uk/automation/hooks) — хуки життєвого циклу Compaction (`before_compaction`, `after_compaction`)
