SSD Nodes Learn Hosting plans →
Руководства Matt ConnorАвтор: Matt Connor

Как создать своего AI-агента в стиле OpenClaw

Узнайте, как спроектировать персонального AI-агента для выполнения shell-команд на сервере. Разбираем архитектуру OpenClaw и методы защиты от уязвимости CVE-2026-32922.

Что такое OpenClaw на самом деле

OpenClaw — это персональный AI-агент, который размещается на вашем сервере. Вы запускаете его на собственном сервере, подключаете к уже используемым чат-приложениям, и он может выполнять команды shell, управлять браузером, читать и записывать ваши файлы, а также реагировать на отправленные ему сообщения. Проект распространяется по лицензии MIT, ориентирован на локальную работу и по состоянию на середину 2026 года имеет более 380,000 звёзд на GitHub. Это делает его одним из самых популярных проектов на платформе по числу звёзд. За всей шумихой стоит довольно небольшой набор компонентов, соединённых понятным образом. В этой статье разберём эти компоненты, чтобы вы понимали, как устроен такой инструмент и где находятся его опасные места.

Сразу важно сделать одно предупреждение, поскольку оно влияет на все описанные ниже проектные решения. В марте 2026 года сопровождающие OpenClaw опубликовали большое количество уведомлений о безопасности: 22 уведомления только 13 марта и ещё пять 16 марта. За тот же месяц National Vulnerability Database зарегистрировала 199 CVE для OpenClaw. В пакет уведомлений от 13 марта вошли две критические уязвимости с оценкой 9.9 из 10. Одна из них, уязвимость повышения привилегий (CVE-2026-32922), позволяла устройству, имевшему только права на сопряжение, создавать полнофункциональные токены администратора. Проект рассчитан на то, что оператор самостоятельно обеспечит его защиту. Агент, способный выполнять любую команду, безопасен лишь настолько, насколько безопасны сервер, на котором он работает, и ограничения, заданные для него. Помните об этом во время чтения.

Демон gateway: один процесс, доступный только локально

В центре системы находится один постоянно работающий процесс, который обычно называют gateway. Это плоскость управления. Он принимает сообщения, решает, что делать, запускает инструменты и отправляет ответы обратно. Все остальные компоненты подключаются к нему.

Самое важное свойство gateway — адрес, на котором он принимает соединения. При обычной установке на хосте OpenClaw привязывает его к loopback-адресу, 127.0.0.1, поэтому из Интернета он недоступен, если специально не открыть к нему доступ. Исключение составляют образы контейнеров: согласно собственной документации OpenClaw по безопасности, по умолчанию они используют привязку к внешнему адресу. Поэтому при запуске контейнера оставьте аутентификацию включённой и не публикуйте его порт в Интернет. В любом случае сохраняйте gateway закрытым. Это процесс, который постоянно выполняет команды, поэтому доступный извне gateway даёт любому обнаружившему его пользователю удалённую точку опоры на вашем сервере. Если нужно подключаться к нему с ноутбука, используйте VPN или SSH-туннель, а не открывайте порт. Нельзя атаковать порт, до которого нет доступа.

Канальные коннекторы: получение сообщений и отправка ответов

Персональный агент полезен только в том случае, если вы можете взаимодействовать с ним из приложений, которыми уже пользуетесь. Именно для этого предназначены канальные коннекторы. Каждый из них взаимодействует с одной платформой, такой как Telegram, WhatsApp, Slack или Discord, используя Bot API или вебхуки этой платформы.

Принцип работы для всех них одинаков. Коннектор регистрирует бота на платформе, получает входящее сообщение (путем опроса платформы или через вебхук, который платформа отправляет на коннектор), передает это сообщение шлюзу и отправляет ответ шлюза обратно через тот же API. Коннектор представляет собой тонкий слой трансляции. Он преобразует событие «пришло сообщение из Telegram» в формат «вот текст для агента» и выполняет обратное преобразование. Создание собственного коннектора в основном сводится к изучению документации по ботам конкретной платформы и приведению формата её сообщений к формату шлюза.

Интеллектуальное ядро и цикл инструментов

Внутри шлюза находится компонент, который превращает его из чат-бота в полноценного агента. Это цикл.

Поступает сообщение. Шлюз отправляет его языковой модели вместе со списком инструментов, которые модели разрешено использовать. Модель анализирует сообщение и принимает решение: ответить напрямую или вызвать инструмент. Если модель вызывает инструмент, шлюз запускает его, получает результат и возвращает его модели. Модель изучает результат и снова принимает решение. Этот процесс повторяется до тех пор, пока у модели не останется задач и она не сформирует итоговый ответ.

Этот цикл — основа концепции агента; он работает одинаково, независимо от того, находится ли агент в чат-приложении или в терминале. Чтобы узнать, как инструменты подключаются к этому циклу стандартным способом, рекомендуем ознакомиться с разделом подключение инструментов через Model Context Protocol, а для понимания работы модели — с разделом запуск модели на собственном оборудовании, который дополняет общую картину.

Набор инструментов — это суть и источник опасности

Инструменты делают OpenClaw мощным решением. Инструмент для выполнения shell-команд, инструмент для управления браузером, инструмент для чтения и записи файлов. Предоставьте циклу выше доступ к ним, и он сможет выполнить почти всё, что делаете вы за клавиатурой. Этот охват возможностей — весь продукт целиком, и в то же время — весь риск.

Агент, способный выполнить любую команду по инструкции из чат-приложения, представляет собой обширную поверхность атаки. Вредоносная инструкция, атака через prompt-injection, скрытая на веб-странице, которую посещает инструмент браузера, или ошибка вроде уязвимостей марта 2026 года могут превратить запрос «прочитай мой календарь» в «удали мои файлы». Поэтому ограничения — это не дополнительные опции. Запускайте агента от имени выделенного непривилегированного пользователя без прав sudo, чтобы взлом не привёл к повышению привилегий. Ограничивайте опасные инструменты этапом подтверждения, чтобы агент запрашивал разрешение перед выполнением деструктивных действий. Используйте песочницу для выполнения инструментов, чтобы изолировать вышедшую из-под контроля команду. Изолируйте API-ключ модели, чтобы его утечка не передала злоумышленнику доступ к вашей учётной записи. Подумайте и о других секретах, хранящихся на том же сервере, поскольку реальные слабые места Vaultwarden — это его токен администратора и файл резервной копии, а не само шифрование, и агент с доступом к shell может добраться до обоих.

Прежде чем открывать доступ к чему-либо, что выполняет shell-команды, тщательно проработайте основы. Составьте контрольный список для своего сервера здесь, а затем следуйте ему от начала до конца:

ToolVPS hardening checklist

Вопрос работы от имени непривилегированного пользователя подробно разобран в запуске сервисов от имени непривилегированного пользователя, а полное руководство по безопасной настройке для реального проекта находится в безопасном запуске OpenClaw на VPS.

Память в виде обычных файлов

Большинство пользователей ожидает, что память агента хранится в базе данных. В OpenClaw это не так. Он хранит память в виде обычных Markdown-файлов на диске, и такой подход стоит взять на вооружение. Файлы являются источником истины. Движок памяти по умолчанию поддерживает рядом с ними поисковый индекс SQLite, который можно пересоздать на основе файлов.

С файлами проще работать. Не нужно выполнять миграции схемы, поддерживать отдельный сервис и изучать язык запросов. Их содержимое можно проверить: откройте каталог и прочитайте, что именно агент считает известным о вас, исправьте неверную запись, отредактировав файл, или удалите память, удалив соответствующий файл. Файлы также переносимы: чтобы переместить агента на новый сервер, достаточно скопировать каталог. Для персонального агента одного пользователя достаточно каталога с текстовыми файлами. Это упрощает понимание всей системы.

Навыки: переносимый способ добавления возможностей

Помимо встроенных инструментов, OpenClaw использует переносимый формат навыков, позволяющий сообществу расширять функциональность без изменения ядра. Навык — это автономный набор инструкций и, в некоторых случаях, кода, который обучает агента новой задаче. Агент загружает навык, когда возникает необходимость в выполнении соответствующей задачи. Поиск в Интернете — это обычно первый навык, который добавляют пользователи, и настройка этого навыка на ваш собственный экземпляр SearXNG позволяет исключить использование коммерческих API для поисковых запросов, при этом четко определяя границы доверия к навыку, так как все возвращаемые им данные являются текстом, написанным сторонним автором.

Ценность такого формата заключается в возможности обмена навыками. Кто-то пишет навык для конкретной задачи, публикует его, а другие пользователи просто добавляют его в свою систему. Это удобство имеет и обратную сторону: навык представляет собой код от незнакомого человека, который ваш агент выполнит без колебаний. Поэтому стоит пропускать любой код, написанный не вами, через собственный сканер безопасности, прежде чем загружать его. Если вы создаете собственного агента, определение небольшого и понятного формата расширений на раннем этапе избавит вас от необходимости жестко прописывать каждую возможность в ядре в будущем.

Использование собственной модели

OpenClaw не привязана к конкретной модели. В комплекте поставки нет собственной языковой модели. Вместо этого система подключается к выбранной вами модели, которая может быть как внешним API, так и моделью, запущенной на вашем оборудовании.

Это разделение важно для контроля расходов, конфиденциальности и управления. Использование внешнего API предоставляет доступ к наиболее мощным моделям без необходимости обслуживать оборудование, при этом оплата производится за каждый токен, а ваши запросы покидают сервер. Самостоятельно размещенная модель, работающая, например, через Ollama, позволяет хранить все сообщения локально. В этом случае затраты ограничиваются стоимостью оборудования и электроэнергии, но приходится использовать менее мощные или более медленные модели. Многие пользователи комбинируют оба подхода. Если вы хотите обеспечить полную конфиденциальность агента, самостоятельное размещение модели на вашем VPS — это последний шаг для закрытия данного вопроса, а Hermes Agent — еще один агент для самостоятельного размещения, который стоит рассмотреть для сравнения.

Стоит ли создавать собственный агент?

Вы можете реализовать всё это самостоятельно. Компоненты здесь не являются чем-то экзотическим: демон, несколько коннекторов для чатов, цикл взаимодействия модели с инструментами, папка с Markdown-файлами и формат плагинов. Понимание этих механизмов действительно полезно, так как оно снимает завесу тайны с любого агента, который вы будете использовать, и точно указывает, где скрываются угрозы.

Но для большинства пользователей честный ответ таков: лучше запустить готовое решение и усилить его защиту, чем изобретать его заново. OpenClaw уже реализовал коннекторы, цикл работы и формат skills, а его безопасность уже проходила практическую проверку. Лучше направить усилия на ту часть, за которую вы действительно отвечаете: настройку и усиление защиты на собственном сервере. Если сначала вы хотите пройти путь обучения, поэтапно разбирая основные понятия лучше сразу читать исходный код агента, не имея контекста: после каждого этапа у вас останется один реально созданный компонент. Создайте небольшой вариант для обучения. Запустите готовое решение и ограничьте его доступ для практического использования.

Общие основы описаны в создании собственного AI-агента на VPS, а в создании агента с использованием Claude показаны те же идеи на примере конкретной модели в качестве «мозга».

FAQ

Сложно ли создать агента, похожего на OpenClaw?

Отдельные компоненты несложны. Процесс gateway, коннектор чата, цикл работы с моделью и инструментами, а также каталог с файлами — всё это достаточно просто по отдельности. Сложность заключается в безопасной реализации. Агент, выполняющий команды shell из сообщений чата, создаёт серьёзную поверхность атаки. Правильная настройка sandbox, разрешений и запуска от имени непривилегированного пользователя требует больше работы, чем объединение функций.

Почему OpenClaw хранит память в Markdown-файлах, а не в базе данных?

Потому что для персонального агента одного пользователя файлов достаточно, а работать с ними намного проще. Не нужно запускать отдельный сервис базы данных. Память легко прочитать и исправить вручную. Чтобы перенести агента на другой сервер, достаточно скопировать каталог. База данных оправданна при большем масштабе, но не в данном случае.

Какая часть персонального AI-агента наиболее опасна?

Наиболее опасны инструменты, которые позволяют агенту выполнять действия: запускать команды shell, управлять браузером и записывать файлы. Именно они нужны для работы агента и именно через них он может причинить вред. Волна уведомлений о безопасности OpenClaw в марте 2026 года — 27 публикаций с 13 по 16 марта, включая две критические уязвимости с оценкой 9.9, — наглядно показывает, почему к уровню инструментов нужно относиться внимательно: запускайте агент от имени непривилегированного пользователя, требуйте подтверждение для деструктивных действий и используйте sandbox для выполнения команд.

Нужна ли мне собственная языковая модель, чтобы создать такого агента?

Нет. Агенты вроде OpenClaw не зависят от конкретной модели, поэтому вы можете подключить выбранную вами модель. Это может быть hosted API с наиболее мощными моделями или модель, которую вы запускаете самостоятельно ради полной конфиденциальности. При самостоятельном запуске через Ollama все сообщения остаются на вашем сервере, но для этого придётся использовать менее крупную модель.