Решения · Агенты для программирования
VPS для OpenHands
OpenHands: автономный агент для программирования. Дайте ему репозиторий и задачу, и он сам вносит правки, запускает, тестирует и открывает pull request, используя выбранную вами модель через API-ключ. В его собственном README сказано, что самый мощный способ запуска: на сервере в облаке, а его собственное предупреждение гласит, что агент получает полный доступ к машине, на которой работает. Оба указывают на один ответ: машина, которая не является чьим-то ноутбуком. Руководство проекта по серверу называет 2 vCPU и 4 GB вполне достаточными для одного пользователя; BD-8 за $12.90 в месяц даёт вдвое больше и стоит дешевле, чем машины с 4 GB в других местах.
Что нужно
Программы по документации, размеры с указанием источника
Программы и настройки безопасности взяты из официальной документации проекта. Если проект не публикует требований к оборудованию, у размеров указано, чьи это рекомендации.
Из README OpenHands, SELF_HOSTING.md и документации
- «2 vCPU / 4 GB RAM вполне достаточно для одного пользователя» (руководство проекта по VM). Документация требует «современный процессор и не менее 4GB RAM».
- Установка: Node.js 24 или новее и uv, затем
npx @openhands/agent-canvas --public. Одна команда запускает сервер агента, бэкенд автоматизации и веб-приложение за ingress на 127.0.0.1:8000. - Задайте
LOCAL_BACKEND_API_KEYдо первого запуска: в публичном режиме каждый вызов API должен его содержать, а веб-приложение запрашивает его прежде всего остального. Сначала закройте файрволом всё, кроме SSH; руководство велит сделать это до того, как агент вообще запустится. - API-ключ от провайдера моделей: по документации OpenHands он нужен для большинства моделей. Docker необязателен и нужен только, если вы хотите изолировать каждый диалог в отдельном контейнере. GPU не нужен, если вы не размещаете модель сами.
Размеры (сначала цифра проекта, затем наша)
| Нагрузка | vCPU | RAM |
|---|---|---|
| Один пользователь, облачные модели, агент на хосте (официально)Цифра из самого руководства. Сервер агента работает прямо на машине, поэтому песочницей служит сама машина. | 2 | 4 GB |
| Один или два пользователя, песочница Docker на каждый диалогНаша. Каждый диалог получает контейнер; установка зависимостей, сборки и наборы тестов выполняются внутри них. | 4 | 8 GB |
| Общий командный сервер агентов, несколько агентов одновременноНаша. Параллельные агенты на параллельных репозиториях, и каждый что-то компилирует. | 8 | 24 GB |
Подходящие тарифы
Машин: 5, цены актуальные
Сначала самая дешёвая подходящая машина. Цены текущие, за месяц, из каталога.
- BD-8$12.90/мес.
4 vCPU · 8 GB · диск 100 GB · 32 TB
Самый дешёвый с запасом для сборки и тестов. 4 vCPU, 8 GB, 100 GB и 32 TB трафика дешевле, чем машины с 4 GB в других местах. Вдвое больше ориентира руководства; тестовые наборы заметят ядра.
- U2-4-40$14.90/мес.
2 vCPU · 4 GB · диск 40 GB · Unmetered
Ровно ориентир руководства, Unmetered, Стамбул. 2 vCPU / 4 GB / 40 GB. Один пользователь, модели у провайдера, агент на хосте. Трафик без учёта для клонирования и установки пакетов.
- BD-24$31.90/мес.
8 vCPU · 24 GB · диск 300 GB · 32 TB
8 vCPU / 24 GB для командного сервера агентов. Несколько агентов одновременно, песочницы Docker, бэкенд автоматизации по расписанию.
- C2-4-80$37.90/мес.
2 vCPU · 4 GB · диск 80 GB · 3 TB
Цифра из руководства, в десятках городов. 2 vCPU / 4 GB / 80 GB. Выбирайте его ради города; ведите один диалог за раз.
- C4-8-160$75.90/мес.
4 vCPU · 8 GB · диск 160 GB · 3 TB
4 vCPU / 8 GB / 160 GB, в десятках городов. Комфортный размер с диском для множества рабочих копий и образов Docker.
Готового стартового шаблона для OpenHands пока нет: установка состоит из пяти шагов ниже, которые вы вводите сами, в том порядке, в каком их приводит руководство проекта. Сначала брандмауэр, затем ключ, затем агент.
Установка
Пять шагов в том порядке, в котором их даёт собственное руководство OpenHands
Руководство прямо говорит, что файрвол настраивается до первого запуска: сервер агента распоряжается всей машиной, и только файрвол и ключ отделяют его от посторонних.
- Сначала файрвол.
ufw allow OpenSSH && ufw --force enableНикаких входящих, кроме SSH. Входной прокси (8000), сервер агента (18000), бэкенд автоматизации (18001) и статический сервер (3001) не должны быть доступны извне; руководство говорит именно это. - Node.js 24 и uv.
apt-get install -y curl git curl -fsSL https://deb.nodesource.com/setup_24.x | bash - && apt-get install -y nodejs curl -LsSf https://astral.sh/uv/install.sh | shuv запускает сервер агента; руководство устанавливает его однострочным установщиком с astral.sh. - Сгенерируйте ключ, запустите в публичном режиме.
export LOCAL_BACKEND_API_KEY=$(openssl rand -base64 32); echo $LOCAL_BACKEND_API_KEY npx @openhands/agent-canvas --publicПрежде чем продолжить, сохраните ключ в надёжном месте; публичный режим означает, что веб-приложение будет его запрашивать. Для долгосрочной работы используйте юнит systemd из руководства в/etc/systemd/system/agent-canvas.serviceсEnvironment=LOCAL_BACKEND_API_KEY=…внутри, затемsystemctl enable --now agent-canvas. - Подключитесь по SSH, добавьте модель.
ssh -N -L 8000:127.0.0.1:8000 root@your-server, затем http://127.0.0.1:8000, вставьте ключ, затем Settings: выберите провайдера LLM и модель и вставьте API-ключ этого провайдера. Начните диалог по репозиторию. - По желанию, домен. Направьте A-запись на сервер, откройте 80 и 443,
apt-get install -y nginx certbot python3-certbot-nginxи блок nginx из руководства, проксирующий на 127.0.0.1:8000 с заголовками WebSocket;certbot --nginx -d canvas.example.com --redirectполучает сертификат. Если 443 должен быть открыт для всех, руководство говорит, что ключ ваша основная защита, поэтому делайте его длинным и храните в секрете.
Откровенно
Что купили бы мы сами
Руководство говорит, что 2 vCPU и 4 GB вполне достаточно для одного пользователя. Возьмите машину с 8 GB, которая стоит дешевле машин с 4 GB, и пусть агент компилирует.
Для агента-программиста одного человека
BD-8 · $12.90/мес.
4 vCPU, 8 GB и 100 GB за $12.90: сервер агента, несколько клонированных репозиториев, их деревья зависимостей и набор тестов, который выполняется у вас на глазах, и ещё остаётся память, если вы включите песочницы Docker. Модель находится в другом месте, за API-ключом, поэтому этой машине никогда не нужен GPU, а счёт, который действительно важен, выставляет провайдер модели. C2-4-80 за $37.90 в точности соответствует цифре из руководства и доступен в десятках городов, если город для вас важнее количества ядер.
Вопросы