Maintenance
Обновление
Поддерживайте OpenClaw в актуальном состоянии.
О замене образов Docker, Podman и Kubernetes см. Обновление образов контейнеров. Перед переходом в состояние готовности Gateway выполняет безопасные при запуске операции обновления и завершает работу, если подключённое состояние требует ручного исправления.
Рекомендуется: openclaw update
Определяет тип установки (npm, pnpm, Bun или git), загружает последнюю версию, запускает openclaw doctor и перезапускает Gateway.
openclaw updateПереключение каналов или выбор конкретной версии:
openclaw update --channel betaopenclaw update --channel extended-stableopenclaw update --channel devopenclaw update --dry-run # предварительный просмотр без примененияУ openclaw update нет флага --verbose (у установщика он есть). Для диагностики используйте
--dry-run, чтобы предварительно просмотреть запланированные действия, --json для структурированных результатов или
openclaw update status --json, чтобы проверить состояние канала и доступности.
--channel beta предпочитает npm dist-tag beta, но использует stable/latest,
если тег beta отсутствует или его версия старее последнего стабильного
выпуска. Вместо этого используйте --tag beta для однократного обновления пакета,
закреплённого непосредственно за npm dist-tag beta.
--channel extended-stable работает только с пакетами, а установка по-прежнему
выполняется только на переднем плане. OpenClaw считывает общедоступный селектор npm extended-stable,
проверяет выбранный точный пакет и устанавливает именно эту версию. При отсутствии
или несогласованности данных реестра операция завершается с ошибкой; переход к latest никогда не выполняется.
Если выбранная версия старее установленной, по-прежнему применяется обычное
подтверждение понижения версии. После успешного обновления ядра CLI сохраняет канал;
прямой вызов npm install -g openclaw@extended-stable
не обновляет update.channel.
После замены ядра подходящие официальные npm-плагины с обычным/стандартным
намерением или намерением latest переходят на ту же точную версию ядра. Точные закрепления и явно заданные
теги, отличные от latest, сторонние плагины и источники, отличные от npm, остаются без изменений.
Установки из каталога, созданные текущими версиями OpenClaw, сохраняют это стандартное
намерение. Более старые записи, содержащие только точную версию, остаются закреплёнными, поскольку
OpenClaw не может безопасно отличить старое автоматическое закрепление от пользовательского; однократно выполните
openclaw plugins update @openclaw/name в канале extended-stable,
чтобы снова включить для этого плагина отслеживание точной версии ядра.
--channel dev предоставляет постоянно обновляемую рабочую копию GitHub main. Для однократного
обновления пакета --tag main сопоставляется со спецификацией пакета github:openclaw/openclaw#main
и устанавливается напрямую через целевой менеджер пакетов (npm/pnpm/bun).
Для управляемых плагинов отсутствие бета-выпуска считается предупреждением, а не ошибкой: обновление ядра всё равно может завершиться успешно, а плагин вернётся к записанному стандартному/последнему выпуску.
Семантика каналов описана в разделе Каналы выпусков.
Переключение между установками npm и git
Используйте каналы для изменения типа установки. Средство обновления сохраняет состояние, конфигурацию,
учётные данные и рабочее пространство в ~/.openclaw; изменяется только установка кода OpenClaw,
которую используют CLI и Gateway.
# установка пакета npm -> редактируемая рабочая копия gitopenclaw update --channel dev # рабочая копия git -> установка пакета npmopenclaw update --channel stableСначала предварительно просмотрите переключение режима установки:
openclaw update --channel dev --dry-runopenclaw update --channel stable --dry-rundev обеспечивает наличие рабочей копии git, собирает её и устанавливает из неё глобальный CLI.
Каналы stable, extended-stable и beta используют установки
пакетов. Канал extended-stable отклоняется для рабочей копии git без её изменения или
преобразования. Если Gateway уже установлен, openclaw update обновляет
метаданные службы и перезапускает её, если не передан --no-restart.
Для установок пакетов с управляемой службой Gateway openclaw update использует
корень пакета этой службы. Если команда оболочки openclaw относится
к другой установке, средство обновления выводит оба корневых пути и путь Node
управляемой службы, а также проверяет эту версию Node на соответствие требованию
engines.node целевого выпуска перед заменой пакета.
Альтернативный вариант: повторный запуск установщика
curl -fsSL https://openclaw.ai/install.sh | bashДобавьте --no-onboard, чтобы пропустить первоначальную настройку. Чтобы принудительно выбрать тип установки, передайте
--install-method git --no-onboard или --install-method npm --no-onboard.
Если openclaw update завершается ошибкой после этапа установки пакета npm, повторно запустите
установщик. Он не вызывает средство обновления, а напрямую выполняет глобальную установку
пакета и может восстановить частично обновлённую установку npm.
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npmЧтобы закрепить восстановление за конкретной версией или dist-tag, используйте --version:
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npm --version <version-or-dist-tag>Альтернативный вариант: ручное обновление через npm, pnpm или bun
npm i -g openclaw@latestДля установок под управлением службы предпочтительно использовать openclaw update: эта команда может согласовать замену пакета
с работающей службой Gateway. При ручном обновлении такой установки
сначала остановите управляемый Gateway. Менеджеры пакетов заменяют файлы
на месте, поэтому работающий Gateway иначе может попытаться загрузить файлы ядра или плагина
в процессе замены. После завершения работы менеджера пакетов перезапустите Gateway, чтобы он подхватил
новую установку.
Если при общесистемной глобальной установке Linux, принадлежащей root, openclaw update завершается
ошибкой EACCES, выполните восстановление с помощью системного npm, оставив Gateway остановленным на время
ручной замены. Используйте те же флаги профиля и переменные окружения, которые обычно применяются для
этого Gateway. Замените /usr/bin/npm на системный npm, которому принадлежит
глобальный префикс root на вашем хосте:
openclaw gateway stopsudo /usr/bin/npm i -g openclaw@latestopenclaw gateway install --forceopenclaw gateway restartЗатем выполните проверку:
openclaw --versioncurl -fsS http://127.0.0.1:18789/readyzopenclaw plugins list --jsonopenclaw gateway status --deep --jsonopenclaw doctor --lint --jsonКогда openclaw update управляет глобальной установкой npm, целевая версия
сначала устанавливается во временный префикс npm. Пакет-кандидат проверяет версию
Node на хосте во время preinstall; только после этого OpenClaw проверяет упакованный
перечень dist и заменяет чистым деревом пакета содержимое реального глобального префикса. Защитный файл завершения упаковки исключается из ожидаемого перечня и удаляется только
после успешного выполнения preinstall, поэтому пропуск сценариев жизненного цикла также приводит к ошибке до
замены. В npm 12 и новее средство обновления разрешает только жизненный цикл пакета-кандидата OpenClaw;
сценарии транзитивных зависимостей остаются заблокированными. Это предотвращает
наложение нового пакета npm на устаревшие файлы старого пакета. Если команда установки
завершается ошибкой, OpenClaw повторяет её один раз с --omit=optional, что помогает на хостах,
где нативные необязательные зависимости невозможно скомпилировать.
Команды обновления npm и плагинов, управляемые OpenClaw, также отключают для дочернего процесса npm
карантин цепочки поставок min-release-age (или более старый ключ конфигурации before).
Эта политика предназначена для общей защиты, но явное обновление OpenClaw означает
«установить выбранный выпуск сейчас».
pnpm add -g openclaw@latestЕсли pnpm 11 установил OpenClaw 2026.7.1, выполните эту команду вручную один раз. Этот выпуск предшествует изолированной структуре глобальных пакетов pnpm 11, поэтому его средство обновления может ошибочно принять другую установку npm за работающий CLI. Более поздние выпуски сохраняют принадлежность pnpm и при обновлении следуют за корнем заменяемого пакета. Они также используют сообщаемый управляющим менеджером глобальный каталог исполняемых файлов и прекращают работу до внесения изменений, если доступная команда pnpm сообщает другой глобальный корень или основную версию, либо если вызывающий пакет потерял связь с менеджером или не является единственной активной установкой OpenClaw в этом каталоге.
Если OpenClaw входит в одну глобальную группу установки pnpm 11 с другим пакетом, автоматическое средство обновления прекращает работу до изменения группы. Обновите исходную группу, разделённую запятыми, вручную, чтобы сохранить связанные пакеты и политику сборки без изменений.
bun add -g openclaw@latestРасширенные вопросы установки npm
Дерево пакетов только для чтения
OpenClaw считает упакованные глобальные установки доступными только для чтения во время выполнения, даже если текущий пользователь может записывать в глобальный каталог пакетов. Установки пакетов плагинов размещаются в принадлежащих OpenClaw корнях npm/git в каталоге пользовательской конфигурации, а запуск Gateway не изменяет дерево пакетов OpenClaw.
В некоторых конфигурациях npm для Linux глобальные пакеты устанавливаются в принадлежащие root каталоги, например /usr/lib/node_modules/openclaw. OpenClaw поддерживает такую структуру, поскольку команды установки и обновления плагинов записывают данные за пределами этого глобального каталога пакетов.
Усиленно защищённые модули systemd
Предоставьте OpenClaw доступ на запись к корням конфигурации и состояния, чтобы явные установки плагинов, обновления плагинов и очистка с помощью doctor могли сохранять свои изменения:
ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmpПредварительная проверка места на диске
Перед обновлениями пакетов и явными установками плагинов OpenClaw пытается выполнить предварительную проверку свободного места на целевом томе. Недостаток места вызывает предупреждение с указанием проверенного пути, но не блокирует обновление, поскольку квоты файловой системы, снимки и сетевые тома могут измениться после проверки. Определяющими остаются фактическая установка менеджером пакетов и проверка после установки.
Автоматическое обновление
По умолчанию отключено. Включите его в ~/.openclaw/openclaw.json:
{ update: { channel: "stable", auto: { enabled: true, stableDelayHours: 6, stableJitterHours: 12, betaCheckIntervalHours: 1, }, },}| Канал | Поведение |
|---|---|
stable |
Ожидает stableDelayHours (по умолчанию: 6), затем применяет обновление с детерминированным разбросом в пределах stableJitterHours (по умолчанию: 12) для распределённого развёртывания. |
extended-stable |
Проверяет наличие уведомления об обновлении только для чтения при запуске и каждые 24 часа, когда включён checkOnStart. Никогда не применяет обновление автоматически. |
beta |
Выполняет проверку каждые betaCheckIntervalHours (по умолчанию: 1) и применяет обновление немедленно. |
dev |
Автоматическое применение отсутствует. Используйте openclaw update вручную. |
Gateway также записывает уведомление об обновлении в журнал при запуске (отключается с помощью
update.checkOnStart: false). Для сохранённых вариантов extended-stable используется этот
путь уведомления только для чтения и существующий 24-часовой интервал уведомлений, но никогда не запускаются
автоматическая установка, передача управления, перезапуск, стабильная задержка/разброс или опрос бета-версий.
Для понижения версии или восстановления после инцидента задайте OPENCLAW_NO_AUTO_UPDATE=1 в окружении Gateway, чтобы блокировать автоматическое применение, даже если настроен update.auto.enabled. Уведомления об обновлениях при запуске по-прежнему могут выполняться, если также не отключён update.checkOnStart.
Обновления менеджера пакетов, запрошенные через активную плоскость управления Gateway
(update.run), не заменяют дерево пакетов внутри работающего процесса Gateway.
В установках с управляемой службой Gateway запускает отсоединённую передачу управления,
завершает работу и позволяет обычному пути CLI openclaw update --yes --json остановить
службу, заменить пакет, обновить метаданные службы, перезапустить её, проверить
версию и доступность Gateway и по возможности восстановить установленный, но не загруженный macOS
LaunchAgent. Если Gateway не может безопасно выполнить такую передачу управления,
update.run сообщает безопасную команду оболочки вместо запуска менеджера
пакетов внутри процесса.
На карточке обновления боковой панели интерфейса управления отображается Обновить Gateway, если она напрямую запускает этот процесс
update.run. Это относится к интерфейсу управления в браузере, удалённым
Gateway и локальным Gateway с ручным управлением.
В подписанном приложении для macOS для локального Gateway, управляемого приложением, текст этой карточки меняется на
Обновить приложение Mac и Gateway. Sparkle сначала обновляет приложение; после перезапуска
приложение выполняет openclaw update --tag <app-version> --json, перезапускает свой Gateway
и проверяет его работоспособность в окне хода выполнения, аналогичном окну настройки. Это окно появляется, только
когда управляемому Gateway требуется обновление, восстановление или установка; при обновлении только приложения
оно перезапускается непосредственно в приложение. Сведения об ошибке остаются видимыми вместе с действиями «Повторить», Руководство по обновлению и
Discord. Приложение никогда не использует этот согласованный
процесс для удалённого Gateway или Gateway с внешним управлением, никогда не понижает версию более нового
Gateway и никогда не переопределяет закрепление канала extended-stable.
После успешного обновления приложение ставит в очередь однократное событие приветствия для самого недавнего прямого сеанса верхнего уровня с реальным взаимодействием пользователя или канала. Запуски Cron, Heartbeat и фоновые обновления сеансов не влияют на этот выбор. В удалённом режиме приложение обновляет только среду выполнения локального узла Mac и отправляет событие, только если подключённый удалённый Gateway имеет версию не старше версии приложения.
После обновления
Запустите doctor
openclaw doctorПереносит конфигурацию, проверяет политики личных сообщений и работоспособность Gateway. Подробнее: Doctor
Перезапустите Gateway
openclaw gateway restartВыполните проверку
openclaw healthОткат
Откат выполняется на двух уровнях:
- Переустановите более старый код OpenClaw, сохранив текущее состояние.
- Восстанавливайте состояние до обновления, только если более старый код не может использовать перенесённую конфигурацию или базу данных.
Начните с отката только кода. При восстановлении состояния изменения, внесённые после создания резервной копии, будут потеряны.
Перед обновлением: создайте проверенную резервную копию
openclaw update сохраняет автоматическую копию конфигурации перед обновлением, но не
создаёт полную точку восстановления состояния. Перед значительным обновлением создайте её
явно:
mkdir -p ~/Backups/openclawopenclaw backup create --output ~/Backups/openclaw --verifyВ манифесте архива записываются версия OpenClaw и исходные пути, включённые в резервную копию. Архив может содержать учётные данные, профили аутентификации и состояние каналов, поэтому храните его с разрешениями только для владельца и защищайте так же, как каталог рабочего состояния. Сведения о включённых и намеренно исключённых файлах см. в разделе Резервное копирование.
Чтобы создать побайтовую точку восстановления, включающую изменчивые артефакты, исключённые из переносимого архива, остановите Gateway и используйте снимок файловой системы, тома или виртуальной машины, предоставляемый вашей платформой.
Откат установки пакета
Выведите список опубликованных версий, затем выполните предварительный просмотр и установите заведомо исправную версию:
npm view openclaw versions --jsonopenclaw update --tag <known-good-version> --dry-runopenclaw update --tag <known-good-version>openclaw update --tag предпочтительнее прямой установки через менеджер пакетов. Эта команда
обнаруживает понижение версии, запрашивает подтверждение, выполняет управляемое согласование плагинов
и проверки совместимости с установленной целевой версией, обновляет метаданные
службы, перезапускает Gateway и проверяет запущенную версию. Если сохранённый
канал — extended-stable, используйте
--channel stable --tag <known-good-version>, поскольку точные одноразовые теги нельзя
сочетать с селектором extended-stable.
При обновлении пакета кандидат сначала подготавливается и проверяется перед активацией. Если не удаётся заменить содержимое файловой системы или командный прокси-файл, OpenClaw автоматически восстанавливает старый пакет. Если после успешной замены последующая проверка работоспособности Gateway завершается ошибкой, выводятся предыдущая версия и инструкции по ручному откату вместо повторной автоматической замены пакета.
Если обновление через CLI недоступно, используйте тот же менеджер пакетов и ту же область установки, которым принадлежит текущий Gateway:
openclaw gateway stopnpm i -g openclaw@<known-good-version>openclaw gateway install --forceopenclaw gateway restartЗамените npm на pnpm или bun, если установка принадлежит соответствующему менеджеру. Во время
восстановления после инцидента предотвратите немедленную установку
более нового выпуска включённым средством автоматического обновления, задав OPENCLAW_NO_AUTO_UPDATE=1 в окружении Gateway.
Откат рабочей копии исходного кода
Используйте чистую рабочую копию и выберите заведомо исправный тег или коммит:
git fetch --all --tagsgit checkout --detach <known-good-tag-or-commit>pnpm install && pnpm buildopenclaw gateway restartЧтобы вернуться к последней версии: git checkout main && git pull.
Средство обновления автоматически возвращает рабочую копию Git к предыдущей ветке и SHA, если после начала обновления Git завершается ошибкой установка зависимостей, сборка, сборка интерфейса или doctor. Ручное переключение рабочей копии всё равно требуется, если более старый коммит выбран намеренно.
Понижение версии после переноса сеансов в SQLite
Перед запуском более старого выпуска OpenClaw с файловым хранилищем используйте текущий CLI, чтобы восстановить архивные артефакты прежних расшифровок:
openclaw gateway stopopenclaw doctor --session-sqlite restore --session-sqlite-all-agentsПри этом данные SQLite не удаляются. Сеансы, созданные после переноса в SQLite, существуют только в SQLite и не будут видны в более старой среде выполнения. См. Понижение версии после переноса сеансов в SQLite.
Восстанавливайте состояние только при необходимости
Если более старый код не может прочитать более новую конфигурацию или схему базы данных, остановите Gateway и восстановите проверенный снимок файловой системы, тома или виртуальной машины, созданный до обновления. Перед восстановлением отдельно сохраните текущее состояние, поскольку при этом удаляются изменения, внесённые после создания снимка.
Обширные архивы openclaw backup create поддерживают создание и проверку, но
не активацию всего архива на месте. Извлеките обширный архив в промежуточный
каталог и используйте его сопоставление источников с архивом manifest.json для автономного
восстановления. Аналогично, openclaw backup sqlite restore записывает проверенную базу данных
в новую целевую папку; активация этой папки остаётся явным автономным действием
оператора.
Проверьте откат
openclaw --versionopenclaw healthopenclaw plugins list --jsonopenclaw gateway status --deep --jsonopenclaw doctor --lint --jsonЕсли возникли затруднения
- Снова запустите
openclaw doctorи внимательно прочитайте вывод. - Для
openclaw update --channel devв рабочих копиях исходного кода средство обновления при необходимости автоматически подготавливаетpnpm. Если появляется ошибка начальной настройки pnpm/corepack, установитеpnpmвручную (или снова включитеcorepack) и повторите обновление. - Проверьте: Устранение неполадок
- Задайте вопрос в Discord: https://discord.gg/clawd
См. также
- Обзор установки: все способы установки.
- Doctor: проверки работоспособности после обновлений.
- Миграция: руководства по миграции между основными версиями.