Урок 7. Ремонт и поддержка OpenClaw
Содержание
- Про что этот урок
- Починка через AI-агента
- Codex Desktop, CLI или Claude Code
- Установка Codex Desktop
- Зачем нужен полный доступ
- Пример: удалённый сервер
- Пример: бот на macOS
- Codex CLI и Claude Code
- Быстрая починка — openclaw doctor
- Одна команда
- Что doctor умеет
- Диагностическая лесенка
- Ежедневная проверка по cron
- Настраиваем через чат
- Что увидишь в Telegram
- Управление через чат
- Если всё совсем сломалось
- Что дальше
Бот может сломаться по разным причинам: обновился OpenClaw и поменялась схема конфига, истёк OAuth-токен у провайдера, упал плагин, забилась очередь, кончилось место на диске. В этом уроке — три уровня починки от самого универсального к узким.
Главный путь — делегировать диагностику AI-агенту (Codex Desktop). Описываешь симптом одной фразой, он сам заходит на сервер, читает логи, находит проблему и применяет починку. Подходит и тем, кто не знает что такое systemd. Дальше — быстрая команда openclaw doctor на случай, когда хочется решить вопрос за пять секунд без запуска AI. А чтобы вообще не ловить проблемы постфактум, в конце настроим бота на самонаблюдение: пусть раз в сутки проверяет своё здоровье и пишет в Telegram, если что-то поломалось.
Починка через AI-агента — Codex Desktop
Идея простая: AI-агент с доступом в терминал умеет сам зайти по SSH на сервер, посмотреть логи, прочитать конфиг, найти проблему и применить починку. Тебе остаётся написать ему задачу одним сообщением. Это работает почти для любой поломки и не требует понимания, как устроен gateway, systemd и OAuth.
Codex Desktop, Codex CLI или Claude Code
Три варианта по убыванию удобства:
- Codex Desktop — десктопное приложение OpenAI для macOS и Windows. Внутри тот же агент на gpt-5-codex, что и в CLI, но обёрнутый в нормальный GUI: окно чата, видимый список действий, удобные диалоги одобрения, кнопка «открыть терминал в проекте». Идёт бесплатно с подпиской ChatGPT Plus. Рекомендую начать с него — порог входа ниже всего.
- Codex CLI — тот же агент, но в терминале. Полезен, когда уже сидишь в SSH-сессии и не хочешь переключаться, или когда хочешь автоматизировать починку скриптом.
- Claude Code — терминальный агент Anthropic на базе Claude Sonnet/Opus. Лучше в сложных кейсах с большой кодовой базой. Нужна подписка Claude Pro/Max или API-ключ.
Дальше показываю на Codex Desktop. CLI-вариант и Claude Code — в конце раздела короткой шпаргалкой, промпты везде одинаковые.
Установка Codex Desktop
- Заходи на openai.com/codex и скачивай приложение для своей платформы (есть Mac и Windows билды, плюс пакет для Linux через snap/flatpak в зависимости от дистрибутива).
- Открой приложение и войди через свой ChatGPT-аккаунт. Если у тебя Plus — Codex автоматически возьмёт квоту оттуда, отдельной оплаты не нужно. Без Plus можно подложить API-ключ OpenAI.
- На первом запуске приложение попросит дать разрешения: доступ к файлам (чтобы агент мог читать и редактировать), доступ к терминалу (чтобы выполнять команды), accessibility (на macOS — для управления интерфейсом, если понадобится). Все три выдай — без них починка работать не будет.
После установки в окне приложения видишь поле для сообщения — туда и пишутся задачи. Никаких терминалов открывать не надо, всё через одно окно.
Зачем нужен полный доступ
По умолчанию Codex спрашивает разрешение на каждое действие: «можно я выполню cat?», «можно я отредактирую этот файл?», «можно я открою SSH-соединение?». Это разумно при работе с твоим кодом, но для удалённой починки сервера превращается в пытку — на одну сессию диагностики придётся нажать «да» сто раз.
В Codex Desktop режим доступа выбирается в настройках сессии (значок ⚙️ или меню Approvals в верхней панели). Варианты обычно три:
- Ask for each action — спрашивать каждое действие (дефолт).
- Auto-edit + auto-run — самостоятельно править файлы и запускать команды в рабочей папке, опасные операции (sudo, удаление вне папки) всё ещё спрашивает.
- Full access / Bypass approvals — ничего не спрашивает, делает что хочет.
Для починки сервера ставь Full access. Понимай, на что соглашаешься: ты буквально даёшь модели полный контроль над терминалом и файлами. Делать так стоит в одной из двух ситуаций:
- Локально на временной или изолированной машине, где ты не боишься за данные.
- Для подключения по SSH к удалённому серверу, где живёт только бот и сам сервер не жалко переподнять.
На рабочем ноутбуке с важными файлами лучше держать Auto-edit + auto-run и одобрять опасное руками.
Аналоги в других инструментах: в Codex CLI это флаг --dangerously-bypass-approvals-and-sandbox, в Claude Code — --dangerously-skip-permissions.
Пример: чиним удалённый сервер
Открываешь Codex Desktop на своём ноутбуке, в настройках сессии выставляешь Full access — и отправляешь одно сообщение:
Сервер IP: 188.245.103.77
Логин: openclaw
Пароль: Pm8k2wNqV5xR/4tH/9aL
Документация: https://docs.openclaw.ai/
У меня не работает OpenClaw бот в Telegram. Подключись по SSH
и проведи диагностику.
Что Codex обычно делает дальше (порядок может отличаться):
- Открывает SSH-соединение через
sshpass(если нужен пароль) или обычнымsshс ключом. - Прогоняет
openclaw status,openclaw gateway status,openclaw doctor. - Читает
openclaw logs --tail 200, ищет ошибки. - Если видит знакомый паттерн (просроченный токен, упавший плагин, нужно пересоздать сервис) — применяет починку и показывает, что поменял.
- Перезапускает gateway, проверяет, что бот ожил.
- Возвращается с отчётом: что было сломано и что сделал.
Про пароль в чате. Подсовывать пароль агенту — нормально для одноразовой починки сервера, который и так у тебя в полном владении. Но пароль попадает в историю Codex/OpenAI. После починки лучше сменить его на сервере (
passwdпод пользователемopenclaw) или сразу перейти на SSH-ключи (тогда указываешь путь к ключу, а не пароль).
Пример: чиним бота на macOS
Если OpenClaw установлен локально на маке (вариант из урока 1), всё ещё проще — никакого SSH не нужно. Открываешь Codex Desktop на этом же маке, ставишь Full access и пишешь:
У меня OpenClaw установлен локально на этом маке. Перестал отвечать в
Telegram. Документация: https://docs.openclaw.ai/
На macOS у Codex есть прямой доступ к LaunchAgent'у (~/Library/LaunchAgents/), к Keychain и к каталогу ~/.openclaw/. Он быстро найдёт типовое: упал LaunchAgent после перезагрузки, забыли включить VPN, истёк OAuth-токен.
Codex CLI и Claude Code как альтернативы
Если по каким-то причинам Codex Desktop не подходит (нет Mac/Windows под рукой, работаешь сразу с сервера, любишь терминал) — те же сценарии заводятся в CLI-агентах.
Codex CLI. Нужен Node.js 22+:
npm install -g @openai/codex
codex login # OAuth через ChatGPT
codex --dangerously-bypass-approvals-and-sandbox # запуск в режиме полного доступа
Claude Code. Тоже Node.js 22+:
npm install -g @anthropic-ai/claude-code
claude # первый запуск спросит ключ или подписку
claude --dangerously-skip-permissions # запуск в режиме полного доступа
Промпты из примеров выше работают как есть — отправляешь то же самое сообщение в CLI. Что выбрать, зависит от подписки и контекста. Я для разовой починки чаще беру Codex Desktop (быстрее и нагляднее), для длинных расследований с правкой конфигов — Claude Code из терминала.
Быстрая починка одной командой — openclaw doctor
Если ты комфортно живёшь в терминале и не хочешь ради каждой мелочи запускать Codex, у OpenClaw есть встроенная команда, которая чинит большинство типовых проблем за пару секунд. Это не замена AI-агенту, а быстрая первая попытка: запустил, не помогло — тогда уже зовёшь Codex.
openclaw doctor — диагностический и ремонтный комбайн OpenClaw. Он проверяет конфиг, состояние gateway, плагины, авторизацию у провайдеров, целостность сессий, миграции схемы — и для большинства проблем умеет применить починку сам.
Одна команда на все случаи жизни
Если бот ведёт себя странно, начинай с этого:
openclaw doctor --fix --yes && openclaw gateway restart
Что здесь происходит:
--fix— применить все безопасные починки без вопросов: мигрировать устаревший конфиг, починить права на файлы, обновить OAuth-токены, выкинуть мусорные lock-файлы сессий, переустановить пропавшие плагины и так далее.--yes— соглашаться на дефолтные ответы там, гдеdoctorвсё-таки спрашивает (например, при перезаписи systemd-сервиса).gateway restartпосле — чтобы изменения применились без ожидания фонового перезапуска.
Перед записью doctor сохраняет копию текущего конфига в ~/.openclaw/openclaw.json.bak. Если что-то после починки стало хуже, можно откатиться:
cp ~/.openclaw/openclaw.json.bak ~/.openclaw/openclaw.json
openclaw gateway restart
Что doctor умеет починить сам
Список длинный, но знать его весь не обязательно — достаточно понимать классы проблем, которые покрывает одна команда doctor --fix:
- Миграции конфига. OpenClaw часто обновляется, и схема
openclaw.jsonменяется. После апдейта старые ключи (routing.queue,agent.model, флатыtalk.*и десятки других) уже не понимаются — gateway отказывается стартовать. Doctor переписывает их в актуальный формат. - OAuth и авторизация. Проверяет, не истекли ли токены у Anthropic/OpenAI/прочих, обновляет refresh-токены, ловит cooldown'ы и блокировки по биллингу.
- Состояние сессий. Удаляет залипшие lock-файлы, чинит повреждённые JSONL-транскрипты, мигрирует структуру каталогов после апдейта.
- Плагины. Переустанавливает пропавшие, чистит висящие ссылки на удалённые плагины в
plugins.entries,plugins.allow, channel/agent-конфигах. - Gateway service. Сверяет systemd/launchd-юнит с актуальной конфигурацией: правильный порт, правильный путь к Node, нет ли двух конкурирующих сервисов.
- Каналы. Проверяет статус Telegram/WhatsApp/Discord-аккаунтов, ловит проблемы с разрешениями.
- Skills. Помечает скиллы, у которых пропали зависимости (бинари, env-переменные, конфиг). С
--fixотключает их, чтобы они не тянули за собой ошибки.
Полный список — в документации openclaw doctor. На практике достаточно помнить одну команду из заголовка.
Диагностическая лесенка
Когда doctor --fix отработал, но проблема осталась, прогоняй официальную диагностическую лесенку сверху вниз:
openclaw status # общий обзор: конфиг, каналы, авторизация
openclaw gateway status # gateway процесс, RPC, capability
openclaw logs --follow # живой поток логов
openclaw channels status --probe # доходят ли сообщения до каналов
Эти команды ничего не меняют. Их задача — показать, на каком уровне отвалилось: gateway, канал, провайдер модели или сама модель. Дальше либо разбираешься сам по гайду по диагностике, либо скармливаешь вывод Codex'у — он разберётся быстрее.
Бот сам следит за собой — ежедневная проверка по cron
Третий уровень — переложить мониторинг на самого бота. У OpenClaw есть встроенный планировщик cron: можно завести задачу, которая раз в сутки запускает диагностику, собирает состояние сервера и пишет тебе в Telegram, если что-то поломалось. И самое приятное — настраивать это руками в конфиге не надо. Бот заведёт cron-задачу себе сам, если просто попросить его в чате.
Настраиваем прямо в чате с ботом
Открываешь обычный диалог с ботом в Telegram и отправляешь что-то вроде:
Заведи cron-задачу: раз в сутки проверяй здоровье OpenClaw и состояние сервера. Если что-то не так — напиши сюда. Доки: https://docs.openclaw.ai/
Бот сам разберётся, что в проверку включать (как минимум openclaw doctor --lint, метрики диска и памяти, статус gateway), соберёт команду openclaw cron add с правильными параметрами, поставит задачу и подтвердит. Всё, дальше она живёт сама.
Если хочется задать конкретику — время, пороги, дополнительные проверки — просто дописываешь в этом же сообщении или поправляешь потом отдельной репликой. Бот переедет на новые требования.
Почему cron, а не heartbeat. У OpenClaw есть второй похожий механизм — heartbeat, он гоняет короткие фоновые ходы каждые 30 минут. Для проверки здоровья он избыточен: doctor раз в полчаса — это лишний расход токенов и лишний шум. Ежедневной cron-проверки хватает с запасом, а для срочных проблем (бот вообще перестал отвечать) ты и так сам это заметишь.
Важно: проверка только смотрит, ничего не чинит. Флаг --lint у doctor гарантирует read-only режим. Это сознательный выбор: бот, который тихо чинит себя в фоне, легко уходит в loop, где починка ломает что-то ещё. Бот находит проблему, описывает её, а дальше решаешь ты — рукой запустить openclaw doctor --fix --yes && openclaw gateway restart или позвать Codex для расследования.
Что увидишь в Telegram
Если всё хорошо — ничего. Бот молча отработает и закроет задачу.
Если найдены проблемы — придёт короткое сообщение вроде:
⚠️ Daily health check — 2 проблемы
1.
doctor/model-auth(warning): OAuth-токен Anthropic истекает через 12 часов. Фикс:openclaw models auth login --provider anthropic.2. Диск
/заполнен на 91% (свободно 4.2 ГБ из 50). Логи в~/.openclaw/logsвесят 8.7 ГБ. Фикс:find ~/.openclaw/logs -name '*.log.*' -mtime +14 -delete.
Дальше — либо запускаешь предложенные команды руками, либо пересылаешь сообщение целиком в Codex Desktop с подписью «почини». Codex сам зайдёт на сервер и применит.
Управление задачей через чат
Менять расписание, отключать, смотреть историю запусков — тоже через чат, без терминала:
Покажи, какие у тебя сейчас крон-задачи и когда они в последний раз запускались.
Перенеси daily health check на 8:00 вместо 9:00.
Включи в сводку ещё проверку, что Telegram-бот реально online (через
openclaw channels status --probe).
Удали задачу daily health check, она надоела.
Бот разберёт openclaw cron list, openclaw cron edit, openclaw cron delete и применит изменения сам.
Если всё совсем сломалось
Бывают ситуации, когда даже doctor не запускается — например, сам gateway не может стартовать из-за повреждённого конфига, или после неудачного апдейта openclaw бинарь не находится. Аварийный комплект:
# 1. Откатить конфиг на бэкап
cp ~/.openclaw/openclaw.json.bak ~/.openclaw/openclaw.json
# 2. Принудительно переустановить gateway-сервис
openclaw gateway install --force
openclaw gateway restart
# 3. Если openclaw не находится — переустановить CLI
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
# 4. Крайний случай: полностью переустановить с нуля скриптом из урока 1
curl -fsSL https://raw.githubusercontent.com/MissiaL/openclaw/refs/heads/main/setup_openclaw_ubuntu.sh | bash
Сетап-скрипт из урока 1 идемпотентный — повторный запуск пропускает уже сделанное и переставляет только сломанное. Конфиг и данные (~/.openclaw/) не трогает. Это безопасно делать на «живом» сервере как последнее средство.
Что дальше
Бот стоит, чинится, сам себя мониторит. На этом основной курс закончен — у тебя в руках всё, чтобы держать OpenClaw на проде. Дальше копать по интересу: продвинутые скиллы, агентные пайплайны, кастомные плагины, multi-agent сетапы. Заходи в телеграм-канал курса, там обсуждаем уже выпущенные уроки и собираем темы для следующих.
Если что-то не получается или есть вопросы — заходи в телеграм-канал курса. Там помогут разобраться.
Обсуждение