diff --git a/docs/uk/concepts/dreaming.md b/docs/uk/concepts/dreaming.md index 8172f8a95..67fb59224 100644 --- a/docs/uk/concepts/dreaming.md +++ b/docs/uk/concepts/dreaming.md @@ -2,14 +2,14 @@ read_when: - Ви хочете, щоб просування пам’яті виконувалося автоматично - Ви хочете зрозуміти, що робить кожна фаза Dreaming - - Ви хочете налаштувати ущільнення без засмічення `MEMORY.md` -summary: Фонове ущільнення пам’яті з фазами light, deep і REM, а також щоденником сновидінь + - Ви хочете налаштувати ущільнення, не засмічуючи `MEMORY.md` +summary: Фонове ущільнення пам’яті з легкими, глибокими та REM-фазами, а також Щоденником снів title: Dreaming x-i18n: - generated_at: "2026-04-15T10:48:31Z" + generated_at: "2026-04-22T01:53:22Z" model: gpt-5.4 provider: openai - source_hash: a5bcaec80f62e7611ed533094ef1917bd72c885f57252824db910e1f0496adc6 + source_hash: 050e99bd2b3a18d7d2f02747e3010a7679515098369af5061d0a97b5703fc581 source_path: concepts/dreaming.md workflow: 15 --- @@ -17,124 +17,124 @@ x-i18n: # Dreaming Dreaming — це фонова система ущільнення пам’яті в `memory-core`. -Вона допомагає OpenClaw переносити сильні короткострокові сигнали в довготривалу пам’ять, водночас -зберігаючи процес зрозумілим і придатним для перевірки. +Вона допомагає OpenClaw переносити сильні короткострокові сигнали в довготривалу пам’ять, зберігаючи +процес зрозумілим і придатним до перевірки. -Dreaming є **опційною** функцією й за замовчуванням вимкнена. +Dreaming є **opt-in** і за замовчуванням вимкнено. ## Що записує Dreaming -Dreaming зберігає два типи виводу: +Dreaming зберігає два види вихідних даних: -- **Машинний стан** у `memory/.dreams/` (сховище recall, сигнали фаз, контрольні точки ingest, блокування). -- **Людинозрозумілий вивід** у `DREAMS.md` (або наявному `dreams.md`) і необов’язкові файли звітів фаз у `memory/dreaming//YYYY-MM-DD.md`. +- **Стан машини** у `memory/.dreams/` (сховище recall, сигнали фаз, контрольні точки ingest, блокування). +- **Зрозумілий для людини вивід** у `DREAMS.md` (або наявний `dreams.md`) і необов’язкові файли звітів фаз у `memory/dreaming//YYYY-MM-DD.md`. -Довгострокове просування, як і раніше, записується лише в `MEMORY.md`. +Просування в довготривалу пам’ять, як і раніше, записує дані лише в `MEMORY.md`. ## Модель фаз -Dreaming використовує три взаємодіючі фази: +Dreaming використовує три взаємодоповнювальні фази: | Фаза | Призначення | Довготривалий запис | | ----- | ----------- | ------------------- | -| Light | Сортування та підготовка нещодавнього короткострокового матеріалу | Ні | -| Deep | Оцінювання та просування довготривалих кандидатів | Так (`MEMORY.md`) | -| REM | Осмислення тем і повторюваних ідей | Ні | +| Light | Сортує та готує нещодавній короткостроковий матеріал | Ні | +| Deep | Оцінює та просуває довготривалі кандидати | Так (`MEMORY.md`) | +| REM | Осмислює теми та повторювані ідеї | Ні | -Ці фази є внутрішніми деталями реалізації, а не окремими користувацькими -«режимами». +Ці фази є внутрішніми деталями реалізації, а не окремими +користувацькими «режимами». ### Фаза Light -Фаза Light поглинає нещодавні щоденні сигнали пам’яті та сліди recall, усуває дублікати +Фаза Light ingest’ить нещодавні щоденні сигнали пам’яті та сліди recall, усуває дублікати й готує рядки-кандидати. -- Читає з короткострокового стану recall, нещодавніх щоденних файлів пам’яті та відредагованих транскриптів сесій, якщо вони доступні. -- Записує керований блок `## Light Sleep`, якщо сховище підтримує вбудований вивід. -- Фіксує сигнали підсилення для подальшого ранжування Deep. +- Зчитує дані зі стану короткострокового recall, нещодавніх щоденних файлів пам’яті та відредагованих транскриптів сесій, якщо вони доступні. +- Записує керований блок `## Light Sleep`, коли сховище містить вбудований вивід. +- Фіксує сигнали підкріплення для подальшого ранжування Deep. - Ніколи не записує в `MEMORY.md`. ### Фаза Deep Фаза Deep вирішує, що стане довготривалою пам’яттю. -- Ранжує кандидатів за допомогою зваженого оцінювання та порогових перевірок. +- Ранжує кандидатів за допомогою зваженого оцінювання та порогових фільтрів. - Вимагає проходження `minScore`, `minRecallCount` і `minUniqueQueries`. -- Перед записом повторно підтягує фрагменти з актуальних щоденних файлів, тож застарілі або видалені фрагменти пропускаються. -- Додає просунуті записи до `MEMORY.md`. -- Записує підсумок `## Deep Sleep` у `DREAMS.md` і за потреби записує `memory/dreaming/deep/YYYY-MM-DD.md`. +- Перед записом повторно гідратує фрагменти з актуальних щоденних файлів, тому застарілі/видалені фрагменти пропускаються. +- Додає просунуті записи в `MEMORY.md`. +- Записує підсумок `## Deep Sleep` у `DREAMS.md` і за бажанням записує `memory/dreaming/deep/YYYY-MM-DD.md`. ### Фаза REM -Фаза REM витягує шаблони й рефлексивні сигнали. +Фаза REM витягує патерни та рефлексивні сигнали. -- Формує підсумки тем і рефлексій із нещодавніх короткострокових слідів. -- Записує керований блок `## REM Sleep`, якщо сховище підтримує вбудований вивід. -- Фіксує сигнали підсилення REM, які використовуються під час ранжування Deep. +- Створює підсумки тем і рефлексій із нещодавніх короткострокових слідів. +- Записує керований блок `## REM Sleep`, коли сховище містить вбудований вивід. +- Фіксує сигнали підкріплення REM, які використовуються під час ранжування Deep. - Ніколи не записує в `MEMORY.md`. -## Поглинання транскриптів сесій +## Ingest транскриптів сесій -Dreaming може поглинати відредаговані транскрипти сесій до корпусу Dreaming. Якщо -транскрипти доступні, вони подаються у фазу Light разом зі щоденними +Dreaming може ingest’ити відредаговані транскрипти сесій до корпусу dreaming. Коли +транскрипти доступні, вони подаються до фази Light разом із щоденними сигналами пам’яті та слідами recall. Особистий і чутливий вміст редагується -перед поглинанням. +перед ingest. -## Щоденник сновидінь +## Щоденник снів -Dreaming також веде наративний **Щоденник сновидінь** у `DREAMS.md`. -Після того як для кожної фази накопичується достатньо матеріалу, `memory-core` виконує фоновий -хід субагента в режимі best-effort (із використанням стандартної runtime-моделі) і додає короткий запис до щоденника. +Dreaming також веде наративний **Щоденник снів** у `DREAMS.md`. +Після того як у кожній фазі накопичується достатньо матеріалу, `memory-core` виконує best-effort фоновий +хід субагента (з використанням стандартної runtime-моделі) і додає короткий запис щоденника. Цей щоденник призначений для читання людиною в інтерфейсі Dreams, а не є джерелом для просування. Артефакти щоденника/звітів, згенеровані Dreaming, виключаються з короткострокового -просування. До просування в -`MEMORY.md` можуть потрапити лише обґрунтовані фрагменти пам’яті. +просування. До просування в `MEMORY.md` +можуть потрапити лише обґрунтовані фрагменти пам’яті. -Також існує обґрунтований канал історичного backfill для перевірки та відновлення: +Також є шлях заповнення історичних даних на основі фактів для перевірки та відновлення: -- `memory rem-harness --path ... --grounded` показує попередній перегляд обґрунтованого виводу щоденника з історичних нотаток `YYYY-MM-DD.md`. -- `memory rem-backfill --path ...` записує оборотні обґрунтовані записи щоденника в `DREAMS.md`. -- `memory rem-backfill --path ... --stage-short-term` додає обґрунтовані довготривалі кандидати до того самого короткострокового сховища доказів, яке вже використовує звичайна фаза Deep. -- `memory rem-backfill --rollback` і `--rollback-short-term` видаляють ці артефакти backfill зі staging без впливу на звичайні записи щоденника або живий короткостроковий recall. +- `memory rem-harness --path ... --grounded` попередньо показує grounded-вивід щоденника з історичних нотаток `YYYY-MM-DD.md`. +- `memory rem-backfill --path ...` записує оборотні grounded-записи щоденника в `DREAMS.md`. +- `memory rem-backfill --path ... --stage-short-term` готує grounded-довготривалі кандидати в тому самому сховищі короткострокових доказів, яке вже використовує звичайна фаза Deep. +- `memory rem-backfill --rollback` і `--rollback-short-term` видаляють ці підготовлені артефакти заповнення, не зачіпаючи звичайні записи щоденника або активний короткостроковий recall. -Control UI надає той самий потік backfill/reset для щоденника, щоб ви могли переглянути -результати в сцені Dreams, перш ніж вирішувати, чи заслуговують обґрунтовані кандидати -на просування. Сцена також показує окрему обґрунтовану смугу, щоб ви могли бачити, -які короткострокові записи у staging надійшли з історичного відтворення, які просунуті -елементи були зумовлені grounded-режимом, і очищати лише обґрунтовані записи у staging -без впливу на звичайний живий короткостроковий стан. +Інтерфейс Control надає той самий процес backfill/reset для щоденника, щоб ви могли переглянути +результати в сцені Dreams, перш ніж вирішити, чи +заслуговують grounded-кандидати на просування. Сцена також показує окрему grounded-доріжку, щоб ви могли бачити, +які підготовлені короткострокові записи надійшли з історичного відтворення, які просунуті +елементи були ініційовані grounded-процесом, а також очищати лише grounded-підготовлені записи без +втручання у звичайний активний короткостроковий стан. ## Сигнали ранжування Deep -Ранжування Deep використовує шість базових зважених сигналів і підсилення фаз: +Ранжування Deep використовує шість зважених базових сигналів плюс підкріплення фаз: | Сигнал | Вага | Опис | -| ------ | ---- | ---- | -| Частота | 0.24 | Скільки короткострокових сигналів накопичив запис | -| Релевантність | 0.30 | Середня якість отримання для запису | -| Різноманітність запитів | 0.15 | Окремі контексти запитів/днів, у яких він з’являвся | -| Актуальність | 0.15 | Оцінка свіжості з часовим згасанням | -| Ущільнення | 0.10 | Сила повторення протягом кількох днів | -| Концептуальна насиченість | 0.06 | Щільність тегів концептів із фрагмента/шляху | +| ------------------- | ------ | ------------------------------------------------- | +| Частота | 0.24 | Скільки короткострокових сигналів накопичив запис | +| Релевантність | 0.30 | Середня якість отримання для запису | +| Різноманітність запитів | 0.15 | Відмінні контексти запитів/днів, у яких він з’являвся | +| Актуальність | 0.15 | Оцінка свіжості з часовим згасанням | +| Ущільнення | 0.10 | Сила повторюваності протягом кількох днів | +| Концептуальна насиченість | 0.06 | Щільність тегів понять із фрагмента/шляху | -Попадання у фази Light і REM додають невелике підсилення з часовим згасанням з -`memory/.dreams/phase-signals.json`. +Спрацьовування фази Light і REM додають невелике підсилення +зі згасанням за часом із `memory/.dreams/phase-signals.json`. ## Планування -Коли функцію ввімкнено, `memory-core` автоматично керує одним завданням Cron для повного -циклу Dreaming. Кожен цикл запускає фази по порядку: light -> REM -> deep. +Коли Dreaming увімкнено, `memory-core` автоматично керує одним завданням Cron для повного +циклу dreaming. Кожен цикл запускає фази по порядку: light -> REM -> deep. Стандартна поведінка розкладу: | Налаштування | За замовчуванням | -| ------------ | ---------------- | +| -------------------- | ----------- | | `dreaming.frequency` | `0 3 * * *` | ## Швидкий старт -Увімкніть Dreaming: +Увімкнути dreaming: ```json { @@ -152,7 +152,7 @@ Control UI надає той самий потік backfill/reset для щод } ``` -Увімкніть Dreaming із власною частотою циклу: +Увімкнути dreaming із власною частотою циклу: ```json { @@ -172,7 +172,7 @@ Control UI надає той самий потік backfill/reset для щод } ``` -## Slash-команда +## Слеш-команда ``` /dreaming status @@ -193,7 +193,7 @@ openclaw memory status --deep ``` Ручна команда `memory promote` за замовчуванням використовує пороги фази Deep, якщо їх не перевизначено -прапорцями CLI. +через прапорці CLI. Пояснити, чому конкретний кандидат буде або не буде просунутий: @@ -202,8 +202,8 @@ openclaw memory promote-explain "router vlan" openclaw memory promote-explain "router vlan" --json ``` -Переглянути відображення REM, кандидатні істини та результат просування Deep без -запису будь-чого: +Попередньо переглянути REM-рефлексії, candidate truths і вивід просування Deep без +будь-якого запису: ```bash openclaw memory rem-harness @@ -214,30 +214,43 @@ openclaw memory rem-harness --json Усі налаштування розташовані в `plugins.entries.memory-core.config.dreaming`. -| Ключ | За замовчуванням | -| ---- | ---------------- | -| `enabled` | `false` | +| Key | За замовчуванням | +| ----------- | ----------- | +| `enabled` | `false` | | `frequency` | `0 3 * * *` | Політика фаз, пороги та поведінка сховища є внутрішніми деталями реалізації (не користувацькою конфігурацією). -Повний список ключів див. у [довіднику з конфігурації Memory](/uk/reference/memory-config#dreaming). +Див. [довідник з конфігурації Memory](/uk/reference/memory-config#dreaming) +для повного списку ключів. ## Інтерфейс Dreams -Коли функцію ввімкнено, вкладка Gateway **Dreams** показує: +Коли його увімкнено, вкладка **Dreams** у Gateway показує: -- поточний стан увімкнення Dreaming +- поточний стан увімкнення dreaming - статус на рівні фаз і наявність керованого циклу -- кількість короткострокових, обґрунтованих, сигнальних і просунутих сьогодні записів +- кількість короткострокових, grounded, сигнальних і просунутих сьогодні записів - час наступного запланованого запуску -- окрему обґрунтовану смугу Scene для записів історичного відтворення у staging -- розгортаний читач Щоденника сновидінь, що працює на основі `doctor.memory.dreamDiary` +- окрему grounded-доріжку Scene для підготовлених записів історичного відтворення +- розгортаний переглядач Щоденника снів на основі `doctor.memory.dreamDiary` + +## Усунення несправностей + +### Dreaming ніколи не запускається (статус показує blocked) + +Керований Cron dreaming працює через Heartbeat стандартного агента. Якщо Heartbeat не спрацьовує для цього агента, завдання Cron ставить у чергу системну подію, яку ніхто не обробляє, і dreaming тихо не запускається. І `openclaw memory status`, і `/dreaming status` у такому разі покажуть `blocked` і назвуть агента, чий Heartbeat є блокувальним фактором. + +Дві поширені причини: + +- Інший агент оголошує явний блок `heartbeat:`. Якщо будь-який запис у `agents.list` має власний блок `heartbeat`, Heartbeat отримують лише ці агенти — стандартні значення більше не застосовуються до всіх, тому стандартний агент може замовкнути. Перенесіть налаштування heartbeat до `agents.defaults.heartbeat` або додайте явний блок `heartbeat` для стандартного агента. Див. [Область дії та пріоритет](/uk/gateway/heartbeat#scope-and-precedence). +- `heartbeat.every` дорівнює `0`, є порожнім або не вдається розібрати. Cron не має інтервалу для планування, тому Heartbeat фактично вимкнено. Установіть `every` на додатну тривалість, наприклад `30m`. Див. [Значення за замовчуванням](/uk/gateway/heartbeat#defaults). ## Пов’язане -- [Пам’ять](/uk/concepts/memory) -- [Пошук у пам’яті](/uk/concepts/memory-search) -- [CLI пам’яті](/cli/memory) -- [Довідник з конфігурації Memory](/uk/reference/memory-config) +- [Heartbeat](/uk/gateway/heartbeat) +- [Memory](/uk/concepts/memory) +- [Memory Search](/uk/concepts/memory-search) +- [memory CLI](/cli/memory) +- [довідник з конфігурації Memory](/uk/reference/memory-config)