Перейти до основного вмісту

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

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

Як це працює

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

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

Автоматична Compaction увімкнена за замовчуванням. Вона запускається, коли сесія наближається до межі контексту, або коли модель повертає помилку переповнення контексту (у такому разі OpenClaw виконує Compaction і повторює спробу). Ви побачите:
  • embedded run auto-compaction start / complete у звичайних журналах Gateway.
  • 🧹 Auto-compaction complete у докладному режимі.
  • /status, що показує 🧹 Compactions: <count>.
Перед Compaction 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

Ручна Compaction

Введіть /compact у будь-якому чаті, щоб примусово запустити Compaction. Додайте інструкції, щоб спрямувати підсумок:
/compact Focus on the API design decisions
Коли встановлено agents.defaults.compaction.keepRecentTokens, ручна Compaction враховує цю точку відсікання Pi і зберігає останній хвіст у перебудованому контексті. Без явного бюджету збереження ручна Compaction працює як жорстка контрольна точка й продовжує лише з нового підсумку.

Конфігурація

Налаштовуйте Compaction у agents.defaults.compaction у вашому openclaw.json. Найпоширеніші параметри наведено нижче; повний довідник див. у детальному огляді керування сесіями.

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

За замовчуванням Compaction використовує основну модель агента. Установіть agents.defaults.compaction.model, щоб делегувати підсумовування більш спроможній або спеціалізованій моделі. Перевизначення приймає будь-який рядок provider/model-id:
{
  "agents": {
    "defaults": {
      "compaction": {
        "model": "openrouter/anthropic/claude-sonnet-4-6"
      }
    }
  }
}
Це також працює з локальними моделями, наприклад із другою моделлю Ollama, призначеною для підсумовування:
{
  "agents": {
    "defaults": {
      "compaction": {
        "model": "ollama/llama3.1:8b"
      }
    }
  }
}
Якщо значення не задано, Compaction починає з активної моделі сесії. Якщо підсумовування завершується помилкою провайдера, придатною для резервної моделі, OpenClaw повторює цю спробу Compaction через наявний ланцюг резервних моделей сесії. Вибір резервної моделі тимчасовий і не записується назад у стан сесії. Явне перевизначення agents.defaults.compaction.model залишається точним і не успадковує ланцюг резервних моделей сесії.

Збереження ідентифікаторів

Підсумовування Compaction за замовчуванням зберігає непрозорі ідентифікатори (identifierPolicy: "strict"). Перевизначте на identifierPolicy: "off", щоб вимкнути це, або використайте identifierPolicy: "custom" разом з identifierInstructions для власних вказівок.

Обмежувач байтів активного транскрипта

Коли встановлено agents.defaults.compaction.maxActiveTranscriptBytes, OpenClaw запускає звичайну локальну Compaction перед виконанням, якщо активний JSONL досягає цього розміру. Це корисно для довготривалих сесій, де керування контекстом на боці провайдера може підтримувати здоровий контекст моделі, тоді як локальний транскрипт продовжує зростати. Це не розбиває сирі байти JSONL; натомість просить звичайний конвеєр Compaction створити семантичний підсумок.
Обмежувач байтів потребує truncateAfterCompaction: true. Без ротації транскрипта активний файл не зменшився б, і обмежувач залишався б неактивним.

Наступні транскрипти

Коли ввімкнено agents.defaults.compaction.truncateAfterCompaction, OpenClaw не переписує наявний транскрипт на місці. Він створює новий активний наступний транскрипт із підсумку Compaction, збереженого стану та непідсумованого хвоста, а потім зберігає попередній JSONL як архівне джерело контрольної точки. Наступні транскрипти також відкидають точні дублікати довгих ходів користувача, які надходять у межах короткого вікна повторної спроби, щоб шквали повторів каналу не переносилися до наступного активного транскрипта після Compaction. Контрольні точки до Compaction зберігаються лише доки вони залишаються нижче ліміту розміру контрольної точки OpenClaw; надмірно великі активні транскрипти все одно проходять Compaction, але OpenClaw пропускає великий знімок для налагодження замість подвоєння використання диска.

Сповіщення Compaction

За замовчуванням Compaction виконується без повідомлень. Установіть notifyUser, щоб показувати короткі статусні повідомлення, коли Compaction починається й завершується:
{
  agents: {
    defaults: {
      compaction: {
        notifyUser: true,
      },
    },
  },
}

Скидання пам’яті

Перед Compaction OpenClaw може виконати тихий хід скидання пам’яті, щоб зберегти довговічні нотатки на диск. Установіть agents.defaults.compaction.memoryFlush.model, коли цей службовий хід має використовувати локальну модель замість активної моделі розмови:
{
  "agents": {
    "defaults": {
      "compaction": {
        "memoryFlush": {
          "model": "ollama/qwen3:8b"
        }
      }
    }
  }
}
Перевизначення моделі скидання пам’яті є точним і не успадковує ланцюг резервних моделей активної сесії. Докладніше про конфігурацію див. у пам’яті.

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

Plugins можуть зареєструвати власного провайдера Compaction через registerCompactionProvider() в API Plugin. Коли провайдер зареєстрований і налаштований, OpenClaw делегує підсумовування йому замість вбудованого LLM-конвеєра. Щоб використати зареєстрованого провайдера, задайте його id у вашій конфігурації:
{
  "agents": {
    "defaults": {
      "compaction": {
        "provider": "my-provider"
      }
    }
  }
}
Установлення provider автоматично примусово задає mode: "safeguard". Провайдери отримують ті самі інструкції Compaction і політику збереження ідентифікаторів, що й вбудований шлях, а OpenClaw усе ще зберігає контекст суфікса останніх ходів і розбитих ходів після виводу провайдера.
Якщо провайдер завершується помилкою або повертає порожній результат, OpenClaw повертається до вбудованого LLM-підсумовування.

Compaction і відсікання

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

Усунення несправностей

Compaction відбувається занадто часто? Контекстне вікно моделі може бути малим, або виводи інструментів можуть бути великими. Спробуйте ввімкнути відсікання сесії. Контекст здається застарілим після Compaction? Використайте /compact Focus on <topic>, щоб спрямувати підсумок, або ввімкніть скидання пам’яті, щоб нотатки зберігалися. Потрібен чистий аркуш? /new починає нову сесію без Compaction. Для розширеної конфігурації (резервні токени, збереження ідентифікаторів, власні рушії контексту, серверна Compaction OpenAI) див. детальний огляд керування сесіями.

Пов’язане

  • Сесія: керування сесією та життєвий цикл.
  • Відсікання сесії: обрізання результатів інструментів.
  • Контекст: як контекст будується для ходів агента.
  • Хуки: хуки життєвого циклу Compaction (before_compaction, after_compaction).