Кожна модель має контекстне вікно: максимальну кількість токенів, яку вона може обробити. Коли розмова наближається до цієї межі, OpenClaw ущільнює старіші повідомлення в підсумок, щоб чат міг продовжуватися.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.
Як це працює
- Старіші ходи розмови підсумовуються в компактний запис.
- Підсумок зберігається в транскрипті сесії.
- Останні повідомлення залишаються без змін.
toolResult. Якщо точка розбиття потрапляє всередину блоку інструмента, OpenClaw зміщує межу, щоб пара залишалася разом, а поточний непідсумований хвіст було збережено.
Повна історія розмови залишається на диску. Compaction змінює лише те, що модель бачить на наступному ході.
Автоматична Compaction
Автоматична Compaction увімкнена за замовчуванням. Вона запускається, коли сесія наближається до межі контексту, або коли модель повертає помилку переповнення контексту (у такому разі OpenClaw виконує Compaction і повторює спробу). Ви побачите:embedded run auto-compaction start/completeу звичайних журналах Gateway.🧹 Auto-compaction completeу докладному режимі./status, що показує🧹 Compactions: <count>.
Перед Compaction OpenClaw автоматично нагадує агенту зберегти важливі нотатки у файли пам’яті. Це запобігає втраті контексту.
Recognized overflow signatures
Recognized overflow signatures
OpenClaw виявляє переповнення контексту за такими шаблонами помилок провайдерів:
request_too_largecontext length exceededinput exceeds the maximum number of tokensinput token count exceeds the maximum number of input tokensinput is too long for the modelollama error: context length exceeded
Ручна Compaction
Введіть/compact у будь-якому чаті, щоб примусово запустити Compaction. Додайте інструкції, щоб спрямувати підсумок:
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 залишається точним і не успадковує ланцюг резервних моделей сесії.
Збереження ідентифікаторів
Підсумовування Compaction за замовчуванням зберігає непрозорі ідентифікатори (identifierPolicy: "strict"). Перевизначте на identifierPolicy: "off", щоб вимкнути це, або використайте identifierPolicy: "custom" разом з identifierInstructions для власних вказівок.
Обмежувач байтів активного транскрипта
Коли встановленоagents.defaults.compaction.maxActiveTranscriptBytes, OpenClaw запускає звичайну локальну Compaction перед виконанням, якщо активний JSONL досягає цього розміру. Це корисно для довготривалих сесій, де керування контекстом на боці провайдера може підтримувати здоровий контекст моделі, тоді як локальний транскрипт продовжує зростати. Це не розбиває сирі байти JSONL; натомість просить звичайний конвеєр Compaction створити семантичний підсумок.
Наступні транскрипти
Коли ввімкненоagents.defaults.compaction.truncateAfterCompaction, OpenClaw не переписує наявний транскрипт на місці. Він створює новий активний наступний транскрипт із підсумку Compaction, збереженого стану та непідсумованого хвоста, а потім зберігає попередній JSONL як архівне джерело контрольної точки.
Наступні транскрипти також відкидають точні дублікати довгих ходів користувача, які надходять
у межах короткого вікна повторної спроби, щоб шквали повторів каналу не переносилися до
наступного активного транскрипта після Compaction.
Контрольні точки до Compaction зберігаються лише доки вони залишаються нижче ліміту розміру
контрольної точки OpenClaw; надмірно великі активні транскрипти все одно проходять Compaction, але OpenClaw
пропускає великий знімок для налагодження замість подвоєння використання диска.
Сповіщення Compaction
За замовчуванням Compaction виконується без повідомлень. УстановітьnotifyUser, щоб показувати короткі статусні повідомлення, коли Compaction починається й завершується:
Скидання пам’яті
Перед Compaction OpenClaw може виконати тихий хід скидання пам’яті, щоб зберегти довговічні нотатки на диск. Установітьagents.defaults.compaction.memoryFlush.model, коли цей службовий хід має використовувати локальну модель замість активної моделі розмови:
Підключувані провайдери Compaction
Plugins можуть зареєструвати власного провайдера Compaction черезregisterCompactionProvider() в API Plugin. Коли провайдер зареєстрований і налаштований, OpenClaw делегує підсумовування йому замість вбудованого LLM-конвеєра.
Щоб використати зареєстрованого провайдера, задайте його id у вашій конфігурації:
provider автоматично примусово задає mode: "safeguard". Провайдери отримують ті самі інструкції Compaction і політику збереження ідентифікаторів, що й вбудований шлях, а OpenClaw усе ще зберігає контекст суфікса останніх ходів і розбитих ходів після виводу провайдера.
Якщо провайдер завершується помилкою або повертає порожній результат, OpenClaw повертається до вбудованого LLM-підсумовування.
Compaction і відсікання
| Compaction | Відсікання | |
|---|---|---|
| Що робить | Підсумовує старішу розмову | Обрізає старі результати інструментів |
| Збережено? | Так (у транскрипті сесії) | Ні (лише в пам’яті, для кожного запиту) |
| Обсяг | Уся розмова | Лише результати інструментів |
Усунення несправностей
Compaction відбувається занадто часто? Контекстне вікно моделі може бути малим, або виводи інструментів можуть бути великими. Спробуйте ввімкнути відсікання сесії. Контекст здається застарілим після Compaction? Використайте/compact Focus on <topic>, щоб спрямувати підсумок, або ввімкніть скидання пам’яті, щоб нотатки зберігалися.
Потрібен чистий аркуш? /new починає нову сесію без Compaction.
Для розширеної конфігурації (резервні токени, збереження ідентифікаторів, власні рушії контексту, серверна Compaction OpenAI) див. детальний огляд керування сесіями.
Пов’язане
- Сесія: керування сесією та життєвий цикл.
- Відсікання сесії: обрізання результатів інструментів.
- Контекст: як контекст будується для ходів агента.
- Хуки: хуки життєвого циклу Compaction (
before_compaction,after_compaction).