Обслуживание

Обновление

OpenClaw развивается быстро (до версии "1.0"). Относитесь к обновлениям как к развертыванию инфраструктуры: обновить → запустить проверки → перезапустить (или использовать openclaw update, который выполняет перезапуск) → проверить.

Рекомендуемый способ: повторный запуск установщика с сайта (апгрейд на месте)

Предпочтительный путь обновления — повторный запуск установщика с сайта. Он обнаруживает существующие установки, выполняет обновление на месте и запускает openclaw doctor при необходимости.

curl -fsSL https://openclaw.ai/install.sh | bash

Примечания:

  • Добавьте --no-onboard, если не хотите повторного запуска мастера начальной настройки.

  • Для установки из исходного кода используйте:

    Копировать

    curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git --no-onboard
    

    Установщик выполнит git pull --rebase только если репозиторий чист.

  • Для глобальной установки скрипт использует npm install -g openclaw@latest под капотом.

  • Примечание для совместимости: clawdbot остается доступным как обертка для совместимости.

Перед обновлением

  • Знайте, как вы установили: глобально (npm/pnpm) или из исходного кода (git clone).
  • Знайте, как запущен ваш Шлюз: в терминале на переднем плане или как управляемый сервис (launchd/systemd).
  • Сделайте снимок ваших настроек:
    • Конфигурация: ~/.openclaw/openclaw.json
    • Учетные данные: ~/.openclaw/credentials/
    • Рабочее пространство: ~/.openclaw/workspace

Обновление (глобальная установка)

Глобальная установка (выберите один вариант):

npm i -g openclaw@latest
pnpm add -g openclaw@latest

Мы не рекомендуем использовать Bun для среды выполнения Шлюза (ошибки в WhatsApp/Telegram). Для переключения каналов обновления (установки через git + npm):

openclaw update --channel beta
openclaw update --channel dev
openclaw update --channel stable

Используйте --tag <dist-tag|version> для одноразовой установки определенного тега/версии. См. Каналы разработки для информации о семантике каналов и примечаниях к выпускам. Примечание: при установке через npm шлюз логирует подсказку об обновлении при запуске (проверяет тег текущего канала). Отключите через update.checkOnStart: false.

Встроенный автообновлятель (опционально)

Автообновление отключено по умолчанию и является встроенной функцией Шлюза (не плагином).

{
  "update": {
    "channel": "stable",
    "auto": {
      "enabled": true,
      "stableDelayHours": 6,
      "stableJitterHours": 12,
      "betaCheckIntervalHours": 1
    }
  }
}

Поведение:

  • stable: когда обнаружена новая версия, OpenClaw ждет stableDelayHours, а затем применяет детерминированный джиттер для каждой установки в пределах stableJitterHours (постепенное развертывание).
  • beta: проверяет по расписанию betaCheckIntervalHours (по умолчанию: каждый час) и применяет, когда обновление доступно.
  • dev: автоматическое применение отсутствует; используйте ручную команду openclaw update.

Используйте openclaw update --dry-run для предварительного просмотра действий перед включением автоматизации. Затем:

openclaw doctor
openclaw gateway restart
openclaw health

Примечания:

  • Если ваш Шлюз работает как сервис, предпочтительнее использовать openclaw gateway restart, а не завершать процессы по PID.
  • Если вы зафиксированы на конкретной версии, см. раздел "Откат / фиксация версии" ниже.

Обновление (openclaw update)

Для установки из исходного кода (git checkout) предпочтительнее:

openclaw update

Он выполняет безопасный процесс обновления:

  • Требует чистого рабочего дерева.
  • Переключается на выбранный канал (тег или ветку).
  • Выполняет fetch + rebase относительно настроенного апстрима (канал dev).
  • Устанавливает зависимости, собирает проект, собирает Панель управления и запускает openclaw doctor.
  • По умолчанию перезапускает шлюз (используйте --no-restart, чтобы пропустить).

Если вы установили через npm/pnpm (без метаданных git), openclaw update попытается обновиться через ваш менеджер пакетов. Если он не может определить тип установки, используйте способ "Обновление (глобальная установка)".

Обновление (Панель управления / RPC)

В Панели управления есть кнопка Update & Restart (RPC: update.run). Она:

  1. Запускает тот же процесс обновления из исходников, что и openclaw update (только для git checkout).
  2. Записывает сигнальный файл для перезапуска со структурированным отчетом (хвост stdout/stderr).
  3. Перезапускает шлюз и отправляет пинг последней активной сессии с отчетом.

Если rebase завершается неудачей, шлюз прерывает операцию и перезапускается без применения обновления.

Обновление (из исходного кода)

Из локальной копии репозитория: Предпочтительный способ:

openclaw update

Ручной способ (примерно эквивалентный):

git pull
pnpm install
pnpm build
pnpm ui:build # автоматически устанавливает зависимости UI при первом запуске
openclaw doctor
openclaw health

Примечания:

  • pnpm build важен, когда вы запускаете собранный бинарник openclaw (openclaw.mjs) или используете Node для запуска из dist/.
  • Если вы запускаете из клона репозитория без глобальной установки, используйте pnpm openclaw ... для CLI-команд.
  • Если вы запускаете напрямую из TypeScript (pnpm openclaw ...), пересборка обычно не требуется, но миграции конфигурации все равно применяются → запустите doctor.
  • Переключение между глобальной установкой и установкой из git просто: установите другой вариант, затем запустите openclaw doctor, чтобы точка входа сервиса шлюза была переписана под текущую установку.

Всегда запускайте: openclaw doctor

Doctor — это команда "безопасного обновления". Она намеренно простая: исправление + миграция + предупреждения. Примечание: если вы используете установку из исходного кода (git checkout), openclaw doctor предложит сначала запустить openclaw update. Типичные действия:

  • Миграция устаревших ключей конфигурации / устаревших местоположений конфигурационных файлов.
  • Аудит политик DM и предупреждения о рискованных "открытых" настройках.
  • Проверка здоровья Шлюза и предложение перезапустить.
  • Обнаружение и миграция старых сервисов шлюза (launchd/systemd; устаревшие schtasks) в текущие сервисы OpenClaw.
  • На Linux — обеспечение "user lingering" для systemd (чтобы Шлюз переживал выход из системы).

Подробнее: Doctor

Запуск / остановка / перезапуск Шлюза

CLI (работает независимо от ОС):

openclaw gateway status
openclaw gateway stop
openclaw gateway restart
openclaw gateway --port 18789
openclaw logs --follow

Если используется управляющий сервис:

  • macOS launchd (LaunchAgent в составе приложения): launchctl kickstart -k gui/$UID/ai.openclaw.gateway (используйте ai.openclaw.<profile>; устаревшие com.openclaw.* все еще работают)
  • Linux systemd user service: systemctl --user restart openclaw-gateway[-<profile>].service
  • Windows (WSL2): systemctl --user restart openclaw-gateway[-<profile>].service
    • launchctl/systemctl работают только если сервис установлен; иначе запустите openclaw gateway install.

Ранбук и точные метки сервисов: Ранбук Шлюза

Откат / фиксация версии (когда что-то ломается)

Фиксация версии (глобальная установка)

Установите известную рабочую версию (замените <version> на последнюю рабочую):

npm i -g openclaw@<version>
pnpm add -g openclaw@<version>

Совет: чтобы увидеть текущую опубликованную версию, выполните npm view openclaw version. Затем перезапустите и снова запустите doctor:

openclaw doctor
openclaw gateway restart

Фиксация версии (исходный код) по дате

Выберите коммит на определенную дату (пример: "состояние main на 2026-01-01"):

git fetch origin
git checkout "$(git rev-list -n 1 --before=\"2026-01-01\" origin/main)"

Затем переустановите зависимости и перезапустите:

pnpm install
pnpm build
openclaw gateway restart

Если позже захотите вернуться к последней версии:

git checkout main
git pull

Если вы застряли

Bun (Экспериментальный)Руководство по миграции