chore(i18n): refresh uk translations
This commit is contained in:
parent
81b046ed58
commit
bf21425c68
@ -1,14 +1,14 @@
|
||||
---
|
||||
read_when:
|
||||
- У вас є проблеми з підключенням/автентифікацією, і ви хочете отримати керовані способи їх усунення
|
||||
- Ви оновилися й хочете виконати базову перевірку працездатності
|
||||
summary: Довідка CLI для `openclaw doctor` (перевірки стану + керовані виправлення)
|
||||
title: Діагностика
|
||||
- У вас є проблеми з підключенням/автентифікацією, і ви хочете покрокові виправлення
|
||||
- Ви оновилися й хочете перевірку справності
|
||||
summary: Довідник CLI для `openclaw doctor` (перевірки стану + покрокові виправлення)
|
||||
title: Doctor
|
||||
x-i18n:
|
||||
generated_at: "2026-04-26T08:15:43Z"
|
||||
generated_at: "2026-04-27T08:25:07Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 1e2c21765f8c287c8d2aa066004ac516566c76a455337c377cf282551619e92a
|
||||
source_hash: 88517aeb5faaa17ba02fd314466f325ed3cdec431de764b01c464535a24db587
|
||||
source_path: cli/doctor.md
|
||||
workflow: 15
|
||||
---
|
||||
@ -17,7 +17,7 @@ x-i18n:
|
||||
|
||||
Перевірки стану + швидкі виправлення для Gateway і каналів.
|
||||
|
||||
Пов’язано:
|
||||
Пов’язане:
|
||||
|
||||
- Усунення несправностей: [Усунення несправностей](/uk/gateway/troubleshooting)
|
||||
- Аудит безпеки: [Безпека](/uk/gateway/security)
|
||||
@ -35,34 +35,34 @@ openclaw doctor --generate-gateway-token
|
||||
## Параметри
|
||||
|
||||
- `--no-workspace-suggestions`: вимкнути підказки щодо пам’яті/пошуку робочого простору
|
||||
- `--yes`: приймати значення за замовчуванням без запитів
|
||||
- `--repair`: застосувати рекомендовані виправлення без запитів
|
||||
- `--yes`: приймати значення за замовчуванням без запиту
|
||||
- `--repair`: застосувати рекомендовані виправлення без запиту
|
||||
- `--fix`: псевдонім для `--repair`
|
||||
- `--force`: застосувати агресивні виправлення, зокрема перезаписати власну конфігурацію служби за потреби
|
||||
- `--force`: застосувати агресивні виправлення, зокрема перезаписати власну конфігурацію сервісу за потреби
|
||||
- `--non-interactive`: запуск без запитів; лише безпечні міграції
|
||||
- `--generate-gateway-token`: згенерувати й налаштувати токен Gateway
|
||||
- `--deep`: сканувати системні служби на наявність додаткових установок Gateway
|
||||
- `--deep`: сканувати системні сервіси на наявність додаткових установок Gateway
|
||||
|
||||
Примітки:
|
||||
|
||||
- Інтерактивні запити (наприклад, виправлення keychain/OAuth) виконуються лише тоді, коли stdin є TTY і `--non-interactive` **не** встановлено. У headless-запусках (Cron, Telegram, без термінала) запити буде пропущено.
|
||||
- Продуктивність: неінтерактивні запуски `doctor` пропускають жадібне завантаження Plugin, щоб headless-перевірки стану залишалися швидкими. Інтерактивні сеанси, як і раніше, повністю завантажують Plugin, коли перевірці потрібен їхній внесок.
|
||||
- Інтерактивні запити (наприклад, виправлення keychain/OAuth) виконуються лише тоді, коли stdin є TTY і `--non-interactive` **не** встановлено. Безголові запуски (Cron, Telegram, без термінала) пропускатимуть запити.
|
||||
- Продуктивність: неінтерактивні запуски `doctor` пропускають завчасне завантаження Plugin, щоб безголові перевірки стану залишалися швидкими. В інтерактивних сеансах Plugin, як і раніше, повністю завантажуються, коли перевірці потрібен їхній внесок.
|
||||
- `--fix` (псевдонім для `--repair`) записує резервну копію в `~/.openclaw/openclaw.json.bak` і видаляє невідомі ключі конфігурації, перелічуючи кожне видалення.
|
||||
- Перевірки цілісності стану тепер виявляють осиротілі файли стенограм у каталозі сеансів і можуть архівувати їх як `.deleted.<timestamp>`, щоб безпечно звільнити місце.
|
||||
- Doctor також сканує `~/.openclaw/cron/jobs.json` (або `cron.store`) на наявність застарілих форм завдань Cron і може переписати їх на місці, перш ніж планувальник буде змушений автоматично нормалізувати їх під час виконання.
|
||||
- Doctor відновлює відсутні залежності середовища виконання вбудованих Plugin без запису в упаковані глобальні встановлення. Для npm-встановлень, що належать root, або захищених модулів systemd, установіть `OPENCLAW_PLUGIN_STAGE_DIR` у каталог із правом запису, наприклад `/var/lib/openclaw/plugin-runtime-deps`.
|
||||
- Установіть `OPENCLAW_SERVICE_REPAIR_POLICY=external`, якщо життєвим циклом Gateway керує інший супервізор. Doctor, як і раніше, повідомляє про стан Gateway/служби й застосовує неслужбові виправлення, але пропускає встановлення/запуск/перезапуск/початкове налаштування служби та очищення застарілих служб.
|
||||
- Doctor автоматично мігрує застарілу плоску конфігурацію Talk (`talk.voiceId`, `talk.modelId` та подібні) у `talk.provider` + `talk.providers.<provider>`.
|
||||
- Повторні запуски `doctor --fix` більше не повідомляють/не застосовують нормалізацію Talk, якщо єдина відмінність полягає в порядку ключів об’єкта.
|
||||
- Перевірки цілісності стану тепер виявляють осиротілі файли транскриптів у каталозі сеансів і можуть архівувати їх як `.deleted.<timestamp>`, щоб безпечно звільнити місце.
|
||||
- Doctor також сканує `~/.openclaw/cron/jobs.json` (або `cron.store`) на наявність застарілих структур завдань Cron і може переписати їх на місці до того, як планувальнику доведеться автоматично нормалізувати їх під час виконання.
|
||||
- Doctor виправляє відсутні залежності середовища виконання вбудованих Plugin, не записуючи в упаковані глобальні інсталяції. Для npm-інсталяцій, що належать root, або захищених systemd-модулів установіть `OPENCLAW_PLUGIN_STAGE_DIR` у каталог із правом запису, наприклад `/var/lib/openclaw/plugin-runtime-deps`; це також може бути список шляхів, наприклад `/opt/openclaw/plugin-runtime-deps:/var/lib/openclaw/plugin-runtime-deps`, де попередні корені є шарами пошуку лише для читання, а останній корінь — ціль для виправлення.
|
||||
- Установіть `OPENCLAW_SERVICE_REPAIR_POLICY=external`, коли життєвим циклом Gateway керує інший супервізор. Doctor усе одно повідомляє про стан Gateway/сервісу та застосовує виправлення, не пов’язані із сервісом, але пропускає встановлення/запуск/перезапуск/початкове налаштування сервісу й очищення застарілих сервісів.
|
||||
- Doctor автоматично мігрує застарілу плоску конфігурацію Talk (`talk.voiceId`, `talk.modelId` та подібні) до `talk.provider` + `talk.providers.<provider>`.
|
||||
- Повторні запуски `doctor --fix` більше не повідомляють і не застосовують нормалізацію Talk, якщо єдина відмінність — це порядок ключів об’єкта.
|
||||
- Doctor містить перевірку готовності пошуку в пам’яті й може рекомендувати `openclaw configure --section model`, якщо відсутні облікові дані для вбудовувань.
|
||||
- Якщо режим sandbox увімкнено, але Docker недоступний, doctor повідомляє про виразне попередження з варіантами усунення (`install Docker` або `openclaw config set agents.defaults.sandbox.mode off`).
|
||||
- Якщо `gateway.auth.token`/`gateway.auth.password` керуються через SecretRef і недоступні в поточному шляху виконання команди, doctor повідомляє про попередження лише для читання і не записує резервні відкриті облікові дані.
|
||||
- Якщо перевірка SecretRef каналу завершується помилкою на шляху виправлення, doctor продовжує роботу й повідомляє про попередження замість передчасного завершення.
|
||||
- Автоматичне визначення імені користувача для Telegram `allowFrom` (`doctor --fix`) потребує токена Telegram, який можна розв’язати в поточному шляху виконання команди. Якщо перевірка токена недоступна, doctor повідомляє про попередження й пропускає автоматичне визначення для цього проходу.
|
||||
- Якщо режим пісочниці ввімкнено, але Docker недоступний, doctor повідомляє про виразне попередження з рекомендаціями (`install Docker` або `openclaw config set agents.defaults.sandbox.mode off`).
|
||||
- Якщо `gateway.auth.token`/`gateway.auth.password` керуються через SecretRef і недоступні в поточному шляху команди, doctor повідомляє про попередження лише для читання й не записує резервні облікові дані у відкритому тексті.
|
||||
- Якщо перевірка SecretRef каналу завершується помилкою в шляху виправлення, doctor продовжує роботу й повідомляє попередження замість дострокового завершення.
|
||||
- Автовизначення імен користувачів Telegram у `allowFrom` (`doctor --fix`) вимагає токен Telegram, який можна визначити в поточному шляху команди. Якщо перевірка токена недоступна, doctor повідомляє попередження й пропускає автовизначення для цього проходу.
|
||||
|
||||
## macOS: перевизначення змінних середовища `launchctl`
|
||||
|
||||
Якщо ви раніше виконували `launchctl setenv OPENCLAW_GATEWAY_TOKEN ...` (або `...PASSWORD`), це значення має пріоритет над вашим файлом конфігурації та може спричиняти постійні помилки «неавторизовано».
|
||||
Якщо ви раніше запускали `launchctl setenv OPENCLAW_GATEWAY_TOKEN ...` (або `...PASSWORD`), це значення перевизначає ваш файл конфігурації й може спричиняти стійкі помилки «unauthorized».
|
||||
|
||||
```bash
|
||||
launchctl getenv OPENCLAW_GATEWAY_TOKEN
|
||||
@ -72,7 +72,7 @@ launchctl unsetenv OPENCLAW_GATEWAY_TOKEN
|
||||
launchctl unsetenv OPENCLAW_GATEWAY_PASSWORD
|
||||
```
|
||||
|
||||
## Пов’язано
|
||||
## Пов’язане
|
||||
|
||||
- [Довідка CLI](/uk/cli)
|
||||
- [Діагностика Gateway](/uk/gateway/doctor)
|
||||
- [Довідник CLI](/uk/cli)
|
||||
- [Doctor для Gateway](/uk/gateway/doctor)
|
||||
|
||||
@ -1,24 +1,24 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете мігрувати з Hermes або іншої агентної системи до OpenClaw
|
||||
- Ви додаєте provider міграції, що належить Plugin
|
||||
summary: Довідник CLI для `openclaw migrate` (імпорт стану з іншої агентної системи)
|
||||
title: Міграція
|
||||
- Ви хочете мігрувати з Hermes або іншої системи агентів до OpenClaw
|
||||
- Ви додаєте Plugin-власний провайдер міграції
|
||||
summary: Довідник CLI для `openclaw migrate` (імпортувати стан з іншої системи агентів)
|
||||
title: Мігрувати
|
||||
x-i18n:
|
||||
generated_at: "2026-04-27T08:07:52Z"
|
||||
generated_at: "2026-04-27T08:25:05Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 8bb986558e2ce09e7fecbfc78beb149890965df8b6d82924cbfbcadb74b9f3c1
|
||||
source_hash: f509745e8967d0e89accd803acd5e9cfb1d25040f49cbe8d2cc858d6911792d8
|
||||
source_path: cli/migrate.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw migrate`
|
||||
|
||||
Імпортуйте стан з іншої агентної системи через provider міграції, що належить Plugin.
|
||||
Імпортуйте стан з іншої системи агентів через Plugin-власний провайдер міграції.
|
||||
|
||||
<Tip>
|
||||
Щоб переглянути орієнтований на користувача покроковий посібник з переходу з Hermes, див. [Міграція з Hermes](/uk/install/migrating-hermes).
|
||||
Покроковий посібник для користувачів щодо переходу з Hermes див. у [Migrating from Hermes](/uk/install/migrating-hermes).
|
||||
</Tip>
|
||||
|
||||
## Команди
|
||||
@ -34,16 +34,16 @@ openclaw onboard --import-from hermes --import-source ~/.hermes
|
||||
```
|
||||
|
||||
<ParamField path="<provider>" type="string">
|
||||
Назва зареєстрованого provider міграції, наприклад `hermes`. Запустіть `openclaw migrate list`, щоб побачити встановлені provider-и.
|
||||
Назва зареєстрованого провайдера міграції, наприклад `hermes`. Виконайте `openclaw migrate list`, щоб побачити встановлені провайдери.
|
||||
</ParamField>
|
||||
<ParamField path="--dry-run" type="boolean">
|
||||
Побудувати план і завершити роботу без зміни стану.
|
||||
Побудувати план і вийти без зміни стану.
|
||||
</ParamField>
|
||||
<ParamField path="--from <path>" type="string">
|
||||
Перевизначити каталог вихідного стану. Для Hermes типовим є `~/.hermes`.
|
||||
Перевизначити каталог вихідного стану. Для Hermes типовим значенням є `~/.hermes`.
|
||||
</ParamField>
|
||||
<ParamField path="--include-secrets" type="boolean">
|
||||
Імпортувати підтримувані облікові дані. За замовчуванням вимкнено.
|
||||
Імпортувати підтримувані облікові дані. Типово вимкнено.
|
||||
</ParamField>
|
||||
<ParamField path="--overwrite" type="boolean">
|
||||
Дозволити apply замінювати наявні цілі, коли план повідомляє про конфлікти.
|
||||
@ -52,13 +52,13 @@ openclaw onboard --import-from hermes --import-source ~/.hermes
|
||||
Пропустити запит на підтвердження. Обов’язково в неінтерактивному режимі.
|
||||
</ParamField>
|
||||
<ParamField path="--no-backup" type="boolean">
|
||||
Пропустити резервне копіювання перед apply. Потребує `--force`, коли існує локальний стан OpenClaw.
|
||||
Пропустити резервне копіювання перед apply. Потребує `--force`, якщо локальний стан OpenClaw існує.
|
||||
</ParamField>
|
||||
<ParamField path="--force" type="boolean">
|
||||
Обов’язково разом із `--no-backup`, коли apply інакше відмовився б пропускати резервне копіювання.
|
||||
Обов’язково разом із `--no-backup`, якщо apply інакше відмовився б пропустити резервне копіювання.
|
||||
</ParamField>
|
||||
<ParamField path="--json" type="boolean">
|
||||
Вивести план або результат apply у форматі JSON. Якщо вказано `--json` без `--yes`, apply виводить план і не змінює стан.
|
||||
Вивести план або результат apply як JSON. З `--json` і без `--yes` apply виводить план і не змінює стан.
|
||||
</ParamField>
|
||||
|
||||
## Модель безпеки
|
||||
@ -66,37 +66,38 @@ openclaw onboard --import-from hermes --import-source ~/.hermes
|
||||
`openclaw migrate` спочатку показує попередній перегляд.
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Попередній перегляд перед apply">
|
||||
Provider повертає деталізований план до внесення будь-яких змін, зокрема конфлікти, пропущені елементи та чутливі елементи. Плани JSON, вивід apply і звіти про міграцію маскують вкладені ключі, схожі на секрети, як-от API-ключі, токени, заголовки авторизації, cookies і паролі.
|
||||
<Accordion title="Попередній перегляд перед застосуванням">
|
||||
Провайдер повертає деталізований план до внесення будь-яких змін, включно з конфліктами, пропущеними елементами та чутливими елементами. Плани JSON, вивід apply і звіти міграції приховують вкладені ключі, схожі на секрети, такі як ключі API, токени, заголовки авторизації, cookies і паролі.
|
||||
|
||||
`openclaw migrate apply <provider>` показує попередній перегляд плану та запитує підтвердження перед зміною стану, якщо не задано `--yes`. У неінтерактивному режимі apply потребує `--yes`.
|
||||
|
||||
`openclaw migrate apply <provider>` показує попередній перегляд плану й запитує підтвердження перед зміною стану, якщо не вказано `--yes`. У неінтерактивному режимі apply потребує `--yes`.
|
||||
</Accordion>
|
||||
<Accordion title="Резервні копії">
|
||||
Apply створює та перевіряє резервну копію OpenClaw перед застосуванням міграції. Якщо локального стану OpenClaw ще немає, крок резервного копіювання пропускається, і міграція може продовжитися. Щоб пропустити резервне копіювання, коли стан існує, передайте одночасно `--no-backup` і `--force`.
|
||||
Apply створює та перевіряє резервну копію OpenClaw перед застосуванням міграції. Якщо локальний стан OpenClaw ще не існує, крок резервного копіювання пропускається, і міграція може продовжитися. Щоб пропустити резервне копіювання, коли стан існує, передайте одночасно `--no-backup` і `--force`.
|
||||
</Accordion>
|
||||
<Accordion title="Конфлікти">
|
||||
Apply відмовляється продовжувати, якщо в плані є конфлікти. Перегляньте план, а потім повторно запустіть із `--overwrite`, якщо заміна наявних цілей є навмисною. Provider-и все одно можуть записувати резервні копії окремих елементів для перезаписаних файлів у каталог звіту про міграцію.
|
||||
Apply відмовляється продовжувати, якщо в плані є конфлікти. Перегляньте план, а потім повторно виконайте команду з `--overwrite`, якщо заміна наявних цілей є навмисною. Провайдери все одно можуть записувати резервні копії окремих елементів для перезаписаних файлів у каталог звіту міграції.
|
||||
</Accordion>
|
||||
<Accordion title="Секрети">
|
||||
Секрети ніколи не імпортуються за замовчуванням. Використовуйте `--include-secrets`, щоб імпортувати підтримувані облікові дані.
|
||||
Секрети ніколи не імпортуються типово. Використайте `--include-secrets`, щоб імпортувати підтримувані облікові дані.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Provider Hermes
|
||||
## Провайдер Hermes
|
||||
|
||||
Вбудований provider Hermes за замовчуванням виявляє стан у `~/.hermes`. Використовуйте `--from <path>`, якщо Hermes розташований в іншому місці.
|
||||
Вбудований провайдер Hermes типово виявляє стан у `~/.hermes`. Використовуйте `--from <path>`, якщо Hermes розташований деінде.
|
||||
|
||||
### Що імпортується
|
||||
|
||||
- Типова конфігурація моделі з `config.yaml`.
|
||||
- Налаштовані provider-и моделей і користувацькі OpenAI-сумісні кінцеві точки з `providers` і `custom_providers`.
|
||||
- Визначення MCP-серверів з `mcp_servers` або `mcp.servers`.
|
||||
- `SOUL.md` і `AGENTS.md` у робочий простір агента OpenClaw.
|
||||
- Налаштовані провайдери моделей і власні сумісні з OpenAI кінцеві точки з `providers` і `custom_providers`.
|
||||
- Визначення серверів MCP з `mcp_servers` або `mcp.servers`.
|
||||
- `SOUL.md` і `AGENTS.md` до робочого простору агента OpenClaw.
|
||||
- `memories/MEMORY.md` і `memories/USER.md`, додані до файлів пам’яті робочого простору.
|
||||
- Типові налаштування пам’яті для файлової пам’яті OpenClaw, а також елементи архіву або ручної перевірки для зовнішніх provider-ів пам’яті, таких як Honcho.
|
||||
- Типові значення конфігурації пам’яті для файлової пам’яті OpenClaw, а також елементи архіву або ручного перегляду для зовнішніх провайдерів пам’яті, таких як Honcho.
|
||||
- Skills, які містять файл `SKILL.md` у `skills/<name>/`.
|
||||
- Значення конфігурації для кожного Skill з `skills.config`.
|
||||
- Підтримувані API-ключі з `.env`, лише з `--include-secrets`.
|
||||
- Значення конфігурації для кожної навички з `skills.config`.
|
||||
- Підтримувані ключі API з `.env`, лише з `--include-secrets`.
|
||||
|
||||
### Підтримувані ключі `.env`
|
||||
|
||||
@ -104,7 +105,7 @@ openclaw onboard --import-from hermes --import-source ~/.hermes
|
||||
|
||||
### Стан лише для архіву
|
||||
|
||||
Стан Hermes, який OpenClaw не може безпечно інтерпретувати, копіюється до звіту про міграцію для ручної перевірки, але не завантажується в активну конфігурацію чи облікові дані OpenClaw. Це дає змогу зберегти непрозорий або потенційно небезпечний стан без удавання, що OpenClaw може автоматично виконувати або довіряти йому:
|
||||
Стан Hermes, який OpenClaw не може безпечно інтерпретувати, копіюється до звіту міграції для ручного перегляду, але не завантажується в активну конфігурацію чи облікові дані OpenClaw. Це зберігає непрозорий або небезпечний стан, не створюючи хибного враження, що OpenClaw може автоматично його виконувати або довіряти йому:
|
||||
|
||||
- `plugins/`
|
||||
- `sessions/`
|
||||
@ -122,7 +123,7 @@ openclaw doctor
|
||||
|
||||
## Контракт Plugin
|
||||
|
||||
Джерела міграції — це plugins. Plugin оголошує ідентифікатори своїх provider-ів у `openclaw.plugin.json`:
|
||||
Джерела міграції — це plugins. Plugin оголошує свої ідентифікатори провайдерів у `openclaw.plugin.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -132,21 +133,21 @@ openclaw doctor
|
||||
}
|
||||
```
|
||||
|
||||
Під час виконання Plugin викликає `api.registerMigrationProvider(...)`. Provider реалізує `detect`, `plan` і `apply`. Core відповідає за оркестрацію CLI, політику резервного копіювання, запити підтвердження, вивід JSON і попередню перевірку конфліктів. Core передає перевірений план до `apply(ctx, plan)`, а provider-и можуть перебудовувати план лише тоді, коли цей аргумент відсутній, для сумісності.
|
||||
Під час виконання Plugin викликає `api.registerMigrationProvider(...)`. Провайдер реалізує `detect`, `plan` і `apply`. Core відповідає за оркестрацію CLI, політику резервного копіювання, запити підтвердження, вивід JSON і попередню перевірку конфліктів. Core передає перевірений план у `apply(ctx, plan)`, а провайдери можуть перебудовувати план лише тоді, коли цей аргумент відсутній для сумісності.
|
||||
|
||||
Plugins provider-ів можуть використовувати `openclaw/plugin-sdk/migration` для побудови елементів і підсумкових підрахунків, а також `openclaw/plugin-sdk/migration-runtime` для копіювання файлів з урахуванням конфліктів, копіювання звітів лише для архіву та звітів про міграцію.
|
||||
Plugin-провайдери можуть використовувати `openclaw/plugin-sdk/migration` для побудови елементів і підрахунку підсумків, а також `openclaw/plugin-sdk/migration-runtime` для копіювання файлів з урахуванням конфліктів, копій звітів лише для архіву та звітів міграції.
|
||||
|
||||
## Інтеграція з онбордингом
|
||||
## Інтеграція з onboarding
|
||||
|
||||
Під час онбордингу можна запропонувати міграцію, коли provider виявляє відоме джерело. І `openclaw onboard --flow import`, і `openclaw setup --wizard --import-from hermes` використовують той самий plugin provider міграції та все одно показують попередній перегляд перед застосуванням.
|
||||
Onboarding може запропонувати міграцію, коли провайдер виявляє відоме джерело. І `openclaw onboard --flow import`, і `openclaw setup --wizard --import-from hermes` використовують той самий Plugin-провайдер міграції та все одно показують попередній перегляд перед застосуванням.
|
||||
|
||||
<Note>
|
||||
Імпорт під час онбордингу потребує свіжого налаштування OpenClaw. Спочатку скиньте конфігурацію, облікові дані, сесії та робочий простір, якщо у вас уже є локальний стан. Імпорт із резервним копіюванням і перезаписом або злиттям для наявних налаштувань доступний лише за feature gate.
|
||||
Для імпорту через onboarding потрібне нове налаштування OpenClaw. Спочатку скиньте конфігурацію, облікові дані, сесії та робочий простір, якщо у вас уже є локальний стан. Імпорт із резервним копіюванням і перезаписом або об’єднанням для наявних налаштувань доступний лише за feature gate.
|
||||
</Note>
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Міграція з Hermes](/uk/install/migrating-hermes): орієнтований на користувача покроковий посібник.
|
||||
- [Міграція](/uk/install/migrating): переміщення OpenClaw на нову машину.
|
||||
- [Migrating from Hermes](/uk/install/migrating-hermes): покроковий посібник для користувачів.
|
||||
- [Migrating](/uk/install/migrating): перенесення OpenClaw на нову машину.
|
||||
- [Doctor](/uk/gateway/doctor): перевірка стану після застосування міграції.
|
||||
- [Plugins](/uk/tools/plugin): встановлення та реєстрація Plugin.
|
||||
- [Plugins](/uk/tools/plugin): встановлення та реєстрація plugin.
|
||||
|
||||
@ -1,56 +1,56 @@
|
||||
---
|
||||
read_when:
|
||||
- Діагностика чергування профілів автентифікації, періодів охолодження або поведінки резервного перемикання моделей
|
||||
- Діагностика ротації профілів автентифікації, періодів охолодження або поведінки резервного перемикання моделей
|
||||
- Оновлення правил резервного перемикання для профілів автентифікації або моделей
|
||||
- Розуміння того, як перевизначення моделі сеансу взаємодіють із повторними спробами резервного перемикання
|
||||
- Розуміння того, як перевизначення моделей сеансу взаємодіють із повторними спробами резервного перемикання
|
||||
sidebarTitle: Model failover
|
||||
summary: Як OpenClaw чергує профілі автентифікації та перемикається на резервні варіанти між моделями
|
||||
summary: Як OpenClaw ротує профілі автентифікації та виконує резервне перемикання між моделями
|
||||
title: Резервне перемикання моделей
|
||||
x-i18n:
|
||||
generated_at: "2026-04-26T21:48:19Z"
|
||||
generated_at: "2026-04-27T08:25:08Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 3127f0b0ad76f8654685ae4446f2c7d82be8367bcd631e2f4ed160fc3457cfe7
|
||||
source_hash: b652e0bfb30aa698f0badbd341e615eb110254ca08abb1896189e95b0f9d4c61
|
||||
source_path: concepts/model-failover.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
OpenClaw обробляє збої у два етапи:
|
||||
|
||||
1. **Чергування профілів автентифікації** в межах поточного провайдера.
|
||||
2. **Резервне перемикання моделей** на наступну модель у `agents.defaults.model.fallbacks`.
|
||||
1. **Ротація профілів автентифікації** в межах поточного провайдера.
|
||||
2. **Резервне перемикання моделі** на наступну модель у `agents.defaults.model.fallbacks`.
|
||||
|
||||
У цьому документі пояснюються правила виконання та дані, на яких вони ґрунтуються.
|
||||
У цьому документі пояснюються правила виконання під час роботи та дані, на яких вони базуються.
|
||||
|
||||
## Логіка виконання
|
||||
## Потік виконання
|
||||
|
||||
Для звичайного текстового запуску OpenClaw оцінює кандидатів у такому порядку:
|
||||
|
||||
<Steps>
|
||||
<Step title="Визначення стану сеансу">
|
||||
Визначте активну модель сеансу та налаштування профілю автентифікації.
|
||||
Визначте активну модель сеансу та налаштування профілю автентифікації. Перевизначення сеансу з `modelOverrideSource: "auto"` походить із попереднього резервного перемикання, тому наступний запуск спочатку очищує його та знову пробує налаштовану основну модель; перевизначення, вибрані користувачем, залишаються закріпленими.
|
||||
</Step>
|
||||
<Step title="Побудова ланцюжка кандидатів">
|
||||
Побудуйте ланцюжок кандидатів моделей із поточно вибраної моделі сеансу, потім `agents.defaults.model.fallbacks` у заданому порядку, завершуючи налаштованою основною моделлю, якщо запуск почався з перевизначення.
|
||||
Побудуйте ланцюжок кандидатів моделей на основі поточної вибраної моделі сеансу, потім `agents.defaults.model.fallbacks` у заданому порядку, завершуючи налаштованою основною моделлю, якщо запуск почався з перевизначення.
|
||||
</Step>
|
||||
<Step title="Спроба з поточним провайдером">
|
||||
Спробуйте поточного провайдера з правилами чергування/охолодження профілів автентифікації.
|
||||
Спробуйте поточного провайдера з правилами ротації/охолодження профілів автентифікації.
|
||||
</Step>
|
||||
<Step title="Перехід за помилок, що допускають резервне перемикання">
|
||||
Якщо цей провайдер вичерпано через помилку, що допускає резервне перемикання, перейдіть до наступного кандидата моделі.
|
||||
<Step title="Перехід далі при помилках, що варті резервного перемикання">
|
||||
Якщо цей провайдер вичерпано через помилку, що варта резервного перемикання, перейдіть до наступного кандидата моделі.
|
||||
</Step>
|
||||
<Step title="Збереження перевизначення резервного варіанта">
|
||||
Збережіть вибране перевизначення резервного варіанта до початку повторної спроби, щоб інші читачі сеансу бачили того самого провайдера/модель, яких виконавець збирається використати.
|
||||
<Step title="Збереження перевизначення резервного перемикання">
|
||||
Збережіть вибране перевизначення резервного перемикання до початку повторної спроби, щоб інші читачі сеансу бачили того самого провайдера/модель, яких виконавець ось-ось використає. Збережене перевизначення моделі позначається як `modelOverrideSource: "auto"`.
|
||||
</Step>
|
||||
<Step title="Вузький відкат у разі збою">
|
||||
Якщо кандидат резервного варіанта зазнає збою, відкочуйте лише поля перевизначення сеансу, що належать резервному варіанту, коли вони все ще відповідають цьому невдалому кандидату.
|
||||
<Step title="Вузьке відкочування при збої">
|
||||
Якщо кандидат резервного перемикання не вдається, відкочуйте лише ті поля перевизначення сеансу, що належать резервному перемиканню, якщо вони все ще відповідають цьому невдалому кандидату.
|
||||
</Step>
|
||||
<Step title="Викидання FallbackSummaryError, якщо всі варіанти вичерпано">
|
||||
Якщо всі кандидати зазнали збою, викиньте `FallbackSummaryError` із деталями для кожної спроби та найближчим часом завершення охолодження, якщо його відомо.
|
||||
<Step title="Викидання FallbackSummaryError, якщо кандидати вичерпано">
|
||||
Якщо всі кандидати завершилися невдачею, викиньте `FallbackSummaryError` із деталями по кожній спробі та найближчим часом завершення охолодження, якщо він відомий.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
Це навмисно вужче, ніж «зберегти й відновити весь сеанс». Виконавець відповіді зберігає лише поля вибору моделі, якими він володіє для резервного перемикання:
|
||||
Це навмисно вужче, ніж «зберегти та відновити весь сеанс». Виконавець відповіді зберігає лише поля вибору моделі, якими він керує для резервного перемикання:
|
||||
|
||||
- `providerOverride`
|
||||
- `modelOverride`
|
||||
@ -58,15 +58,15 @@ OpenClaw обробляє збої у два етапи:
|
||||
- `authProfileOverrideSource`
|
||||
- `authProfileOverrideCompactionCount`
|
||||
|
||||
Це запобігає тому, щоб невдала повторна спроба резервного перемикання перезаписала новіші, не пов’язані із цим зміни сеансу, як-от ручні зміни `/model` або оновлення чергування сеансу, що сталися під час виконання спроби.
|
||||
Це запобігає ситуації, коли невдала повторна спроба резервного перемикання перезаписує новіші несуміжні зміни сеансу, як-от ручні зміни `/model` або оновлення ротації сеансу, що сталися під час виконання спроби.
|
||||
|
||||
## Сховище автентифікації (ключі + OAuth)
|
||||
|
||||
OpenClaw використовує **профілі автентифікації** як для API-ключів, так і для токенів OAuth.
|
||||
OpenClaw використовує **профілі автентифікації** як для API-ключів, так і для OAuth-токенів.
|
||||
|
||||
- Секрети зберігаються в `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` (застарілий шлях: `~/.openclaw/agent/auth-profiles.json`).
|
||||
- Стан маршрутизації автентифікації під час виконання зберігається в `~/.openclaw/agents/<agentId>/agent/auth-state.json`.
|
||||
- Конфігурація `auth.profiles` / `auth.order` — це **лише метадані + маршрутизація** (без секретів).
|
||||
- Стан маршрутизації автентифікації під час роботи зберігається в `~/.openclaw/agents/<agentId>/agent/auth-state.json`.
|
||||
- Конфігурації `auth.profiles` / `auth.order` — це **лише метадані + маршрутизація** (без секретів).
|
||||
- Застарілий файл OAuth лише для імпорту: `~/.openclaw/credentials/oauth.json` (імпортується в `auth-profiles.json` під час першого використання).
|
||||
|
||||
Докладніше: [OAuth](/uk/concepts/oauth)
|
||||
@ -78,14 +78,14 @@ OpenClaw використовує **профілі автентифікації*
|
||||
|
||||
## Ідентифікатори профілів
|
||||
|
||||
Входи через OAuth створюють окремі профілі, щоб кілька облікових записів могли співіснувати.
|
||||
OAuth-входи створюють окремі профілі, щоб могли співіснувати кілька облікових записів.
|
||||
|
||||
- Типово: `provider:default`, коли email недоступний.
|
||||
- За замовчуванням: `provider:default`, якщо email недоступний.
|
||||
- OAuth з email: `provider:<email>` (наприклад, `google-antigravity:user@gmail.com`).
|
||||
|
||||
Профілі зберігаються в `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` у розділі `profiles`.
|
||||
|
||||
## Порядок чергування
|
||||
## Порядок ротації
|
||||
|
||||
Коли провайдер має кілька профілів, OpenClaw вибирає порядок так:
|
||||
|
||||
@ -101,62 +101,62 @@ OpenClaw використовує **профілі автентифікації*
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
Якщо явний порядок не налаштовано, OpenClaw використовує порядок round-robin:
|
||||
Якщо явний порядок не налаштовано, OpenClaw використовує порядок round‑robin:
|
||||
|
||||
- **Основний ключ:** тип профілю (**OAuth перед API-ключами**).
|
||||
- **Другорядний ключ:** `usageStats.lastUsed` (найстаріші спочатку в межах кожного типу).
|
||||
- **Профілі в охолодженні/вимкнені профілі** переміщуються в кінець, упорядковані за найближчим завершенням строку дії.
|
||||
- **Другорядний ключ:** `usageStats.lastUsed` (найстаріший спочатку в межах кожного типу).
|
||||
- **Профілі в охолодженні/вимкнені профілі** переміщуються в кінець, упорядковані за найближчим часом завершення.
|
||||
|
||||
### Закріплення за сеансом (дружнє до кешу)
|
||||
### Закріплення сеансу (сприятливе для кешу)
|
||||
|
||||
OpenClaw **закріплює вибраний профіль автентифікації за кожним сеансом**, щоб кеші провайдера залишалися «теплими». Він **не** чергує профілі для кожного запиту. Закріплений профіль використовується повторно, доки:
|
||||
OpenClaw **закріплює вибраний профіль автентифікації на рівні сеансу**, щоб кеші провайдера залишалися прогрітими. Він **не** виконує ротацію при кожному запиті. Закріплений профіль використовується повторно, доки:
|
||||
|
||||
- сеанс не буде скинуто (`/new` / `/reset`)
|
||||
- не завершиться Compaction (лічильник Compaction збільшиться)
|
||||
- профіль не перейде в стан охолодження/не буде вимкнений
|
||||
- не завершиться Compaction (лічильник compaction збільшиться)
|
||||
- профіль не перейде в охолодження / не буде вимкнений
|
||||
|
||||
Ручний вибір через `/model …@<profileId>` задає **перевизначення користувача** для цього сеансу та не чергується автоматично, доки не почнеться новий сеанс.
|
||||
Ручний вибір через `/model …@<profileId>` задає **перевизначення користувача** для цього сеансу й не ротуватиметься автоматично, доки не почнеться новий сеанс.
|
||||
|
||||
<Note>
|
||||
Автоматично закріплені профілі (вибрані маршрутизатором сеансу) розглядаються як **перевага**: їх пробують першими, але OpenClaw може перейти на інший профіль у разі обмежень швидкості/тайм-аутів. Профілі, закріплені користувачем, залишаються прив’язаними до цього профілю; якщо він зазнає збою і налаштовано резервні моделі, OpenClaw переходить до наступної моделі замість перемикання профілів.
|
||||
Автоматично закріплені профілі (вибрані маршрутизатором сеансу) розглядаються як **уподобання**: вони пробуються першими, але OpenClaw може переключитися на інший профіль у разі лімітів швидкості/тайм-аутів. Профілі, закріплені користувачем, залишаються зафіксованими на цьому профілі; якщо він не спрацьовує і налаштовано резервне перемикання моделей, OpenClaw переходить до наступної моделі замість зміни профілю.
|
||||
</Note>
|
||||
|
||||
### Чому OAuth може «здаватися втраченим»
|
||||
### Чому OAuth може «виглядати втраченим»
|
||||
|
||||
Якщо у вас є і профіль OAuth, і профіль API-ключа для одного провайдера, round-robin може перемикатися між ними між повідомленнями, якщо вони не закріплені. Щоб примусово використовувати один профіль:
|
||||
Якщо для одного й того самого провайдера у вас є і OAuth-профіль, і профіль API-ключа, round‑robin може перемикатися між ними між повідомленнями, якщо профіль не закріплено. Щоб примусово використовувати один профіль:
|
||||
|
||||
- Закріпіть через `auth.order[provider] = ["provider:profileId"]`, або
|
||||
- Використайте перевизначення для конкретного сеансу через `/model …` із перевизначенням профілю (коли це підтримується вашим UI/поверхнею чату).
|
||||
- Закріпіть його через `auth.order[provider] = ["provider:profileId"]`, або
|
||||
- Використовуйте перевизначення для конкретного сеансу через `/model …` із перевизначенням профілю (де це підтримується вашим UI/поверхнею чату).
|
||||
|
||||
## Охолодження
|
||||
## Періоди охолодження
|
||||
|
||||
Коли профіль зазнає збою через помилки автентифікації/обмеження швидкості (або тайм-аут, схожий на обмеження швидкості), OpenClaw переводить його в стан охолодження та переходить до наступного профілю.
|
||||
Коли профіль завершується помилкою через автентифікацію/ліміти швидкості (або через тайм-аут, схожий на обмеження швидкості), OpenClaw позначає його як такий, що перебуває в охолодженні, і переходить до наступного профілю.
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Що потрапляє до категорії обмеження швидкості / тайм-ауту">
|
||||
Ця категорія обмеження швидкості ширша за звичайний `429`: вона також включає повідомлення провайдерів, як-от `Too many concurrent requests`, `ThrottlingException`, `concurrency limit reached`, `workers_ai ... quota limit exceeded`, `throttled`, `resource exhausted` і періодичні обмеження вікна використання, як-от `weekly/monthly limit reached`.
|
||||
<Accordion title="Що потрапляє до категорії лімітів швидкості / тайм-аутів">
|
||||
Ця категорія лімітів швидкості ширша за звичайний `429`: вона також включає повідомлення провайдерів, як-от `Too many concurrent requests`, `ThrottlingException`, `concurrency limit reached`, `workers_ai ... quota limit exceeded`, `throttled`, `resource exhausted` і періодичні обмеження в межах вікна використання, як-от `weekly/monthly limit reached`.
|
||||
|
||||
Помилки формату/некоректного запиту (наприклад, помилки перевірки ID виклику інструмента Cloud Code Assist) вважаються придатними для резервного перемикання та використовують ті самі механізми охолодження. Помилки сумісних з OpenAI причин зупинки, як-от `Unhandled stop reason: error`, `stop reason: error` і `reason: error`, класифікуються як сигнали тайм-ауту/резервного перемикання.
|
||||
Помилки формату/некоректного запиту (наприклад, помилки валідації ідентифікатора виклику інструмента Cloud Code Assist) вважаються такими, що варті резервного перемикання, і використовують ті самі періоди охолодження. Помилки stop-reason у стилі OpenAI-compatible, як-от `Unhandled stop reason: error`, `stop reason: error` і `reason: error`, класифікуються як сигнали тайм-ауту/резервного перемикання.
|
||||
|
||||
Загальний текст серверних помилок також може потрапляти до цієї категорії тайм-аутів, коли джерело відповідає відомому тимчасовому шаблону. Наприклад, просте повідомлення обгортки потоку pi-ai `An unknown error occurred` вважається придатним для резервного перемикання для кожного провайдера, оскільки pi-ai повертає його, коли потоки провайдера завершуються з `stopReason: "aborted"` або `stopReason: "error"` без конкретних подробиць. JSON-повідомлення `api_error` із тимчасовим серверним текстом, як-от `internal server error`, `unknown error, 520`, `upstream error` або `backend error`, також розглядаються як тайм-аути, придатні для резервного перемикання.
|
||||
Загальний текст серверних помилок також може потрапляти до цієї категорії тайм-аутів, якщо джерело відповідає відомому тимчасовому шаблону. Наприклад, просте повідомлення обгортки потоку pi-ai `An unknown error occurred` вважається таким, що варте резервного перемикання, для кожного провайдера, оскільки pi-ai повертає його, коли потоки провайдера завершуються з `stopReason: "aborted"` або `stopReason: "error"` без конкретних деталей. JSON-повідомлення `api_error` із тимчасовим серверним текстом, таким як `internal server error`, `unknown error, 520`, `upstream error` або `backend error`, також вважаються тайм-аутами, що варті резервного перемикання.
|
||||
|
||||
Загальний upstream-текст, специфічний для OpenRouter, як-от просте `Provider returned error`, вважається тайм-аутом лише тоді, коли контекстом провайдера справді є OpenRouter. Загальний внутрішній резервний текст, як-от `LLM request failed with an unknown error.`, залишається консервативним і сам по собі не запускає резервне перемикання.
|
||||
Загальний upstream-текст, специфічний для OpenRouter, як-от просте `Provider returned error`, вважається тайм-аутом лише тоді, коли контекст провайдера справді є OpenRouter. Загальний внутрішній текст резервного перемикання, як-от `LLM request failed with an unknown error.`, залишається консервативним і сам по собі не запускає резервне перемикання.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Обмеження retry-after у SDK">
|
||||
Деякі SDK провайдерів інакше можуть «спати» протягом довгого вікна `Retry-After`, перш ніж повернути керування OpenClaw. Для SDK на базі Stainless, таких як Anthropic і OpenAI, OpenClaw типово обмежує внутрішні очікування SDK `retry-after-ms` / `retry-after` до 60 секунд і негайно показує довші відповіді, придатні для повторної спроби, щоб цей шлях резервного перемикання міг спрацювати. Налаштуйте або вимкніть це обмеження через `OPENCLAW_SDK_RETRY_MAX_WAIT_SECONDS`; див. [Поведінка повторних спроб](/uk/concepts/retry).
|
||||
Деякі SDK провайдерів інакше можуть заснути на довге вікно `Retry-After`, перш ніж повернути керування OpenClaw. Для SDK на базі Stainless, як-от Anthropic і OpenAI, OpenClaw за замовчуванням обмежує внутрішні очікування SDK `retry-after-ms` / `retry-after` до 60 секунд і негайно повертає довші відповіді, придатні до повтору, щоб цей шлях резервного перемикання міг спрацювати. Налаштуйте або вимкніть це обмеження через `OPENCLAW_SDK_RETRY_MAX_WAIT_SECONDS`; див. [Поведінка повторних спроб](/uk/concepts/retry).
|
||||
</Accordion>
|
||||
<Accordion title="Охолодження на рівні моделі">
|
||||
Охолодження через обмеження швидкості також може бути прив’язане до моделі:
|
||||
<Accordion title="Періоди охолодження на рівні моделі">
|
||||
Періоди охолодження через ліміти швидкості також можуть бути прив’язані до моделі:
|
||||
|
||||
- OpenClaw записує `cooldownModel` для збоїв через обмеження швидкості, коли відомий ідентифікатор моделі, що зазнала збою.
|
||||
- Дочірню модель того самого провайдера все ще можна спробувати, якщо охолодження прив’язане до іншої моделі.
|
||||
- Вікна білінгу/вимкнення все одно блокують увесь профіль для всіх моделей.
|
||||
- OpenClaw записує `cooldownModel` для збоїв через ліміти швидкості, коли ідентифікатор моделі, що завершилася помилкою, відомий.
|
||||
- Сусідню модель у того самого провайдера все ще можна спробувати, коли охолодження прив’язане до іншої моделі.
|
||||
- Вікна блокування через білінг/вимкнення все одно блокують увесь профіль для всіх моделей.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
Для охолодження використовується експоненційне збільшення інтервалу:
|
||||
Періоди охолодження використовують експоненційне збільшення затримки:
|
||||
|
||||
- 1 хвилина
|
||||
- 5 хвилин
|
||||
@ -179,12 +179,12 @@ OpenClaw **закріплює вибраний профіль автентифі
|
||||
|
||||
## Вимкнення через білінг
|
||||
|
||||
Збої білінгу/кредитів (наприклад, «недостатньо кредитів» / «занадто низький баланс кредитів») вважаються придатними для резервного перемикання, але зазвичай не є тимчасовими. Замість короткого охолодження OpenClaw позначає профіль як **вимкнений** (із довшим інтервалом відкладення) і переходить до наступного профілю/провайдера.
|
||||
Збої через білінг/кредити (наприклад, «недостатньо кредитів» / «занадто низький кредитний баланс») вважаються такими, що варті резервного перемикання, але зазвичай вони не є тимчасовими. Замість короткого періоду охолодження OpenClaw позначає профіль як **вимкнений** (із довшим backoff) і переходить до наступного профілю/провайдера.
|
||||
|
||||
<Note>
|
||||
Не кожна відповідь, схожа на білінгову, є `402`, і не кожен HTTP `402` потрапляє сюди. OpenClaw зберігає явний білінговий текст у категорії білінгу, навіть коли провайдер натомість повертає `401` або `403`, але специфічні для провайдера відповідності залишаються обмеженими тим провайдером, якому вони належать (наприклад, OpenRouter `403 Key limit exceeded`).
|
||||
Не кожна відповідь, схожа на білінгову, є `402`, і не кожен HTTP `402` потрапляє сюди. OpenClaw зберігає явний текст, пов’язаний із білінгом, у білінговому сценарії навіть тоді, коли провайдер натомість повертає `401` або `403`, але matchers, специфічні для провайдера, залишаються обмеженими провайдером, якому вони належать (наприклад, OpenRouter `403 Key limit exceeded`).
|
||||
|
||||
Тимчасові помилки `402` вікна використання та лімітів витрат організації/робочого простору класифікуються як `rate_limit`, коли повідомлення виглядає придатним для повторної спроби (наприклад, `weekly usage limit exhausted`, `daily limit reached, resets tomorrow` або `organization spending limit exceeded`). Вони залишаються на шляху короткого охолодження/резервного перемикання, а не довгого вимкнення через білінг.
|
||||
Тим часом тимчасові помилки `402`, пов’язані з вікном використання та лімітами витрат організації/робочого простору, класифікуються як `rate_limit`, коли повідомлення виглядає придатним до повтору (наприклад, `weekly usage limit exhausted`, `daily limit reached, resets tomorrow` або `organization spending limit exceeded`). Вони залишаються на шляху короткого охолодження/резервного перемикання, а не довгого шляху вимкнення через білінг.
|
||||
</Note>
|
||||
|
||||
Стан зберігається в `auth-state.json`:
|
||||
@ -200,49 +200,49 @@ OpenClaw **закріплює вибраний профіль автентифі
|
||||
}
|
||||
```
|
||||
|
||||
Типові значення:
|
||||
Значення за замовчуванням:
|
||||
|
||||
- Відкладення через білінг починається з **5 годин**, подвоюється з кожним збоєм білінгу та обмежується **24 годинами**.
|
||||
- Лічильники відкладення скидаються, якщо профіль не зазнавав збоїв протягом **24 годин** (можна налаштувати).
|
||||
- Для перевантажених повторних спроб дозволено **1 чергування профілю того самого провайдера** перед резервним перемиканням моделі.
|
||||
- Для перевантажених повторних спроб типово використовується відкладення **0 мс**.
|
||||
- Backoff для білінгу починається з **5 годин**, подвоюється після кожного збою через білінг і обмежується **24 годинами**.
|
||||
- Лічильники backoff скидаються, якщо профіль не завершувався помилкою протягом **24 годин** (можна налаштувати).
|
||||
- Повторні спроби при перевантаженні дозволяють **1 ротацію профілю того самого провайдера** перед резервним перемиканням моделі.
|
||||
- Повторні спроби при перевантаженні за замовчуванням використовують backoff **0 мс**.
|
||||
|
||||
## Резервне перемикання моделей
|
||||
|
||||
Якщо всі профілі для провайдера зазнають збою, OpenClaw переходить до наступної моделі в `agents.defaults.model.fallbacks`. Це застосовується до збоїв автентифікації, обмежень швидкості та тайм-аутів, які вичерпали чергування профілів (інші помилки не просувають резервне перемикання).
|
||||
Якщо всі профілі для провайдера завершуються помилкою, OpenClaw переходить до наступної моделі в `agents.defaults.model.fallbacks`. Це застосовується до збоїв автентифікації, лімітів швидкості та тайм-аутів, які вичерпали ротацію профілів (інші помилки не просувають резервне перемикання).
|
||||
|
||||
Помилки перевантаження та обмеження швидкості обробляються агресивніше, ніж охолодження через білінг. Типово OpenClaw дозволяє одну повторну спробу з профілем автентифікації того самого провайдера, а потім без очікування перемикається на наступну налаштовану резервну модель. Сигнали зайнятості провайдера, як-от `ModelNotReadyException`, потрапляють до цієї категорії перевантаження. Налаштуйте це через `auth.cooldowns.overloadedProfileRotations`, `auth.cooldowns.overloadedBackoffMs` і `auth.cooldowns.rateLimitedProfileRotations`.
|
||||
Помилки перевантаження та лімітів швидкості обробляються агресивніше, ніж періоди охолодження через білінг. За замовчуванням OpenClaw дозволяє одну повторну спробу профілю автентифікації в межах того самого провайдера, а потім без очікування переходить до наступної налаштованої резервної моделі. Сигнали зайнятості провайдера, як-от `ModelNotReadyException`, потрапляють до цієї категорії перевантаження. Це можна налаштувати через `auth.cooldowns.overloadedProfileRotations`, `auth.cooldowns.overloadedBackoffMs` і `auth.cooldowns.rateLimitedProfileRotations`.
|
||||
|
||||
Коли запуск починається з перевизначення моделі (хуки або CLI), резервні варіанти все одно завершуються на `agents.defaults.model.primary` після спроб усіх налаштованих резервних моделей.
|
||||
Коли запуск починається з перевизначення моделі (hooks або CLI), резервні перемикання все одно завершуються на `agents.defaults.model.primary` після спроб усіх налаштованих резервних варіантів.
|
||||
|
||||
### Правила ланцюжка кандидатів
|
||||
|
||||
OpenClaw будує список кандидатів із поточного запитаного `provider/model` і налаштованих резервних варіантів.
|
||||
OpenClaw будує список кандидатів із поточно запитаного `provider/model` та налаштованих резервних варіантів.
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Правила">
|
||||
- Запитана модель завжди стоїть першою.
|
||||
- Явно налаштовані резервні варіанти дедуплікуються, але не фільтруються за allowlist моделей. Вони розглядаються як явний намір оператора.
|
||||
- Якщо поточний запуск уже виконується на налаштованій резервній моделі в тій самій сім’ї провайдерів, OpenClaw продовжує використовувати весь налаштований ланцюжок.
|
||||
- Якщо поточний запуск виконується на іншому провайдері, ніж у конфігурації, і ця поточна модель ще не є частиною налаштованого ланцюжка резервних варіантів, OpenClaw не додає не пов’язані налаштовані резервні варіанти від іншого провайдера.
|
||||
- Коли запуск почався з перевизначення, налаштована основна модель додається в кінець, щоб ланцюжок міг повернутися до звичайного типового стану після вичерпання попередніх кандидатів.
|
||||
- Запитана модель завжди перша.
|
||||
- Явно налаштовані резервні варіанти дедуплікуються, але не фільтруються за allowlist моделей. Вони вважаються явним наміром оператора.
|
||||
- Якщо поточний запуск уже використовує налаштований резервний варіант у межах тієї самої сім’ї провайдерів, OpenClaw продовжує використовувати весь налаштований ланцюжок.
|
||||
- Якщо поточний запуск використовує іншого провайдера, ніж указано в конфігурації, і ця поточна модель ще не є частиною налаштованого ланцюжка резервного перемикання, OpenClaw не додає несуміжні налаштовані резервні варіанти від іншого провайдера.
|
||||
- Коли запуск почався з перевизначення, налаштована основна модель додається в кінець, щоб ланцюжок міг повернутися до звичайного стандартного значення після вичерпання попередніх кандидатів.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
### Які помилки просувають резервне перемикання
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Продовжується за умов">
|
||||
<Tab title="Продовжується для">
|
||||
- збоїв автентифікації
|
||||
- обмежень швидкості та вичерпання охолодження
|
||||
- лімітів швидкості та вичерпання періодів охолодження
|
||||
- помилок перевантаження/зайнятості провайдера
|
||||
- помилок резервного перемикання, схожих на тайм-аут
|
||||
- вимкнення через білінг
|
||||
- `LiveSessionModelSwitchError`, яка нормалізується в шлях резервного перемикання, щоб застаріла збережена модель не створювала зовнішній цикл повторних спроб
|
||||
- вимкнень через білінг
|
||||
- `LiveSessionModelSwitchError`, яка нормалізується до шляху резервного перемикання, щоб застаріла збережена модель не створювала зовнішній цикл повторних спроб
|
||||
- інших нерозпізнаних помилок, коли ще залишаються кандидати
|
||||
</Tab>
|
||||
<Tab title="Не продовжується за умов">
|
||||
- явних переривань, які не схожі на тайм-аут/резервне перемикання
|
||||
<Tab title="Не продовжується для">
|
||||
- явних переривань, які не мають форми тайм-ауту/резервного перемикання
|
||||
- помилок переповнення контексту, які мають залишатися в межах логіки Compaction/повторних спроб (наприклад, `request_too_large`, `INVALID_ARGUMENT: input exceeds the maximum number of tokens`, `input token count exceeds the maximum number of input tokens`, `The input is too long for the model` або `ollama error: context length exceeded`)
|
||||
- фінальної невідомої помилки, коли кандидатів більше не залишилося
|
||||
</Tab>
|
||||
@ -250,68 +250,70 @@ OpenClaw будує список кандидатів із поточного з
|
||||
|
||||
### Поведінка пропуску охолодження та пробних спроб
|
||||
|
||||
Коли всі профілі автентифікації для провайдера вже перебувають у стані охолодження, OpenClaw не пропускає цього провайдера автоматично назавжди. Він ухвалює рішення окремо для кожного кандидата:
|
||||
Коли всі профілі автентифікації для провайдера вже перебувають в охолодженні, OpenClaw не пропускає цього провайдера назавжди автоматично. Він приймає рішення окремо для кожного кандидата:
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Рішення для кожного кандидата">
|
||||
- Стійкі збої автентифікації негайно пропускають усього провайдера.
|
||||
- Вимкнення через білінг зазвичай призводять до пропуску, але основного кандидата все ще можна пробувати з тротлінгом, щоб відновлення було можливим без перезапуску.
|
||||
- Основного кандидата можна пробувати поблизу завершення охолодження з окремим тротлінгом для кожного провайдера.
|
||||
- Дочірні резервні варіанти того самого провайдера можна пробувати попри охолодження, коли збій виглядає тимчасовим (`rate_limit`, `overloaded` або невідомий). Це особливо актуально, коли обмеження швидкості прив’язане до моделі, а дочірня модель може відновитися негайно.
|
||||
- Вимкнення через білінг зазвичай призводять до пропуску, але основного кандидата все ще можна пробно перевірити з throttle, щоб відновлення було можливим без перезапуску.
|
||||
- Основного кандидата можна пробно перевірити ближче до завершення охолодження, з throttle на рівні провайдера.
|
||||
- Сусідні резервні варіанти того самого провайдера можна пробувати попри охолодження, коли збій виглядає тимчасовим (`rate_limit`, `overloaded` або невідомий). Це особливо важливо, коли ліміт швидкості прив’язаний до моделі, а сусідня модель може відновитися негайно.
|
||||
- Тимчасові пробні спроби під час охолодження обмежуються однією на провайдера за один запуск резервного перемикання, щоб один провайдер не затримував резервне перемикання між провайдерами.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Перевизначення сеансу та перемикання моделі в реальному часі
|
||||
## Перевизначення сеансу та перемикання моделей у live-сеансі
|
||||
|
||||
Зміни моделі сеансу є спільним станом. Активний виконавець, команда `/model`, оновлення Compaction/сеансу та узгодження live-сеансу читають або записують частини того самого запису сеансу.
|
||||
Зміни моделей сеансу — це спільний стан. Активний виконавець, команда `/model`, оновлення Compaction/сеансу та узгодження live-сеансу читають або записують частини одного й того самого запису сеансу.
|
||||
|
||||
Це означає, що повторні спроби резервного перемикання мають узгоджуватися з перемиканням моделі в реальному часі:
|
||||
Це означає, що повторні спроби резервного перемикання мають координуватися з перемиканням моделей у live-сеансі:
|
||||
|
||||
- Лише явні зміни моделі, ініційовані користувачем, позначають очікуване live-перемикання. Це включає `/model`, `session_status(model=...)` і `sessions.patch`.
|
||||
- Зміни моделі, ініційовані системою, як-от чергування резервних варіантів, перевизначення Heartbeat або Compaction, самі по собі ніколи не позначають очікуване live-перемикання.
|
||||
- Перед початком повторної спроби резервного перемикання виконавець відповіді зберігає в записі сеансу вибрані поля перевизначення резервного варіанта.
|
||||
- Узгодження live-сеансу віддає перевагу збереженим перевизначенням сеансу над застарілими полями моделі під час виконання.
|
||||
- Якщо помилка live-перемикання вказує на пізнішого кандидата в активному ланцюжку резервного перемикання, OpenClaw одразу переходить до цієї вибраної моделі замість проходження непов’язаних кандидатів спочатку.
|
||||
- Якщо спроба резервного перемикання зазнає збою, виконавець відкочує лише ті поля перевизначення, які він записав, і лише якщо вони все ще відповідають цьому невдалому кандидату.
|
||||
- Зміни моделі, ініційовані системою, як-от ротація резервного перемикання, перевизначення Heartbeat або Compaction, ніколи самі по собі не позначають очікуване live-перемикання.
|
||||
- Перед початком повторної спроби резервного перемикання виконавець відповіді зберігає вибрані поля перевизначення резервного перемикання в записі сеансу.
|
||||
- На наступному запуску автоматичні перевизначення резервного перемикання очищуються перед вибором моделі, щоб знову спробувати налаштовану основну модель. Якщо вона все ще нездорова, цикл резервного перемикання записує нове автоматичне перевизначення для цієї нової спроби.
|
||||
- Перевизначення моделей користувача (`modelOverrideSource: "user"`) і застарілі перевизначення без поля джерела залишаються постійними між ходами.
|
||||
- Узгодження live-сеансу надає перевагу збереженим перевизначенням сеансу над застарілими полями моделі під час виконання.
|
||||
- Якщо помилка live-перемикання вказує на пізнішого кандидата в активному ланцюжку резервного перемикання, OpenClaw одразу переходить до цієї вибраної моделі замість того, щоб спочатку проходити несуміжних кандидатів.
|
||||
- Якщо спроба резервного перемикання не вдається, виконавець відкочує лише ті поля перевизначення, які він записав, і лише якщо вони все ще відповідають цьому невдалому кандидату.
|
||||
|
||||
Це запобігає типовій гонці станів:
|
||||
Це запобігає класичній гонці:
|
||||
|
||||
<Steps>
|
||||
<Step title="Збій основної моделі">
|
||||
Вибрана основна модель зазнає збою.
|
||||
<Step title="Основна модель завершується невдачею">
|
||||
Вибрана основна модель завершується невдачею.
|
||||
</Step>
|
||||
<Step title="Резервний варіант вибрано в пам’яті">
|
||||
Кандидата резервного варіанта вибрано в пам’яті.
|
||||
Резервного кандидата вибрано в пам’яті.
|
||||
</Step>
|
||||
<Step title="Сховище сеансу все ще вказує на стару основну модель">
|
||||
<Step title="Сховище сеансу все ще вказує стару основну модель">
|
||||
Сховище сеансу все ще відображає стару основну модель.
|
||||
</Step>
|
||||
<Step title="Live-узгодження читає застарілий стан">
|
||||
Узгодження live-сеансу читає застарілий стан сеансу.
|
||||
</Step>
|
||||
<Step title="Повторну спробу повернуто назад">
|
||||
Повторну спробу повертає до старої моделі ще до початку спроби резервного перемикання.
|
||||
Повторну спробу повертає назад до старої моделі ще до початку спроби резервного перемикання.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
Збережене перевизначення резервного варіанта закриває це вікно, а вузький відкат зберігає новіші ручні або runtime-зміни сеансу без змін.
|
||||
Збережене перевизначення резервного перемикання закриває це вікно, а вузьке відкочування зберігає недоторканими новіші ручні або виконувані під час роботи зміни сеансу.
|
||||
|
||||
## Спостережуваність і підсумки збоїв
|
||||
## Спостережуваність і зведення збоїв
|
||||
|
||||
`runWithModelFallback(...)` записує деталі кожної спроби, які використовуються в логах і повідомленнях для користувача про охолодження:
|
||||
`runWithModelFallback(...)` записує деталі кожної спроби, які використовуються в журналах і повідомленнях для користувача про періоди охолодження:
|
||||
|
||||
- провайдер/модель, які було спробовано
|
||||
- причина (`rate_limit`, `overloaded`, `billing`, `auth`, `model_not_found` та інші подібні причини резервного перемикання)
|
||||
- необов’язковий статус/код
|
||||
- зрозумілий для людини підсумок помилки
|
||||
- спробуваний provider/model
|
||||
- причина (`rate_limit`, `overloaded`, `billing`, `auth`, `model_not_found` та подібні причини резервного перемикання)
|
||||
- необов’язковий status/code
|
||||
- зрозуміле людині зведення помилки
|
||||
|
||||
Коли всі кандидати зазнають збою, OpenClaw викидає `FallbackSummaryError`. Зовнішній виконавець відповіді може використати це, щоб побудувати точніше повідомлення, наприклад «усі моделі тимчасово обмежені за швидкістю», і додати найближчий час завершення охолодження, якщо він відомий.
|
||||
Коли всі кандидати завершуються невдачею, OpenClaw викидає `FallbackSummaryError`. Зовнішній виконавець відповіді може використати це, щоб побудувати точніше повідомлення, наприклад «усі моделі тимчасово обмежені лімітами швидкості», і включити найближчий час завершення охолодження, якщо він відомий.
|
||||
|
||||
Цей підсумок охолодження враховує модель:
|
||||
Це зведення охолодження враховує модель:
|
||||
|
||||
- непов’язані обмеження швидкості, прив’язані до інших моделей, ігноруються для ланцюжка спробуваних провайдера/моделі
|
||||
- якщо блокування, що залишилося, є відповідним обмеженням швидкості, прив’язаним до моделі, OpenClaw повідомляє про останній відповідний час завершення, який усе ще блокує цю модель
|
||||
- несуміжні ліміти швидкості, прив’язані до моделі, ігноруються для ланцюжка спробуваних provider/model
|
||||
- якщо блокування, що залишилося, є відповідним лімітом швидкості, прив’язаним до моделі, OpenClaw повідомляє про останній відповідний час завершення, який і далі блокує цю модель
|
||||
|
||||
## Пов’язана конфігурація
|
||||
|
||||
@ -325,4 +327,4 @@ OpenClaw будує список кандидатів із поточного з
|
||||
- `agents.defaults.model.primary` / `agents.defaults.model.fallbacks`
|
||||
- маршрутизації `agents.defaults.imageModel`
|
||||
|
||||
Див. [Моделі](/uk/concepts/models), щоб переглянути ширший огляд вибору моделей і резервного перемикання.
|
||||
Див. [Моделі](/uk/concepts/models), щоб ознайомитися з ширшим оглядом вибору моделей і резервного перемикання.
|
||||
|
||||
@ -1,29 +1,29 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви переходите з Hermes і хочете зберегти конфігурацію моделі, підказки, пам’ять і Skills
|
||||
- Ви переходите з Hermes і хочете зберегти конфігурацію моделі, промпти, пам’ять і Skills
|
||||
- Ви хочете знати, що OpenClaw імпортує автоматично, а що залишається лише в архіві
|
||||
- Вам потрібен чистий, скриптований шлях міграції (CI, новий ноутбук, автоматизація)
|
||||
summary: Перейдіть із Hermes до OpenClaw за допомогою попередньо переглянутого імпорту з можливістю скасування
|
||||
title: Міграція з Hermes
|
||||
summary: Перейдіть з Hermes на OpenClaw за допомогою попередньо переглянутого імпорту з можливістю скасування
|
||||
title: Перехід з Hermes
|
||||
x-i18n:
|
||||
generated_at: "2026-04-27T08:08:07Z"
|
||||
generated_at: "2026-04-27T08:25:07Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 2fdf09f21398d10a8cdf8e98237fbdfb3c56ade5b56e73a6e6ae01b5c201440d
|
||||
source_hash: f424defc61e4f1127adb6e99b504c1f3a84c59635293208bb24bf3113aa7724d
|
||||
source_path: install/migrating-hermes.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
OpenClaw імпортує стан Hermes через вбудований провайдер міграції. Провайдер попередньо показує все перед зміною стану, редагує секрети в планах і звітах та створює перевірену резервну копію перед застосуванням.
|
||||
OpenClaw імпортує стан Hermes через вбудований провайдер міграції. Провайдер показує попередній перегляд усього перед зміною стану, приховує секрети в планах і звітах та створює перевірену резервну копію перед застосуванням.
|
||||
|
||||
<Note>
|
||||
Імпорт потребує нового налаштування OpenClaw. Якщо у вас уже є локальний стан OpenClaw, спочатку скиньте конфігурацію, облікові дані, сесії та робочий простір або використайте `openclaw migrate` безпосередньо з `--overwrite` після перегляду плану.
|
||||
Для імпорту потрібне свіже налаштування OpenClaw. Якщо у вас уже є локальний стан OpenClaw, спочатку скиньте config, credentials, sessions і workspace, або використайте `openclaw migrate` безпосередньо з `--overwrite` після перегляду плану.
|
||||
</Note>
|
||||
|
||||
## Два способи імпорту
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Майстер онбордингу">
|
||||
<Tab title="Майстер початкового налаштування">
|
||||
Найшвидший шлях. Майстер виявляє Hermes у `~/.hermes` і показує попередній перегляд перед застосуванням.
|
||||
|
||||
```bash
|
||||
@ -35,47 +35,49 @@ OpenClaw імпортує стан Hermes через вбудований про
|
||||
```bash
|
||||
openclaw onboard --import-from hermes --import-source ~/.hermes
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="CLI">
|
||||
Використовуйте `openclaw migrate` для скриптованих або повторюваних запусків. Див. [`openclaw migrate`](/uk/cli/migrate) для повного довідника.
|
||||
Використовуйте `openclaw migrate` для скриптованих або повторюваних запусків. Повний довідник дивіться в [`openclaw migrate`](/uk/cli/migrate).
|
||||
|
||||
```bash
|
||||
openclaw migrate hermes --dry-run # лише попередній перегляд
|
||||
openclaw migrate apply hermes --yes # застосувати без підтвердження
|
||||
openclaw migrate apply hermes --yes # застосувати без запиту підтвердження
|
||||
```
|
||||
|
||||
Додайте `--from <path>`, якщо Hermes розташований поза `~/.hermes`.
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Що імпортується
|
||||
## Що буде імпортовано
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Конфігурація моделі">
|
||||
- Вибір типової моделі з Hermes `config.yaml`.
|
||||
- Налаштовані провайдери моделей і власні OpenAI-сумісні кінцеві точки з `providers` і `custom_providers`.
|
||||
- Вибір моделі за замовчуванням із Hermes `config.yaml`.
|
||||
- Налаштовані провайдери моделей і власні сумісні з OpenAI endpoint-и з `providers` і `custom_providers`.
|
||||
</Accordion>
|
||||
<Accordion title="Сервери MCP">
|
||||
Визначення серверів MCP з `mcp_servers` або `mcp.servers`.
|
||||
<Accordion title="MCP-сервери">
|
||||
Визначення MCP-серверів із `mcp_servers` або `mcp.servers`.
|
||||
</Accordion>
|
||||
<Accordion title="Файли робочого простору">
|
||||
- `SOUL.md` і `AGENTS.md` копіюються до робочого простору агента OpenClaw.
|
||||
- `memories/MEMORY.md` і `memories/USER.md` **додаються** до відповідних файлів пам’яті OpenClaw замість перезапису.
|
||||
<Accordion title="Файли workspace">
|
||||
- `SOUL.md` і `AGENTS.md` копіюються до workspace агента OpenClaw.
|
||||
- `memories/MEMORY.md` і `memories/USER.md` **додаються** до відповідних файлів пам’яті OpenClaw, а не перезаписують їх.
|
||||
</Accordion>
|
||||
<Accordion title="Конфігурація пам’яті">
|
||||
Типові налаштування пам’яті для файлової пам’яті OpenClaw. Зовнішні провайдери пам’яті, такі як Honcho, записуються як архівні елементи або елементи для ручної перевірки, щоб ви могли перенести їх свідомо.
|
||||
Типові параметри конфігурації пам’яті для файлової пам’яті OpenClaw. Зовнішні провайдери пам’яті, такі як Honcho, фіксуються як елементи архіву або ручної перевірки, щоб ви могли перенести їх усвідомлено.
|
||||
</Accordion>
|
||||
<Accordion title="Skills">
|
||||
Skills із файлом `SKILL.md` у `skills/<name>/` копіюються разом зі значеннями конфігурації для кожної Skill з `skills.config`.
|
||||
Skills із файлом `SKILL.md` у `skills/<name>/` копіюються разом із значеннями конфігурації для кожного skill із `skills.config`.
|
||||
</Accordion>
|
||||
<Accordion title="Ключі API (за бажанням)">
|
||||
Встановіть `--include-secrets`, щоб імпортувати підтримувані ключі `.env`: `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `OPENROUTER_API_KEY`, `GOOGLE_API_KEY`, `GEMINI_API_KEY`, `GROQ_API_KEY`, `XAI_API_KEY`, `MISTRAL_API_KEY`, `DEEPSEEK_API_KEY`. Без цього прапорця секрети ніколи не копіюються.
|
||||
<Accordion title="Ключі API (за вибором)">
|
||||
Установіть `--include-secrets`, щоб імпортувати підтримувані ключі `.env`: `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `OPENROUTER_API_KEY`, `GOOGLE_API_KEY`, `GEMINI_API_KEY`, `GROQ_API_KEY`, `XAI_API_KEY`, `MISTRAL_API_KEY`, `DEEPSEEK_API_KEY`. Без цього прапорця секрети ніколи не копіюються.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Що залишається лише в архіві
|
||||
|
||||
Провайдер копіює це до каталогу звіту про міграцію для ручної перевірки, але **не** завантажує до активної конфігурації чи облікових даних OpenClaw:
|
||||
Провайдер копіює це до каталогу звіту міграції для ручної перевірки, але **не** завантажує до активних config або credentials OpenClaw:
|
||||
|
||||
- `plugins/`
|
||||
- `sessions/`
|
||||
@ -85,59 +87,63 @@ OpenClaw імпортує стан Hermes через вбудований про
|
||||
- `auth.json`
|
||||
- `state.db`
|
||||
|
||||
OpenClaw відмовляється автоматично виконувати або вважати цей стан довіреним, оскільки формати та припущення про довіру можуть відрізнятися між системами. Перенесіть потрібне вручну після перегляду архіву.
|
||||
OpenClaw відмовляється автоматично виконувати або довіряти цьому стану, оскільки формати та припущення щодо довіри можуть відрізнятися між системами. Перенесіть потрібне вручну після перегляду архіву.
|
||||
|
||||
## Рекомендований процес
|
||||
## Рекомендований порядок дій
|
||||
|
||||
<Steps>
|
||||
<Step title="Переглянути план">
|
||||
<Step title="Перегляньте план">
|
||||
```bash
|
||||
openclaw migrate hermes --dry-run
|
||||
```
|
||||
|
||||
У плані перелічено все, що буде змінено, включно з конфліктами, пропущеними елементами та будь-якими чутливими елементами. Вивід плану редагує вкладені ключі, схожі на секрети.
|
||||
План перелічує все, що буде змінено, зокрема конфлікти, пропущені елементи та будь-які чутливі елементи. Вивід плану приховує вкладені ключі, схожі на секрети.
|
||||
|
||||
</Step>
|
||||
<Step title="Застосувати з резервною копією">
|
||||
<Step title="Застосуйте з резервною копією">
|
||||
```bash
|
||||
openclaw migrate apply hermes --yes
|
||||
```
|
||||
|
||||
OpenClaw створює та перевіряє резервну копію перед застосуванням. Якщо вам потрібно імпортувати ключі API, додайте `--include-secrets`.
|
||||
Перед застосуванням OpenClaw створює та перевіряє резервну копію. Якщо вам потрібно імпортувати ключі API, додайте `--include-secrets`.
|
||||
|
||||
</Step>
|
||||
<Step title="Запустити doctor">
|
||||
<Step title="Запустіть doctor">
|
||||
```bash
|
||||
openclaw doctor
|
||||
```
|
||||
|
||||
[Doctor](/uk/gateway/doctor) повторно застосовує всі незавершені міграції конфігурації та перевіряє наявність проблем, які могли з’явитися під час імпорту.
|
||||
[Doctor](/uk/gateway/doctor) повторно застосовує всі відкладені міграції config і перевіряє наявність проблем, внесених під час імпорту.
|
||||
|
||||
</Step>
|
||||
<Step title="Перезапустити та перевірити">
|
||||
<Step title="Перезапустіть і перевірте">
|
||||
```bash
|
||||
openclaw gateway restart
|
||||
openclaw status
|
||||
```
|
||||
|
||||
Підтвердьте, що Gateway працює справно і що ваші імпортовані модель, пам’ять і Skills завантажені.
|
||||
Переконайтеся, що Gateway працює справно і ваші імпортовані модель, пам’ять і Skills завантажені.
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Обробка конфліктів
|
||||
|
||||
Застосування відмовляється продовжувати, якщо план повідомляє про конфлікти (файл або значення конфігурації вже існує в цільовому місці).
|
||||
Застосування відмовляється продовжувати, коли план повідомляє про конфлікти (файл або значення config уже існує в цільовому місці).
|
||||
|
||||
<Warning>
|
||||
Повторно запускайте з `--overwrite` лише тоді, коли заміна наявної цілі справді є навмисною. Провайдери все одно можуть записувати резервні копії окремих елементів для перезаписаних файлів до каталогу звіту про міграцію.
|
||||
Повторно запускайте з `--overwrite` лише тоді, коли заміна наявної цілі є свідомим рішенням. Провайдери все одно можуть записувати резервні копії окремих елементів для перезаписаних файлів у каталог звіту міграції.
|
||||
</Warning>
|
||||
|
||||
Для нового встановлення OpenClaw конфлікти трапляються рідко. Зазвичай вони з’являються, коли ви повторно запускаєте імпорт у налаштуванні, де вже є користувацькі зміни.
|
||||
Для свіжої інсталяції OpenClaw конфлікти нетипові. Зазвичай вони з’являються, коли ви повторно запускаєте імпорт у налаштуванні, де вже є внесені користувачем зміни.
|
||||
|
||||
## Секрети
|
||||
|
||||
Секрети ніколи не імпортуються типово.
|
||||
Секрети ніколи не імпортуються за замовчуванням.
|
||||
|
||||
- Спочатку запустіть `openclaw migrate apply hermes --yes`, щоб імпортувати стан без секретів.
|
||||
- Якщо ви також хочете скопіювати підтримувані ключі `.env`, повторіть запуск із `--include-secrets`.
|
||||
- Для облікових даних, якими керує SecretRef, налаштуйте джерело SecretRef після завершення імпорту.
|
||||
- Спочатку виконайте `openclaw migrate apply hermes --yes`, щоб імпортувати стан без секретів.
|
||||
- Якщо ви також хочете скопіювати підтримувані ключі `.env`, повторно запустіть із `--include-secrets`.
|
||||
- Для credentials під керуванням SecretRef налаштуйте джерело SecretRef після завершення імпорту.
|
||||
|
||||
## Вивід JSON для автоматизації
|
||||
|
||||
@ -146,29 +152,29 @@ openclaw migrate hermes --dry-run --json
|
||||
openclaw migrate apply hermes --json --yes
|
||||
```
|
||||
|
||||
З `--json` і без `--yes` застосування виводить план і не змінює стан. Це найбезпечніший режим для CI та спільних скриптів.
|
||||
З `--json` і без `--yes` застосування виводить план і не змінює стан. Це найбезпечніший режим для CI і спільних скриптів.
|
||||
|
||||
## Усунення проблем
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Застосування відмовляється через конфлікти">
|
||||
Перегляньте вивід плану. Кожен конфлікт визначає вихідний шлях і наявну ціль. Для кожного елемента вирішіть, чи пропустити його, змінити ціль або повторно запустити з `--overwrite`.
|
||||
Перегляньте вивід плану. Кожен конфлікт указує вихідний шлях і наявну ціль. Для кожного елемента вирішіть, чи потрібно пропустити його, відредагувати ціль або повторно запустити з `--overwrite`.
|
||||
</Accordion>
|
||||
<Accordion title="Hermes розташований поза ~/.hermes">
|
||||
Передайте `--from /actual/path` (CLI) або `--import-source /actual/path` (онбординг).
|
||||
Передайте `--from /actual/path` (CLI) або `--import-source /actual/path` (початкове налаштування).
|
||||
</Accordion>
|
||||
<Accordion title="Онбординг відмовляється імпортувати в наявному налаштуванні">
|
||||
Імпорт через онбординг потребує нового налаштування. Або скиньте стан і пройдіть онбординг знову, або використайте `openclaw migrate apply hermes` безпосередньо, що підтримує `--overwrite` і явне керування резервними копіями.
|
||||
<Accordion title="Початкове налаштування відмовляється імпортувати в наявне налаштування">
|
||||
Імпорт через початкове налаштування потребує свіжого налаштування. Або скиньте стан і знову пройдіть початкове налаштування, або безпосередньо використайте `openclaw migrate apply hermes`, що підтримує `--overwrite` і явне керування резервними копіями.
|
||||
</Accordion>
|
||||
<Accordion title="Ключі API не було імпортовано">
|
||||
<Accordion title="Ключі API не імпортувалися">
|
||||
Потрібен `--include-secrets`, і розпізнаються лише перелічені вище ключі. Інші змінні в `.env` ігноруються.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Пов’язано
|
||||
## Пов’язане
|
||||
|
||||
- [`openclaw migrate`](/uk/cli/migrate): повний довідник CLI, контракт Plugin і форми JSON.
|
||||
- [Онбординг](/uk/cli/onboard): процес майстра та неінтерактивні прапорці.
|
||||
- [Міграція](/uk/install/migrating): перенесення встановлення OpenClaw між машинами.
|
||||
- [Doctor](/uk/gateway/doctor): перевірка стану після міграції.
|
||||
- [Робочий простір агента](/uk/concepts/agent-workspace): де розташовані `SOUL.md`, `AGENTS.md` і файли пам’яті.
|
||||
- [Початкове налаштування](/uk/cli/onboard): сценарій майстра та неінтерактивні прапорці.
|
||||
- [Міграція](/uk/install/migrating): перенесення інсталяції OpenClaw між машинами.
|
||||
- [Doctor](/uk/gateway/doctor): перевірка працездатності після міграції.
|
||||
- [Workspace агента](/uk/concepts/agent-workspace): де розташовані `SOUL.md`, `AGENTS.md` і файли пам’яті.
|
||||
|
||||
@ -2,13 +2,13 @@
|
||||
read_when:
|
||||
- Оновлення OpenClaw
|
||||
- Щось ламається після оновлення
|
||||
summary: Безпечне оновлення OpenClaw (глобальне встановлення або вихідний код), а також стратегія відкату
|
||||
summary: Безпечне оновлення OpenClaw (глобальне встановлення або з вихідного коду), а також стратегія відкату
|
||||
title: Оновлення
|
||||
x-i18n:
|
||||
generated_at: "2026-04-27T04:37:14Z"
|
||||
generated_at: "2026-04-27T08:25:05Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: d5a6150b3e17e7e2902d5395aed8333c0137c7d67f10c699cb45b1380ffe2b3a
|
||||
source_hash: 6a509edaeb31b65f11d6dfe8656f8d415565fa4e0ea0cb6945b7cff2958bd70d
|
||||
source_path: install/updating.md
|
||||
workflow: 15
|
||||
---
|
||||
@ -17,13 +17,13 @@ x-i18n:
|
||||
|
||||
## Рекомендовано: `openclaw update`
|
||||
|
||||
Найшвидший спосіб оновлення. Він визначає тип вашого встановлення (npm або git), отримує найновішу версію, запускає `openclaw doctor` і перезапускає Gateway.
|
||||
Найшвидший спосіб оновлення. Команда визначає тип вашого встановлення (npm або git), отримує найновішу версію, запускає `openclaw doctor` і перезапускає Gateway.
|
||||
|
||||
```bash
|
||||
openclaw update
|
||||
```
|
||||
|
||||
Щоб перемкнути канали або націлитися на конкретну версію:
|
||||
Щоб перемкнути канал або вказати конкретну версію:
|
||||
|
||||
```bash
|
||||
openclaw update --channel beta
|
||||
@ -32,14 +32,13 @@ openclaw update --tag main
|
||||
openclaw update --dry-run # попередній перегляд без застосування
|
||||
```
|
||||
|
||||
`--channel beta` надає перевагу beta, але середовище виконання повертається до stable/latest, якщо тег beta відсутній або старіший за найновіший стабільний реліз. Використовуйте `--tag beta`,
|
||||
якщо вам потрібен сирий npm beta dist-tag для разового оновлення пакета.
|
||||
`--channel beta` віддає перевагу beta, але середовище виконання повертається до stable/latest, якщо тег beta відсутній або старіший за найновіший stable-реліз. Використовуйте `--tag beta`, якщо вам потрібен сирий npm dist-tag beta для одноразового оновлення пакета.
|
||||
|
||||
Семантику каналів див. у [Канали розробки](/uk/install/development-channels).
|
||||
|
||||
## Перемикання між встановленнями npm і git
|
||||
|
||||
Використовуйте канали, коли хочете змінити тип встановлення. Засіб оновлення зберігає ваш
|
||||
Використовуйте канали, якщо хочете змінити тип встановлення. Засіб оновлення зберігає ваші
|
||||
стан, конфігурацію, облікові дані та робочий простір у `~/.openclaw`; він лише змінює,
|
||||
яке встановлення коду OpenClaw використовують CLI та Gateway.
|
||||
|
||||
@ -51,7 +50,7 @@ openclaw update --channel dev
|
||||
openclaw update --channel stable
|
||||
```
|
||||
|
||||
Спочатку запускайте з `--dry-run`, щоб переглянути точне перемикання режиму встановлення:
|
||||
Спочатку запустіть із `--dry-run`, щоб переглянути точне перемикання режиму встановлення:
|
||||
|
||||
```bash
|
||||
openclaw update --channel dev --dry-run
|
||||
@ -59,28 +58,29 @@ openclaw update --channel stable --dry-run
|
||||
```
|
||||
|
||||
Канал `dev` забезпечує git checkout, збирає його та встановлює глобальний CLI
|
||||
з цього checkout. Канали `stable` і `beta` використовують встановлення пакетів. Якщо
|
||||
Gateway уже встановлено, `openclaw update` оновлює метадані сервісу та перезапускає його, якщо ви не передасте `--no-restart`.
|
||||
із цього checkout. Канали `stable` і `beta` використовують встановлення пакетів. Якщо
|
||||
Gateway уже встановлено, `openclaw update` оновлює метадані служби
|
||||
та перезапускає її, якщо ви не передасте `--no-restart`.
|
||||
|
||||
## Альтернатива: повторно запустити інсталятор
|
||||
## Альтернатива: повторно запустіть інсталятор
|
||||
|
||||
```bash
|
||||
curl -fsSL https://openclaw.ai/install.sh | bash
|
||||
```
|
||||
|
||||
Додайте `--no-onboard`, щоб пропустити онбординг. Щоб примусово вибрати конкретний тип встановлення через
|
||||
Додайте `--no-onboard`, щоб пропустити початкове налаштування. Щоб примусово вибрати конкретний тип встановлення через
|
||||
інсталятор, передайте `--install-method git --no-onboard` або
|
||||
`--install-method npm --no-onboard`.
|
||||
|
||||
Якщо `openclaw update` завершується з помилкою після етапу встановлення npm package, повторно запустіть
|
||||
інсталятор. Інсталятор не викликає старий засіб оновлення; він напряму виконує встановлення глобального
|
||||
пакета й може відновити частково оновлене npm-встановлення.
|
||||
Якщо `openclaw update` завершується помилкою після етапу встановлення npm package, повторно запустіть
|
||||
інсталятор. Інсталятор не викликає старий засіб оновлення; він безпосередньо запускає глобальне
|
||||
встановлення package і може відновити частково оновлене встановлення npm.
|
||||
|
||||
```bash
|
||||
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npm
|
||||
```
|
||||
|
||||
Щоб прив’язати відновлення до конкретної версії або dist-tag, додайте `--version`:
|
||||
Щоб зафіксувати відновлення на конкретній версії або dist-tag, додайте `--version`:
|
||||
|
||||
```bash
|
||||
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npm --version <version-or-dist-tag>
|
||||
@ -92,10 +92,10 @@ curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npm --ve
|
||||
npm i -g openclaw@latest
|
||||
```
|
||||
|
||||
Коли `openclaw update` керує глобальним npm-встановленням, він спочатку виконує звичайну
|
||||
Коли `openclaw update` керує глобальним встановленням npm, воно спочатку запускає звичайну
|
||||
команду глобального встановлення. Якщо ця команда завершується помилкою, OpenClaw повторює спробу один раз із
|
||||
`--omit=optional`. Ця повторна спроба допомагає на хостах, де нативні необов’язкові залежності
|
||||
не можуть бути скомпільовані, водночас зберігаючи видимою початкову помилку, якщо запасний варіант також
|
||||
`--omit=optional`. Ця повторна спроба допомагає на хостах, де нативні optional dependencies
|
||||
не можуть бути скомпільовані, зберігаючи видимою початкову помилку, якщо запасний варіант також
|
||||
завершиться невдачею.
|
||||
|
||||
```bash
|
||||
@ -110,36 +110,43 @@ bun add -g openclaw@latest
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Дерево пакетів лише для читання">
|
||||
OpenClaw розглядає упаковані глобальні встановлення як доступні лише для читання під час виконання, навіть якщо каталог глобального пакета доступний для запису поточному користувачу. Залежності середовища виконання для вбудованих Plugin розміщуються в доступному для запису каталозі середовища виконання замість зміни дерева пакетів. Це запобігає ситуаціям, коли `openclaw update` конфліктує з запущеним Gateway або локальним агентом, який відновлює залежності Plugin під час того самого встановлення.
|
||||
OpenClaw розглядає глобальні встановлення пакетів як доступні лише для читання під час виконання, навіть якщо каталог глобальних пакетів доступний для запису поточному користувачу. Залежності середовища виконання вбудованих Plugin розміщуються в доступному для запису каталозі середовища виконання замість зміни дерева пакетів. Це не дає `openclaw update` конфліктувати з запущеним Gateway або локальним агентом, який відновлює залежності Plugin під час того самого встановлення.
|
||||
|
||||
Деякі конфігурації npm у Linux встановлюють глобальні пакети в каталоги, що належать root, наприклад `/usr/lib/node_modules/openclaw`. OpenClaw підтримує таку схему через той самий зовнішній шлях staging.
|
||||
Деякі конфігурації npm у Linux встановлюють глобальні пакети в каталоги, що належать root, наприклад `/usr/lib/node_modules/openclaw`. OpenClaw підтримує таку схему через той самий зовнішній шлях розміщення.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Посилені systemd-юніти">
|
||||
Вкажіть каталог staging, доступний для запису, який включено до `ReadWritePaths`:
|
||||
<Accordion title="Посилені systemd unit">
|
||||
Вкажіть доступний для запису каталог staging, який входить до `ReadWritePaths`:
|
||||
|
||||
```ini
|
||||
Environment=OPENCLAW_PLUGIN_STAGE_DIR=/var/lib/openclaw/plugin-runtime-deps
|
||||
ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmp
|
||||
```
|
||||
|
||||
Якщо `OPENCLAW_PLUGIN_STAGE_DIR` не задано, OpenClaw використовує `$STATE_DIRECTORY`, якщо його надає systemd, а потім повертається до `~/.openclaw/plugin-runtime-deps`. Крок відновлення розглядає цей staging як локальний корінь пакета, що належить OpenClaw, і ігнорує користувацький npm prefix та глобальні налаштування, тому конфігурація npm для глобального встановлення не перенаправляє залежності середовища виконання вбудованих Plugin у `~/node_modules` або дерево глобального пакета.
|
||||
`OPENCLAW_PLUGIN_STAGE_DIR` також приймає список шляхів. OpenClaw розв’язує залежності середовища виконання вбудованих Plugin зліва направо по вказаних коренях, розглядає ранні корені як попередньо встановлені шари лише для читання та встановлює або відновлює залежності лише в останній корінь, доступний для запису:
|
||||
|
||||
```ini
|
||||
Environment=OPENCLAW_PLUGIN_STAGE_DIR=/opt/openclaw/plugin-runtime-deps:/var/lib/openclaw/plugin-runtime-deps
|
||||
ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmp
|
||||
```
|
||||
|
||||
Якщо `OPENCLAW_PLUGIN_STAGE_DIR` не задано, OpenClaw використовує `$STATE_DIRECTORY`, коли його надає systemd, а потім повертається до `~/.openclaw/plugin-runtime-deps`. Крок відновлення розглядає цей staging як локальний корінь пакетів, яким володіє OpenClaw, і ігнорує користувацькі налаштування npm prefix та global, тому конфігурація npm для глобального встановлення не перенаправляє залежності середовища виконання вбудованих Plugin до `~/node_modules` або дерева глобальних пакетів.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Попередня перевірка вільного місця на диску">
|
||||
Перед оновленням пакетів і відновленням вбудованих залежностей середовища виконання OpenClaw намагається виконати перевірку вільного місця на цільовому томі в режимі best-effort. Нестача місця призводить до попередження з перевіреним шляхом, але не блокує оновлення, оскільки квоти файлової системи, знімки та мережеві томи можуть змінитися після перевірки. Фактичні встановлення npm, копіювання та перевірка після встановлення залишаються остаточним джерелом істини.
|
||||
<Accordion title="Попередня перевірка дискового простору">
|
||||
Перед оновленнями пакетів і відновленням вбудованих залежностей середовища виконання OpenClaw намагається виконати best-effort перевірку дискового простору для цільового тому. Нестача місця призводить до попередження з перевіреним шляхом, але не блокує оновлення, оскільки квоти файлової системи, знімки та мережеві томи можуть змінитися після перевірки. Фактичні `npm install`, копіювання та перевірка після встановлення залишаються визначальними.
|
||||
</Accordion>
|
||||
<Accordion title="Залежності середовища виконання вбудованих Plugin">
|
||||
Упаковані встановлення зберігають залежності середовища виконання вбудованих Plugin поза деревом пакетів лише для читання. Під час запуску та під час `openclaw doctor --fix` OpenClaw відновлює залежності середовища виконання лише для тих вбудованих Plugin, які активні в конфігурації, активні через застарілу конфігурацію каналу або увімкнені за типовим значенням у їхньому вбудованому маніфесті. Лише збережений стан автентифікації каналу сам по собі не запускає відновлення залежностей середовища виконання під час запуску Gateway.
|
||||
У пакетних встановленнях залежності середовища виконання вбудованих Plugin зберігаються поза деревом пакетів лише для читання. Під час запуску та виконання `openclaw doctor --fix` OpenClaw відновлює залежності середовища виконання лише для тих вбудованих Plugin, які активні в конфігурації, активні через застарілу конфігурацію каналу або ввімкнені типовим значенням у їхньому вбудованому маніфесті. Сам по собі збережений стан автентифікації каналу не запускає відновлення залежностей середовища виконання під час запуску Gateway.
|
||||
|
||||
Явне вимкнення має пріоритет. Для вимкненого Plugin або каналу залежності середовища виконання не відновлюються лише тому, що він існує в пакеті. Зовнішні Plugin і користувацькі шляхи завантаження, як і раніше, використовують `openclaw plugins install` або `openclaw plugins update`.
|
||||
Явне вимкнення має пріоритет. Для вимкненого Plugin або каналу його залежності середовища виконання не відновлюються лише тому, що він існує в пакеті. Зовнішні Plugin і власні шляхи завантаження, як і раніше, використовують `openclaw plugins install` або `openclaw plugins update`.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Автооновлювач
|
||||
|
||||
Автооновлювач вимкнено за замовчуванням. Увімкніть його в `~/.openclaw/openclaw.json`:
|
||||
Автооновлювач вимкнений за замовчуванням. Увімкніть його в `~/.openclaw/openclaw.json`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -156,12 +163,12 @@ bun add -g openclaw@latest
|
||||
```
|
||||
|
||||
| Канал | Поведінка |
|
||||
| ------ | -------------------------------------------------------------------------------------------------------------- |
|
||||
| `stable` | Очікує `stableDelayHours`, потім застосовує з детермінованим jitter у межах `stableJitterHours` (розтягнуте розгортання). |
|
||||
| -------- | ------------------------------------------------------------------------------------------------------------- |
|
||||
| `stable` | Очікує `stableDelayHours`, а потім застосовує з детермінованим зміщенням у межах `stableJitterHours` (поступове розгортання). |
|
||||
| `beta` | Перевіряє кожні `betaCheckIntervalHours` (типово: щогодини) і застосовує негайно. |
|
||||
| `dev` | Автоматичне застосування відсутнє. Використовуйте `openclaw update` вручну. |
|
||||
| `dev` | Автоматичне застосування відсутнє. Використовуйте `openclaw update` вручну. |
|
||||
|
||||
Gateway також журналює підказку про оновлення під час запуску (вимкнути можна через `update.checkOnStart: false`).
|
||||
Gateway також записує підказку про оновлення під час запуску (вимкнути можна через `update.checkOnStart: false`).
|
||||
|
||||
## Після оновлення
|
||||
|
||||
@ -173,7 +180,7 @@ Gateway також журналює підказку про оновлення
|
||||
openclaw doctor
|
||||
```
|
||||
|
||||
Мігрує конфігурацію, перевіряє політики DM та стан Gateway. Докладніше: [Doctor](/uk/gateway/doctor)
|
||||
Виконує міграцію конфігурації, аудит політик DM і перевіряє стан Gateway. Докладніше: [Doctor](/uk/gateway/doctor)
|
||||
|
||||
### Перезапустіть Gateway
|
||||
|
||||
@ -203,7 +210,7 @@ openclaw gateway restart
|
||||
`npm view openclaw version` показує поточну опубліковану версію.
|
||||
</Tip>
|
||||
|
||||
### Зафіксувати commit (source)
|
||||
### Зафіксувати коміт (вихідний код)
|
||||
|
||||
```bash
|
||||
git fetch origin
|
||||
@ -217,12 +224,12 @@ openclaw gateway restart
|
||||
## Якщо ви застрягли
|
||||
|
||||
- Знову запустіть `openclaw doctor` і уважно прочитайте вивід.
|
||||
- Для `openclaw update --channel dev` у source checkout засіб оновлення автоматично завантажує `pnpm`, коли це потрібно. Якщо ви бачите помилку bootstrap `pnpm/corepack`, установіть `pnpm` вручну (або знову увімкніть `corepack`) і повторно запустіть оновлення.
|
||||
- Див.: [Усунення несправностей](/uk/gateway/troubleshooting)
|
||||
- Для `openclaw update --channel dev` у checkout вихідного коду засіб оновлення автоматично завантажує `pnpm`, коли це потрібно. Якщо ви бачите помилку bootstrap `pnpm`/`corepack`, установіть `pnpm` вручну (або знову ввімкніть `corepack`) і повторно запустіть оновлення.
|
||||
- Перевірте: [Усунення несправностей](/uk/gateway/troubleshooting)
|
||||
- Запитайте в Discord: [https://discord.gg/clawd](https://discord.gg/clawd)
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Огляд встановлення](/uk/install): усі методи встановлення.
|
||||
- [Огляд встановлення](/uk/install): усі способи встановлення.
|
||||
- [Doctor](/uk/gateway/doctor): перевірки стану після оновлень.
|
||||
- [Міграція](/uk/install/migrating): посібники з міграції для основних версій.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user