нейропоток
ГайдыПрактик

OpenHands: AI-агент, который сам пишет и деплоит код

OpenHands (бывший OpenDevin) — open-source AI-агент для разработки. Даю задачу текстом, агент сам пишет код, запускает тесты, фиксит ошибки. Показываю реальный тест.

Павел·5 мин чтения
OpenHands: AI-агент, который сам пишет и деплоит код
Поделиться:TelegramVK

Claude Code и Cursor — хорошие инструменты, но они работают рядом с тобой: ты показываешь файлы, принимаешь решения, нажимаешь «применить». OpenHands — другая история. Запускаешь задачу, уходишь, возвращаешься — код написан, тесты прошли, PR готов.

OpenHands (ранее назывался OpenDevin) — open-source проект для создания AI-агентов, которые могут автономно решать задачи разработки. 300+ тысяч звёзд на GitHub. Рассказываю как это работает и на что реально способно.

Статья для тех, кто уже пользуется AI-ассистентами в разработке и хочет понять следующий уровень — полностью автономных агентов.

Что такое OpenHands

OpenHands — это фреймворк, который даёт языковой модели доступ к рабочей среде: файловая система, терминал, браузер. AI может выполнять команды, устанавливать зависимости, писать код, запускать тесты, гуглить ошибки — всё что делает разработчик.

Ключевое отличие от Cursor/Claude Code: они требуют твоего присутствия и одобрения на каждом шагу. OpenHands работает в петле — пробует, получает ошибку, анализирует, исправляет, пробует снова.

Запускается в Docker-контейнере — изолированная среда, в которой агент не может навредить основной системе.

Установка

Нужен Docker. Если нет — установите с docker.com.

bash
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.38-nikolaos docker run -it --rm --pull=always \ -e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.38-nikolaos \ -e LOG_ALL_EVENTS=true \ -v /var/run/docker.sock:/var/run/docker.sock \ -v ~/.openhands-state:/.openhands-state \ -p 3000:3000 \ --add-host host.docker.internal:host-gateway \ --name openhands-app \ docker.all-hands.dev/all-hands-ai/openhands:0.38

Открываем браузер: http://localhost:3000.

При первом запуске нужно ввести API-ключ модели. OpenHands работает с Claude (Anthropic), GPT-4 (OpenAI), Gemini и local-моделями через Ollama. Лучшие результаты — с Claude Sonnet или GPT-4o.

Внимание

Агент запускает реальные команды в контейнере. Если дать ему доступ к production-серверу или базе данных — он может что-то сломать. Начинайте с локальных и тестовых проектов.

Первый тест: пишем Telegram-бота

Даю OpenHands задачу текстом:

Напиши Telegram-бота на Python. Бот должен: 1. Принимать текстовые сообщения 2. Возвращать количество слов в сообщении 3. На команду /stats показывать: сколько сообщений обработано и общее кол-во слов Используй python-telegram-bot. Добавь requirements.txt и README.

Нажимаю Start. Смотрю что происходит.

Агент начинает думать вслух: «Нужно создать структуру проекта, установить зависимости...». Затем:

  1. Создаёт файловую структуру
  2. Запускает pip install python-telegram-bot в контейнере
  3. Пишет bot.py с логикой
  4. Пишет requirements.txt
  5. Пишет README.md с инструкцией по запуску
  6. Запускает бота для проверки синтаксиса
  7. Обнаруживает что не хватает переменной TOKEN — добавляет чтение из .env

Весь процесс занял 4 минуты. Код рабочий. Мне оставалось только добавить реальный токен бота.

Для сравнения: если бы я попросил Claude в чате написать то же самое — получил бы код, но без автоматической проверки и без обнаружения проблемы с токеном.

Второй тест: дебаггинг чужого кода

Даю OpenHands существующий Python-скрипт с несколькими намеренными ошибками:

В папке /workspace/buggy_script.py есть скрипт. При запуске он падает. Найди все ошибки, исправь их, добавь тесты.

Агент:

  1. Читает файл
  2. Запускает — видит traceback
  3. Исправляет первую ошибку
  4. Запускает снова — другой traceback
  5. Исправляет вторую ошибку
  6. Запускает — работает
  7. Пишет unit-тесты с pytest
  8. Запускает тесты — все проходят

Нашёл 3 из 4 ошибок (одну семантическую пропустил, но она не влияла на запуск).

Что умеет хорошо

Стандартные задачи разработки: создание boilerplate, рефакторинг, добавление тестов. Всё то, что понятно описать текстом.

Работа с документацией: агент может открыть браузер, загуглить решение, прочитать Stack Overflow, применить найденное.

Итеративная отладка: запустить → получить ошибку → исправить → повторить. Это самый сильный сценарий.

Создание проектов с нуля: скаффолдинг нового репозитория, настройка окружения, CI/CD конфиги.

Где проваливается

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

Большие кодовые базы: с 50k+ строк кода агент теряет контекст. Лучше всего работает с изолированными модулями.

Неоднозначные требования: чем расплывчатее задача — тем хуже результат. «Сделай красиво» — плохой промпт. «Переименуй переменные в snake_case и добавь docstrings» — хороший.

Безопасность: агент не проверяет безопасность кода. Всё что напишет — нужно ревьюить.

Как использую я

Конкретные сценарии, где OpenHands экономит время:

  • Миграции: «Перепиши все колбэки в async/await». Монотонная работа, идеально для агента.
  • Документация: «Добавь docstrings ко всем публичным функциям в папке /src».
  • Тесты: «Напиши тесты для модуля payments.py с покрытием >80%».
  • Конфиги: «Настрой Docker Compose для dev-окружения с PostgreSQL и Redis».

Для всего этого раньше нужно было либо делать самому (скучно), либо нанимать джуна (дорого).

Сравнение с Cursor и Claude Code

OpenHandsCursorClaude Code
Автономностьвысокаянизкаясредняя
Контрольагент решаетты решаешьсовместно
Скорость итерациимедленнеебыстреесредняя
Подходит длябольшие задачибыстрые правкилюбые задачи
Ценабесплатно (+ API)от $20/месвходит в Claude

OpenHands не заменяет Cursor или Claude Code — это дополнение для задач, где нужна автономность.

Запуск с локальной моделью

Если не хочется платить за API — можно подключить Ollama с локальной моделью:

bash
# Сначала запустить Ollama с нужной моделью ollama run codellama:34b

В настройках OpenHands выбрать Ollama как провайдера. Качество заметно ниже, чем у Claude или GPT-4, но для простых задач работает.

Итог

OpenHands — реальный шаг к автономным AI-разработчикам. Не идеальный, с ограничениями, но уже полезный.

Попробуйте с простой задачей: «Создай CLI-утилиту на Python, которая...». Если зайдёт — начнёте находить всё больше задач, которые можно делегировать.

Рядом с этой темой — Claude Code Auto Mode: там похожая концепция автономности, но внутри вашего редактора.