Перейти к основному содержимому

Как я поднял OpenClaw на VPS и что из этого вышло

·1153 слов·6 минут
Оглавление

Несколько недель пользуюсь OpenClaw. Расскажу, что это такое, как я его поднял и где он оказался полезен на практике.

TL;DR

  • поднял OpenClaw на отдельном VPS
  • через Telegram привел в порядок dotfiles и поднял сайт
  • по пути встретил несколько неприятных проблем
  • на старте все обошлось примерно в 100$

Что такое OpenClaw?
#

OpenClaw — не отдельная нейросеть, а оркестратор. Он связывает LLM с операционной системой, API и мессенджерами: Telegram, WhatsApp, VK и другими.

OpenClaw работает как «постоянно живущий» ИИ-агент: умеет вести сессии, поддерживает разные каналы связи и довольно гибко настраивается.

Он может запускать долгие задачи, например спаунить Claude. Еще он хранит память в локальных файлах, поэтому постепенно накапливает контекст и со временем ведет себя устойчивее и полезнее.

Если совсем грубо, схема работы такая:

image.png

Установка
#

Запустить OpenClaw можно и на обычном ноутбуке. Но для экспериментов я взял небольшую VPS: так спокойнее и безопаснее.

Устанавливается он одной командой. Другие способы есть на официальном сайте.

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

Вся установка и базовая настройка заняли считаные минуты. Почти сразу меня встретило приветственное сообщение OpenClaw:

image.png

Что я ему поручал
#

Первой задачей по дороге на работу было сделать браузерную «змейку» и выложить ее на GitHub Pages, чтобы я мог сразу поиграть-потестировать. Заодно я завел для агента отдельный GitHub-аккаунт.

Потом просил его донастроить самого себя: поставить плагин, поправить конфиги и сделать мелкие доработки.

Еще пытался найти смысл жизни: 12 сабагентов-мыслителей несколько раундов спорили, но к финальному ответу так и не пришли. Хотя вроде все известно, это ответ — 42 :)

Потом я наконец разобрал свои dotfiles. Они давно пылились, а руки все не доходили их причесать.

image.png

Дальше уже вместе с Claude я немного допилил результат, чтобы внести мелкие правки. Результат получился хорошим.

Еще один эксперимент: во время прогулки я поднял себе сайт на GitHub Pages — прямо из Telegram, просто давая указания агенту.

image.png

Потом подключил OpenClaw к Яндекс Трекеру. Теперь он помогает с рекомендациями по моим постам.

image.png

Тут важно помнить: чем больше прав у OpenClaw, тем больше пользы он может принести. Но бездумно раздавать доступы нельзя. Это стажер с реактором: пользы может быть много, но только если держать все под контролем.

Проблемы
#

Звучит красиво, но по пути вылезло несколько проблем.

Проблема №1. OpenClaw врет
#

image.png

В этом нет ничего удивительного. Под капотом у OpenClaw работает LLM — в моем случае Claude Sonnet. А LLM может ошибаться, фантазировать и путать факты.

Поэтому решение простое: все важные настройки хранить в репозитории, чтобы их можно было перепроверить в любой момент.

image.png
image.png

Я попросил OpenClaw самому создать репозиторий в его GitHub-аккаунте, вынести секреты в отдельный secrets.json, чтобы они не утекли в репозиторий, и настроить пуш изменений каждые 24 часа. Иногда — по моему запросу.

Проблема №2. Все тащит в HEARTBEAT, а это жрет токены
#

У OpenClaw есть Heartbeat — встроенный периодический запуск агента. Он «просыпается», читает HEARTBEAT.md и решает: нужно что-то делать или можно снова спать.

Проблема в том, что почти любую регулярную задачу OpenClaw складывает именно в HEARTBEAT.md. Файл разрастается, контекст пухнет, расход токенов растет.

У меня была подписка Claude Pro, не Max, и довольно быстро все упиралось в RateLimiter.

image.png

Что помогло:

  • все, что можно заскриптовать, лучше скриптовать
  • сократить HEARTBEAT.md, AGENTS.md и SOUL.md до минимума
  • запускать Heartbeat на Haiku, а не на Sonnet или Opus
  • подключить self-improving-agent, чтобы агент запоминал замечания и постепенно учился

Проблема №3. Claude API иногда отваливается
#

image.png

К счастью, это решается фолбеками. У меня цепочка такая:

anthropic/claude-sonnet-4-6openai/gpt-4.1-minideepseek/deepseek-chatgroq/llama-3.3-70b-versatile

Если одна модель не отвечает, запрос уходит в следующую. Хоть кто-то да ответит.

Кстати, именно эта проблема хорошо показывает, зачем вообще нужен OpenClaw. Теоретически можно собрать его аналог на связке:

Но тогда фолбеки, несколько каналов связи и часть полезной инфраструктуры придется писать самостоятельно. Это возможно, но заметно дороже по времени.

Проблема №4. Оверинжиниринг
#

image.png

LLM любят оверинжинирить. Раз OpenClaw работает на LLM, эта болезнь есть и у него.

Поэтому я обычно прошу присылать pull request, а не катить изменения сразу. Так проще вовремя заметить, что агент построил собор там, где нужна была табуретка.

Проблема №5. GitHub зафлагал аккаунт моего агента
#

image.png

Теперь, если открыть профиль моего агента или его pull request, видишь 404. GitHub так защищает пользователей от спама и подозрительной активности.

В моем случае он, похоже, пытался защитить меня от моего же агента. Но жизнь это, конечно, сильно усложнило.

Я уже отправил апелляцию. Пока модераторы GitHub ее не обработали, и непонятно, обработают ли вообще. Формально правила я не нарушал: один человек может завести один роботный аккаунт.

Посмотрим, снимут ли флаг. Если нет, придется переезжать с GitHub на что-то другое. В текущем виде работать неудобно: я банально не могу нормально смотреть pull request от своего агента.

Howto. Как я это настраивал
#

После моих экспериментов несколько коллег спросили, как все повторить. Оставлю короткий гайд.

0. Завел зарубежную карту
#

Без нее оплатить часть подписок в сторонних сервисах не получится.

Если вы из Яндекса, достаточно поискать на вики «Зарубежная карта» и дальше пройти по инструкции. У меня Converse. Полет нормальный.

1. Купил VPS на vdsina.com
#

Оплатить можно рублевой картой. Берите второй тариф: на первом почти гарантированно упретесь в память.

image.png

2. Завел аккаунты в Claude, ChatGPT и DeepSeek и оплатил подписки
#

В первые два без VPN еще и не всегда пускает. Так что нужен либо VPN, либо отпуск с настройкой где-нибудь в солнечной Армении.

По деньгам получилось примерно так:

  • Claude Code — 17$ в месяц
  • ChatGPT — 20$ в месяц
  • Perplexity для поиска в OpenClaw — 20$ единоразово, хватает надолго
  • DeepSeek — 20$ единоразово, тоже хватает надолго, потому что это фолбек

После того как Anthropic запретила использовать подписку Claude в сторонних сервисах, включая OpenClaw, пришлось менять схему. Теперь основной моделью у меня стал openapi-codex/gpt-5.4, а Claude уехал в фолбек.

OpenClaw умеет использовать авторизацию Codex, а она входит в обычную подписку ChatGPT. Это помогает не переплачивать отдельно.

3. Установил на VPS и Claude Code, и Codex
#

OpenClaw периодически ломается. В такие моменты Claude Code и Codex очень выручают: ими удобно дебажить и чинить окружение.

4. Установил и настроил OpenClaw
#

Дальше просто идете по инструкции на официальном сайте.

У меня сейчас три канала:

  • Telegram — основной, несмотря на блокировки и тормоза
  • VK — резервный, но там слабее функциональность и нет поддержки Markdown
  • Web — поднял интерфейс OpenClaw на своем домене и закрыл через HTTP Basic Auth

Из плагинов поставил только https://clawhub.ai/pskoett/self-improving-agent.

5. Завел для OpenClaw отдельные аккаунты
#

У меня это GitHub и Яндекс.

С GitHub совет один: аккуратнее с активностью. Иначе агента может постигнуть та же судьба, что и моего — «зафлагают».

6. Дальше — просто экспериментируете
#

Остальное можно дотюнить уже в переписке с самим OpenClaw. Иногда, конечно, все равно приходится заходить по SSH на VPS и что-то чинить руками через Claude Code. Или спрашивать у ChatGPT и Claude в вебе.

Самое смешное, что документацию OpenClaw я впервые открыл только тогда, когда готовил рассказ о нем для коллег. До этого успел все настроить и какое-то время спокойно пользоваться без чтения документации. Дивный новый мир.

Для SSH и запуска Claude с телефона на iOS я использую https://apps.apple.com/us/app/moshi-ssh-mosh-terminal/id6757859949.