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

AI-агент пишет код сам — тестирую OpenHands на реальных задачах

OpenHands — AI-агент, который пишет код за тебя. Тестирую: даю задачу, ухожу, возвращаюсь к готовому PR. Установка, примеры и честное сравнение с Cursor

Павел·10 мин чтения
AI-агент пишет код сам — тестирую OpenHands на реальных задачах
Поделиться:TelegramVK

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

OpenHands (ранее назывался OpenDevin) — open-source платформа для AI-агентов, которые автономно решают задачи разработки. 71 000+ звёзд на GitHub, версия 1.6 с поддержкой Claude Opus 4.6 и облачным режимом. Рассказываю как это работает и на что реально способно.

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

Что такое OpenHands

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

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

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

Что нового в 2026: версия 1.x

С момента перехода на V1 (ноябрь 2025) OpenHands сильно изменился:

  • Software Agent SDK — модульный Python SDK (набор готовых инструментов для разработчиков) для создания собственных агентов. Можно определять кастомное поведение, добавлять свои инструменты, интегрировать MCP-серверы (протокол для подключения внешних данных и сервисов к AI).
  • OpenHands Cloud — облачная версия с интеграцией в GitHub. Можно добавить лейбл openhands к issue или упомянуть @openhands в PR — агент начнёт работать автоматически. Несколько агентов могут работать параллельно над разными частями кодовой базы.
  • Planning Agent (v1.6) — режим планирования, где агент сначала генерирует PLAN.md с пошаговым планом, а потом выполняет его. Можно переключаться между Plan Mode и Code Mode.
  • Поддержка свежих моделей — Claude Opus 4.6, Claude Sonnet 4.6, Gemini 3.1 Pro, Qwen3-Coder, GLM-5. Лучшие результаты по-прежнему с Claude, но разрыв сокращается.
  • Self-hosted для Enterprise — OpenHands Cloud можно развернуть в своём VPC через Kubernetes.

Установка

Нужен 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 или Claude Opus.

Совет

Хотите попробовать без установки? OpenHands Cloud (openhands.dev) даёт бесплатный тариф с 5 задачами в день. Подключаете GitHub — и всё работает прямо в браузере.

Внимание

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

Удалённый доступ

Если запускаете OpenHands на удалённом сервере (VPS, homelab), в версии 1.3+ добавили CORS-поддержку. Нужно задать переменные:

bash
-e WEB_HOST=192.168.1.100:3000 \ -e OH_SANDBOX_USE_HOST_NETWORK=true

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

Первый тест: пишем 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 ошибок (одну семантическую пропустил, но она не влияла на запуск). Для рутинного дебаггинга — отлично.

Третий тест: рефакторинг с Planning Agent

В версии 1.6 появился Planning Agent. Решил проверить на реальной задаче — рефакторинг модуля авторизации в небольшом Flask-приложении (~800 строк).

Даю задачу:

Перепиши модуль auth.py: вынеси JWT-логику в отдельный файл, добавь refresh-токены, покрой тестами с pytest. Используй Plan Mode.

Агент сначала сгенерировал PLAN.md — чёткий список шагов с зависимостями. Я посмотрел план, попросил убрать один лишний шаг (он хотел добавить Redis для хранения токенов, а мне достаточно in-memory). Переключил в Code Mode — и он пошёл выполнять.

Результат: 3 новых файла, 12 тестов, все зелёные. Весь процесс — 11 минут. План помог: без него агент раньше иногда уходил не в ту сторону на сложных задачах.

Бенчмарки: как OpenHands справляется объективно

OpenHands регулярно тестируют на SWE-bench — бенчмарке, где AI-агенту дают реальные баг-репорты из open-source проектов и проверяют, может ли он их исправить.

Результаты (с Claude Sonnet):

  • SWE-bench Verified (отобранные задачи): 43.2% решённых — один из лучших результатов среди open-source агентов
  • SWE-bench Live (свежие задачи, без утечки в обучающие данные): 19.3% — реалистичнее, но всё равно впечатляет

Для контекста: 43% означает, что агент самостоятельно чинит почти каждый второй баг из реальных проектов. Год назад лучшие агенты решали 15-20%.

Инфо

OpenHands запустили свой OpenHands Index — бенчмарк 9 моделей от Anthropic, OpenAI, Google, DeepSeek и Qwen. Результаты обновляются с каждым релизом. Удобно сравнивать, какая модель лучше работает именно в агентном режиме.

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

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

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

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

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

GitHub-интеграция (Cloud): получил issue → агент автоматически создаёт PR. Ревьюер оставил комментарий → агент исправляет. Это уже не «инструмент», а полноценный член команды.

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

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

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

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

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

Стоимость API: автономный агент делает десятки вызовов к модели за одну задачу. Сложная задача на Claude Opus может сжечь $2-5 за раз. Следите за расходами.

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

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

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

Для всего этого раньше нужно было либо делать самому (скучно), либо нанимать джуна (дорого). Теперь — $0.10-0.50 за задачу на API.

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

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

OpenHands не заменяет Cursor или Claude Code — это дополнение для задач, где нужна автономность. Подробнее про каждый инструмент — в полном сравнении AI для кода.

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

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

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

В настройках OpenHands выбрать Ollama как провайдера. Качество заметно ниже, чем у Claude, но для простых задач (документация, рефакторинг имён, шаблонный код) работает. Qwen3-Coder показывает лучшие результаты среди локальных моделей по OpenHands Index.

Если хотите попробовать Ollama подробнее — у меня есть гайд по запуску локальных моделей.

Советы из практики

За несколько месяцев использования накопились наблюдения:

  1. Чем конкретнее промпт — тем лучше результат. Не «сделай REST API», а «сделай REST API на FastAPI с эндпоинтами GET /users, POST /users, валидацией через Pydantic, и тестами на pytest».

  2. Разбивайте большие задачи. Вместо «перепиши весь бэкенд» — серия мелких задач: «добавь типы к модулю X», «перепиши функцию Y на async», «покрой тестами Z».

  3. Используйте Plan Mode для сложного. Посмотрите план перед выполнением — часто агент неправильно понимает приоритеты, и лучше поправить на этапе планирования.

  4. Проверяйте всё. AI-агент — это джуниор-разработчик на стероидах. Быстрый, неутомимый, но без глубокого понимания. Code review обязателен.

  5. Начните с Cloud-версии. Если не хотите возиться с Docker — openhands.dev даёт попробовать бесплатно. Подключаете GitHub-репозиторий и вперёд.

Итог

OpenHands — самый зрелый open-source AI-агент для разработки на апрель 2026. 71k+ звёзд на GitHub, активная команда, облачная версия с GitHub-интеграцией, и реальные результаты на бенчмарках.

Не идеальный. Сложные задачи всё ещё требуют человеческого контроля. Но для рутины — миграции, тесты, документация, простые фичи — экономит часы.

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

Рядом с этой темой:

FAQ

Чем OpenHands отличается от GitHub Copilot?

GitHub Copilot подсказывает код в редакторе — ты пишешь, он дополняет. OpenHands работает автономно: получает задачу целиком, сам пишет код, запускает, тестирует, исправляет ошибки. Copilot — автодополнение. OpenHands — автономный разработчик.

OpenHands бесплатный?

Сам фреймворк — полностью бесплатный и open-source. Но для работы нужна языковая модель: либо платный API (Claude, GPT-4), либо бесплатная локальная модель через Ollama. OpenHands Cloud даёт 5 бесплатных задач в день.

Какую модель выбрать для OpenHands?

По данным OpenHands Index, лучшие результаты показывают Claude Sonnet 4.6 и Claude Opus 4.6. Из бесплатных вариантов — Qwen3-Coder через Ollama. GPT-4o тоже работает хорошо, но чуть уступает Claude в агентных сценариях.

Безопасно ли давать AI-агенту доступ к коду?

OpenHands работает в изолированном Docker-контейнере — агент не имеет доступа к вашей основной системе. Но будьте осторожны с секретами: не кладите API-ключи и пароли в рабочую директорию агента. В Cloud-версии код обрабатывается на серверах OpenHands — для чувствительных проектов лучше self-hosted вариант.

Может ли OpenHands заменить разработчика?

Нет. OpenHands решает 43% задач из SWE-bench — это впечатляет, но больше половины задач ему не по зубам. Агент отлично справляется с рутиной и стандартными задачами, но для архитектурных решений, сложной бизнес-логики и code review по-прежнему нужен человек.