chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-25 01:35:08 +00:00
parent 2df8214e9a
commit a97c8e7155

View File

@ -6,21 +6,22 @@ read_when:
summary: 'Рушій контексту: підключуване збирання контексту, Compaction і життєвий цикл субагентів'
title: Рушій контексту
x-i18n:
generated_at: "2026-04-24T04:13:24Z"
generated_at: "2026-04-25T01:34:06Z"
model: gpt-5.4
provider: openai
source_hash: 8f4e5f01f945f7fe3056587f2aa60bec607dd0dd64b29e9ab2afe8e77b5d2f1e
source_hash: 1dc4a6f0a9fb669893a6a877924562d05168fde79b3c41df335d697e651d534d
source_path: concepts/context-engine.md
workflow: 15
---
**Рушій контексту** керує тим, як OpenClaw будує контекст моделі для кожного запуску:
які повідомлення включати, як підсумовувати давнішу історію та як керувати
які повідомлення включати, як підсумовувати старішу історію та як керувати
контекстом через межі субагентів.
OpenClaw постачається з вбудованим рушієм `legacy` і використовує його типово — більшості
користувачів ніколи не потрібно це змінювати. Встановлюйте та вибирайте рушій Plugin лише тоді,
коли вам потрібна інша логіка збирання, Compaction або пригадування між сесіями.
OpenClaw постачається з вбудованим рушієм `legacy` і використовує його за
замовчуванням — більшості користувачів ніколи не потрібно це змінювати. Установлюйте
та вибирайте рушій Plugin лише тоді, коли вам потрібна інша логіка збирання,
Compaction або відновлення між сесіями.
## Швидкий старт
@ -28,46 +29,46 @@ OpenClaw постачається з вбудованим рушієм `legacy`
```bash
openclaw doctor
# або перегляньте конфігурацію напряму:
# or inspect config directly:
cat ~/.openclaw/openclaw.json | jq '.plugins.slots.contextEngine'
```
### Встановлення Plugin рушія контексту
### Установлення Plugin рушія контексту
Plugins рушія контексту встановлюються так само, як і будь-який інший Plugin OpenClaw. Спочатку
встановіть Plugin, а потім виберіть рушій у слоті:
встановіть його, а потім виберіть рушій у слоті:
```bash
# Встановити з npm
# Install from npm
openclaw plugins install @martian-engineering/lossless-claw
# Або встановити з локального шляху (для розробки)
# Or install from a local path (for development)
openclaw plugins install -l ./my-context-engine
```
Потім увімкніть Plugin і виберіть його як активний рушій у своїй конфігурації:
Потім увімкніть Plugin і виберіть його як активний рушій у вашій конфігурації:
```json5
// openclaw.json
{
plugins: {
slots: {
contextEngine: "lossless-claw", // має збігатися із зареєстрованим id рушія Plugin
contextEngine: "lossless-claw", // must match the plugin's registered engine id
},
entries: {
"lossless-claw": {
enabled: true,
// Тут розміщується конфігурація, специфічна для Plugin (див. документацію Plugin)
// Plugin-specific config goes here (see the plugin's docs)
},
},
},
}
```
Після встановлення та налаштування перезапустіть gateway.
Після встановлення та налаштування перезапустіть Gateway.
Щоб повернутися до вбудованого рушія, встановіть `contextEngine` у `"legacy"` (або
повністю видаліть цей ключ — `"legacy"` використовується типово).
Щоб повернутися до вбудованого рушія, установіть `contextEngine` у `"legacy"` (або
повністю видаліть цей ключ — `"legacy"` використовується за замовчуванням).
## Як це працює
@ -76,55 +77,55 @@ openclaw plugins install -l ./my-context-engine
1. **Ingest** — викликається, коли до сесії додається нове повідомлення. Рушій
може зберегти або проіндексувати повідомлення у власному сховищі даних.
2. **Assemble** — викликається перед кожним запуском моделі. Рушій повертає впорядкований
набір повідомлень (і необов’язковий `systemPromptAddition`), які вміщаються
в бюджет токенів.
2. **Assemble** — викликається перед кожним запуском моделі. Рушій повертає
впорядкований набір повідомлень (і необов’язковий `systemPromptAddition`), які
вміщаються в бюджет токенів.
3. **Compact** — викликається, коли вікно контексту заповнене, або коли користувач запускає
`/compact`. Рушій підсумовує давнішу історію, щоб звільнити місце.
`/compact`. Рушій підсумовує старішу історію, щоб звільнити місце.
4. **After turn** — викликається після завершення запуску. Рушій може зберегти стан,
запустити фоновий Compaction або оновити індекси.
Для вбудованого не-ACP harness Codex OpenClaw застосовує той самий життєвий цикл,
Для комплектного не-ACP harness Codex OpenClaw застосовує той самий життєвий цикл,
проєктуючи зібраний контекст в інструкції розробника Codex і запит поточного
ходу. Codex, як і раніше, керує своєю рідною історією гілки та власним засобом Compaction.
кроку. Codex, як і раніше, керує власною нативною історією потоку та нативним компактором.
### Життєвий цикл субагента (необов’язково)
OpenClaw викликає два необов’язкові хуки життєвого циклу субагента:
OpenClaw викликає два необов’язкові гачки життєвого циклу субагента:
- **prepareSubagentSpawn** — підготувати спільний стан контексту перед початком
дочірнього запуску. Хук отримує ключі сесії батьківського/дочірнього процесу, `contextMode`
(`isolated` або `fork`), доступні id/файли transcript і необов’язковий TTL.
Якщо він повертає дескриптор rollback, OpenClaw викликає його, коли spawn завершується помилкою
після успішної підготовки.
- **onSubagentEnded** — очистити дані, коли сесія субагента завершується або прибирається.
- **prepareSubagentSpawn** — підготувати спільний стан контексту перед тим, як
почнеться дочірній запуск. Гачок отримує ключі сесій батьківського й дочірнього процесів, `contextMode`
(`isolated` або `fork`), доступні ідентифікатори/файли транскриптів та необов’язковий TTL.
Якщо він повертає дескриптор відкату, OpenClaw викликає його, коли запуск
завершується невдачею після успішної підготовки.
- **onSubagentEnded** — очистити дані після завершення сесії субагента або її збирання.
### Додавання до системного запиту
Метод `assemble` може повертати рядок `systemPromptAddition`. OpenClaw
додає його на початок системного запиту для запуску. Це дає змогу рушіям
вбудовувати динамічні вказівки для пригадування, інструкції для retrieval або
підказки з урахуванням контексту без потреби у статичних файлах робочого простору.
додає його на початок системного запиту для запуску. Це дає змогу рушіям впроваджувати
динамічні вказівки щодо відновлення, інструкції з отримання даних або підказки,
що враховують контекст, без потреби у статичних файлах робочого простору.
## Рушій legacy
Вбудований рушій `legacy` зберігає початкову поведінку OpenClaw:
- **Ingest**: no-op (менеджер сесії безпосередньо обробляє збереження повідомлень).
- **Assemble**: наскрізний режим (контекст збирання обробляє наявний конвеєр sanitize → validate → limit
у середовищі виконання).
- **Ingest**: no-op (менеджер сесій безпосередньо обробляє збереження повідомлень).
- **Assemble**: pass-through (наявний конвеєр sanitize → validate → limit
у середовищі виконання обробляє збирання контексту).
- **Compact**: делегує вбудованому підсумковому Compaction, який створює
одне підсумкове резюме старіших повідомлень і зберігає недоторканими недавні повідомлення.
єдиний підсумок старіших повідомлень і зберігає нещодавні повідомлення без змін.
- **After turn**: no-op.
Рушій legacy не реєструє інструменти й не надає `systemPromptAddition`.
Якщо `plugins.slots.contextEngine` не задано (або задано як `"legacy"`), цей
Коли `plugins.slots.contextEngine` не задано (або його значення — `"legacy"`), цей
рушій використовується автоматично.
## Plugins рушія
## Рушії Plugin
Plugin може зареєструвати рушій контексту через API Plugin:
Plugin може зареєструвати рушій контексту за допомогою API Plugin:
```ts
import { buildMemorySystemPromptAddition } from "openclaw/plugin-sdk/core";
@ -138,12 +139,12 @@ export default function register(api) {
},
async ingest({ sessionId, message, isHeartbeat }) {
// Зберегти повідомлення у вашому сховищі даних
// Store the message in your data store
return { ingested: true };
},
async assemble({ sessionId, messages, tokenBudget, availableTools, citationsMode }) {
// Повернути повідомлення, що вміщаються в бюджет
// Return messages that fit the budget
return {
messages: buildContext(messages, tokenBudget),
estimatedTokens: countTokens(messages),
@ -155,7 +156,7 @@ export default function register(api) {
},
async compact({ sessionId, force }) {
// Підсумувати старіший контекст
// Summarize older context
return { ok: true, compacted: true };
},
}));
@ -183,107 +184,111 @@ export default function register(api) {
Обов’язкові елементи:
| Елемент | Тип | Призначення |
| ------------------ | -------- | --------------------------------------------------------- |
| `info` | Властивість | Id рушія, назва, версія та ознака того, чи він керує Compaction |
| `ingest(params)` | Метод | Зберегти одне повідомлення |
| Елемент | Тип | Призначення |
| ------------------ | -------- | -------------------------------------------------------- |
| `info` | Властивість | Ідентифікатор рушія, назва, версія та ознака того, чи керує він Compaction |
| `ingest(params)` | Метод | Зберегти одне повідомлення |
| `assemble(params)` | Метод | Побудувати контекст для запуску моделі (повертає `AssembleResult`) |
| `compact(params)` | Метод | Підсумувати/скоротити контекст |
| `compact(params)` | Метод | Підсумувати/скоротити контекст |
`assemble` повертає `AssembleResult` із:
`assemble` повертає `AssembleResult` із такими полями:
- `messages` — упорядковані повідомлення для надсилання моделі.
- `estimatedTokens` (обов’язково, `number`) — оцінка рушієм загальної
кількості токенів у зібраному контексті. OpenClaw використовує це для рішень
щодо порога Compaction і для діагностичної звітності.
- `estimatedTokens` (обов’язково, `number`) — оцінка рушієм загальної кількості
токенів у зібраному контексті. OpenClaw використовує це для рішень щодо порога
Compaction і діагностичної звітності.
- `systemPromptAddition` (необов’язково, `string`) — додається на початок системного запиту.
Необов’язкові елементи:
| Елемент | Тип | Призначення |
| ------------------------------ | ------ | ------------------------------------------------------------------------------------------------------------------- |
| `bootstrap(params)` | Метод | Ініціалізувати стан рушія для сесії. Викликається один раз, коли рушій уперше бачить сесію (наприклад, імпорт історії). |
| `ingestBatch(params)` | Метод | Прийняти завершений хід пакетно. Викликається після завершення запуску, одразу з усіма повідомленнями цього ходу. |
| `afterTurn(params)` | Метод | Робота життєвого циклу після запуску (зберегти стан, запустити фоновий Compaction). |
| `prepareSubagentSpawn(params)` | Метод | Налаштувати спільний стан для дочірньої сесії перед її початком. |
| `onSubagentEnded(params)` | Метод | Очистити дані після завершення субагента. |
| `dispose()` | Метод | Звільнити ресурси. Викликається під час вимкнення gateway або перезавантаження Plugin — не для кожної сесії. |
| Елемент | Тип | Призначення |
| ------------------------------ | ------ | ---------------------------------------------------------------------------------------------------------------- |
| `bootstrap(params)` | Метод | Ініціалізувати стан рушія для сесії. Викликається один раз, коли рушій уперше бачить сесію (наприклад, імпортує історію). |
| `ingestBatch(params)` | Метод | Прийняти завершений хід пакетом. Викликається після завершення запуску, одразу з усіма повідомленнями цього ходу. |
| `afterTurn(params)` | Метод | Робота життєвого циклу після запуску (зберегти стан, запустити фоновий Compaction). |
| `prepareSubagentSpawn(params)` | Метод | Налаштувати спільний стан для дочірньої сесії перед її початком. |
| `onSubagentEnded(params)` | Метод | Очистити дані після завершення субагента. |
| `dispose()` | Метод | Вивільнити ресурси. Викликається під час вимкнення Gateway або перезавантаження Plugin — не для кожної сесії. |
### ownsCompaction
`ownsCompaction` керує тим, чи залишається увімкненим вбудований авто-Compaction Pi
під час спроби виконання запуску:
`ownsCompaction` визначає, чи залишається увімкненим вбудований автокомпакшн Pi
усередині спроби для цього запуску:
- `true` — рушій керує поведінкою Compaction. OpenClaw вимикає вбудований у Pi
авто-Compaction для цього запуску, а реалізація `compact()` рушія відповідає
за `/compact`, відновлювальний Compaction при переповненні та будь-який проактивний
Compaction, який він хоче виконати в `afterTurn()`.
- `false` або не задано — вбудований авто-Compaction Pi усе ще може запускатися під час
- `true` — рушій керує поведінкою Compaction. OpenClaw вимикає вбудований
автокомпакшн Pi для цього запуску, а реалізація `compact()` цього рушія
відповідає за `/compact`, відновлювальний Compaction під час переповнення
та будь-який проактивний Compaction, який він хоче виконати в `afterTurn()`. OpenClaw
усе ще може виконувати захист від переповнення перед запитом; коли він прогнозує,
що повний транскрипт переповнить ліміт, шлях відновлення викликає `compact()` активного
рушія перед надсиланням іншого запиту.
- `false` або не задано — вбудований автокомпакшн Pi усе ще може виконуватися під час
виконання запиту, але метод `compact()` активного рушія все одно викликається для
`/compact` і відновлення після переповнення.
`ownsCompaction: false` **не** означає, що OpenClaw автоматично повертається
до шляху Compaction рушія legacy.
`ownsCompaction: false` **не** означає, що OpenClaw автоматично повертається до
шляху Compaction рушія legacy.
Це означає, що існують два коректні шаблони Plugin:
Це означає, що існують два коректні шаблони для Plugin:
- **Режим володіння** — реалізуйте власний алгоритм Compaction і встановіть
`ownsCompaction: true`.
- **Режим делегування**встановіть `ownsCompaction: false` і нехай `compact()` викликає
`delegateCompactionToRuntime(...)` з `openclaw/plugin-sdk/core`, щоб використовувати
- **Режим делегування**установіть `ownsCompaction: false` і нехай `compact()` викликає
`delegateCompactionToRuntime(...)` з `openclaw/plugin-sdk/core`, щоб використати
вбудовану поведінку Compaction OpenClaw.
No-op `compact()` є небезпечним для активного рушія без володіння, тому що це
вимикає звичайний шлях `/compact` і відновлення після переповнення для слота цього рушія.
Порожній `compact()` є небезпечним для активного неволодіючого рушія, оскільки він
вимикає звичайний шлях `/compact` і відновлювального Compaction після переповнення для цього
слота рушія.
## Довідник з конфігурації
## Довідник із конфігурації
```json5
{
plugins: {
slots: {
// Вибір активного рушія контексту. Типово: "legacy".
// Встановіть id Plugin, щоб використовувати рушій Plugin.
// Select the active context engine. Default: "legacy".
// Set to a plugin id to use a plugin engine.
contextEngine: "legacy",
},
},
}
```
Слот є ексклюзивним під час виконання — для конкретного запуску або операції Compaction
розв’язується лише один зареєстрований рушій контексту. Інші увімкнені
Plugins `kind: "context-engine"` усе ще можуть завантажуватися й виконувати свій код
реєстрації; `plugins.slots.contextEngine` лише вибирає, який зареєстрований id рушія
OpenClaw розв’язує, коли йому потрібен рушій контексту.
Слот є взаємовиключним під час виконання — для певного запуску або операції Compaction
визначається лише один зареєстрований рушій контексту. Інші ввімкнені
Plugins `kind: "context-engine"` все одно можуть завантажуватися й виконувати свій код
реєстрації; `plugins.slots.contextEngine` лише вибирає, який зареєстрований ідентифікатор рушія
OpenClaw використовує, коли йому потрібен рушій контексту.
## Зв’язок із Compaction і пам’яттю
- **Compaction** — це одна з відповідальностей рушія контексту. Рушій legacy
делегує вбудованому механізму підсумовування OpenClaw. Plugins рушія можуть реалізовувати
будь-яку стратегію Compaction (підсумки DAG, vector retrieval тощо).
делегує вбудованому механізму підсумовування OpenClaw. Рушії Plugin можуть реалізовувати
будь-яку стратегію Compaction (DAG-підсумки, векторне отримання тощо).
- **Plugins пам’яті** (`plugins.slots.memory`) відокремлені від рушіїв контексту.
Plugins пам’яті надають пошук/retrieval; рушії контексту керують тим, що
бачить модель. Вони можуть працювати разом — рушій контексту може використовувати дані
Plugin пам’яті під час збирання. Plugins рушія, яким потрібен шлях запиту
Active Memory, мають надавати перевагу `buildMemorySystemPromptAddition(...)` з
Plugins пам’яті забезпечують пошук/отримання; рушії контексту керують тим,
що бачить модель. Вони можуть працювати разом — рушій контексту може використовувати
дані Plugin пам’яті під час збирання. Рушії Plugin, яким потрібен шлях
запиту Active Memory, мають надавати перевагу `buildMemorySystemPromptAddition(...)` з
`openclaw/plugin-sdk/core`, який перетворює активні секції запиту пам’яті
на готовий до додавання на початок `systemPromptAddition`. Якщо рушію потрібен
контроль нижчого рівня, він усе одно може отримувати сирі рядки з
у готовий до додавання на початок `systemPromptAddition`. Якщо рушію потрібен контроль
нижчого рівня, він усе ще може отримувати сирі рядки з
`openclaw/plugin-sdk/memory-host-core` через
`buildActiveMemoryPromptSection(...)`.
- **Обрізання сесій** (усічення старих результатів інструментів у пам’яті) усе ще виконується
- **Обрізання сесії** (скорочення старих результатів інструментів у пам’яті) усе ще виконується
незалежно від того, який рушій контексту активний.
## Поради
- Використовуйте `openclaw doctor`, щоб перевірити, чи ваш рушій завантажується коректно.
- Якщо ви перемикаєте рушії, наявні сесії продовжують працювати з поточною історією.
Новий рушій перебирає керування для майбутніх запусків.
- Помилки рушія журналюються й відображаються в діагностиці. Якщо рушій Plugin
не вдається зареєструвати або не вдається розв’язати вибраний id рушія, OpenClaw
не виконує автоматичного повернення; запуски завершуватимуться помилкою, доки ви не виправите Plugin або
не перемкнете `plugins.slots.contextEngine` назад на `"legacy"`.
- Для розробки використовуйте `openclaw plugins install -l ./my-engine`, щоб зв’язати
- Використовуйте `openclaw doctor`, щоб переконатися, що ваш рушій завантажується правильно.
- Якщо перемикати рушії, наявні сесії продовжать роботу зі своєю поточною історією.
Новий рушій візьме керування на себе для майбутніх запусків.
- Помилки рушія журналюються та відображаються в діагностиці. Якщо рушій Plugin
не вдається зареєструвати або не вдається визначити вибраний ідентифікатор рушія, OpenClaw
не виконує автоматичний відкат; запуски завершуватимуться помилкою, доки ви не виправите Plugin або
не повернете `plugins.slots.contextEngine` до `"legacy"`.
- Для розробки використовуйте `openclaw plugins install -l ./my-engine`, щоб прив’язати
локальний каталог Plugin без копіювання.
Див. також: [Compaction](/uk/concepts/compaction), [Контекст](/uk/concepts/context),