OpenHands (Agent Canvas) — селф-хостед центр управления ИИ-агентами для разработки
📂 Исходный код на GitHubСелф-хостед центр управления кодинг-агентами и автоматизациями. Запускает OpenHands, Claude Code, Codex, Gemini и любых ACP-совместимых агентов на локальных, удалённых и облачных бэкендах. 87K+ звёзд на GitHub, лицензия MIT.
OpenHands — один из самых известных опенсорсных проектов в области ИИ-разработки (87,8K звёзд и 11,5K форков на GitHub, лицензия MIT, более 8,2 тысячи коммитов в основной ветке). Сегодня главный продукт репозитория — Agent Canvas: селф-хостед центр управления для кодинг-агентов и автоматизаций. Идея простая: вместо того чтобы держать агента только на своём ноутбуке, вы получаете постоянно работающую «инженерную команду», которую можно запускать локально, на сервере или в облаке.
Agent Canvas работает с OpenHands из коробки, но поддерживает и сторонних агентов — Claude Code, Codex, Gemini и любого агента с протоколом ACP (Agent-Client Protocol). Проект находится в статусе beta и развивается в рамках инкубаторной программы OpenHands.
Ключевые возможности
| Возможность | Что даёт |
|---|---|
| Селф-хостинг | Агенты запускаются локально, в Docker, на VM или на любом сервере, где работает agent server backend |
| Переключение бэкендов | Локальные, удалённые и облачные агенты — из одного интерфейса, без потери контекста |
| Автоматизации | Рабочие процессы по расписанию или по webhook-событиям с интеграцией Slack, GitHub, Linear |
| Интеграции | Подключение сторонних сервисов: Slack, GitHub, Notion и другие |
| Любая LLM | Поддержка произвольных моделей через LLM-профили |
| Любой агент | OpenHands, Claude Code, Codex, Gemini — всё, что говорит на ACP |
Типичные сценарии использования: генерация отчётов с публикацией в Slack, автоматическое разложение GitHub issues на задачи, код-ревью и обновление зависимостей командными агентами — пока личные агенты работают на вашем ноутбуке.
Отдельно стоит сказать про ACP (Agent-Client Protocol) — протокол взаимодействия между клиентом и агентом. Именно благодаря ему Agent Canvas одинаково управляет разными агентами: OpenHands, Claude Code, Codex и Gemini подключаются как взаимозаменяемые бэкенды, без привязки фронтенда к конкретному вендору.
Подключение моделей настраивается через LLM-профили в настройках LLM. Вопросы и фидбек принимаются через GitHub issues или Slack-канал #proj-agent-canvas.
Быстрый старт
Установить OpenHands можно на любую машину: ноутбук, выделенный компьютер (например, Mac Mini) или облачный сервер. Самый мощный вариант — сервер в облаке: агенты продолжают работать при выключенном ноутбуке, а триггеры приходят из Slack, GitHub и Datadog. Для продакшена смотрите гайд по селф-хостингу — там же описано укрепление безопасности.
Бэкендов может быть несколько, и переключаться между ними можно из одного фронтенда Agent Canvas: например, общий Agent Server для команды (код-ревью, зависимости) плюс личные агенты на ноутбуке.
Вариант 1: без песочницы
Предварительные требования: Node.js 22.12.x или новее, uv.
npm install -g @openhands/agent-canvas
agent-canvas
Внимание: агент-сервер запускается прямо на вашей машине — агент получит полный доступ к файловой системе!
Команда agent-canvas по умолчанию поднимает весь локальный стек, но можно разделить части:
agent-canvas --frontend-only # static frontend + ingress only
agent-canvas --backend-only # agent server + automation backend + ingress only
Вариант 2: с Docker-песочницей
Предварительные требования: Docker (Docker Desktop на macOS/Windows или Docker Engine на Linux) и хост-директория PROJECTS_PATH с вашими проектами.
export PROJECTS_PATH="$HOME/projects" # directory containing your project folders
mkdir -p "$PROJECTS_PATH" "$HOME/.openhands"
docker run -it --rm \
-p 8000:8000 \
-v "$HOME/.openhands:/home/openhands/.openhands" \
-v "${PROJECTS_PATH}:/projects" \
ghcr.io/openhands/agent-canvas:1.18.0
Агент получит доступ к любому проекту внутри PROJECTS_PATH. Для Windows есть отдельная инструкция с командами для PowerShell и Windows Terminal.
Вариант 3: из исходников
Предварительные требования: Node.js 22.12.x или новее, npm, uv (для запуска агент-сервера через uvx).
git clone https://github.com/OpenHands/OpenHands.git
cd OpenHands
npm install
npm run dev
UI доступен на http://localhost:8000 (npm/исходники) или http://localhost:8000/canvas (Docker-образ). Дополнительные бэкенды добавляются прямо из интерфейса.
Обратите внимание: при запуске без песочницы (npm и исходники) агент-сервер работает напрямую на вашей машине с полным доступом к файловой системе. Docker-вариант безопаснее — агент видит только проекты внутри PROJECTS_PATH. Для публичного сервера обязательно изучите раздел о безопасности в гайде по селф-хостингу.
Архитектура
Ядро Agent Canvas — OpenHands Agent Server: REST API для запуска нескольких агентов на одной машине. Каждый Agent Server живёт на своём host:port, а Agent Canvas умеет подключаться к нескольким серверам и быстро переключаться между ними.
Где можно запустить Agent Server:
- напрямую на ноутбуке (осторожно!);
- на выделенной машине вроде Mac Mini;
- на виртуальной машине в облаке;
- внутри OpenHands Cloud — коммерческого предложения OpenHands.
Agent Server обычно работает в паре с Automation Server, который отвечает за запуск агентов по расписанию или в ответ на события.
Границы репозиториев
Agent Canvas — часть мультирепозиторной системы OpenHands. За каждое поведение отвечает свой репозиторий:
| Репозиторий | Ответственность |
|---|---|
| OpenHands/OpenHands | Фронтенд Agent Canvas, центр управления, выбор бэкендов, оркестрация локального стека |
| OpenHands/software-agent-sdk | Python SDK, Agent Server, агенты, инструменты, conversations, workspaces, события и канонический API сервера |
| OpenHands/typescript-client | Браузерный TypeScript-клиент для API Agent Server |
| OpenHands/automation | Определения автоматизаций, планирование, вебхуки, история запусков и диспетчеризация |
API Agent Server реализован в SDK и потребляется Agent Canvas через TypeScript-клиент. Сервис автоматизаций решает, когда запускать работу, и отправляет conversation'ы в Agent Server/SDK, который решает, что именно запускать.
Документация
Если вы ищете способ превратить кодинг-агентов в постоянно доступную команду с автоматизациями и интеграциями — Agent Canvas сейчас один из самых проработанных опенсорсных вариантов.
Источник: https://github.com/OpenHands/OpenHands