Как запустить AI-агента в виртуалке, а модель оставить на GPU хоста: схема с Strata
Автономный агент с доступом к терминалу — это стажёр с правами администратора на вашей основной системе. Автор схемы разводит модель и исполнение: инференс идёт на хосте через Strata, а VS Code с плагином Cline работает в виртуальной машине с NAT. Порт модели пробрасывается через netsh, а весь внешний трафик ВМ уходит в SOCKS-прокси через Proxifier. Если в чужом коде сидит стилер, вы откатываете снапшот за пять секунд.
AI-обработка оригинала Habr AI; редакция Hamidun News
Агент, который сам ставит пакеты, запускает скрипты и правит файлы, экономит часы. Но вы по сути даёте стажёру права администратора на своём ноутбуке. Одна галлюцинация в скрипте очистки, один postinstall в незнакомом репозитории, и последствия ощутите на основной системе.
Очевидный выход — виртуальная машина. Проблема в том, что GPU в неё обычно не пробросить, а локальная модель без видеокарты работает мучительно медленно. Habr-разбор предлагает развести «мозги» и «руки».
Как устроена схема
Контуров три.
Хост отвечает за инференс. На нём крутится десктопное приложение Strata, которое поднимает OpenAI-совместимый API (порт по умолчанию — 47831). Чужой код сюда не попадает и не запускается.
Виртуальная машина в режиме NAT — песочница. В ней стоят VS Code и плагин Cline, здесь же распаковываются архивы, ставятся зависимости и запускаются сомнительные скрипты. Если что-то пошло не так, ВМ откатывается из снапшота примерно за пять секунд.
Сетевой шлюз принудительно заворачивает весь трафик гипервизора на хосте в SOCKS-прокси через Proxifier. Если в изучаемом коде окажется телеметрия или обратный коннект, наружу уйдёт только IP прокси, а не домашней сети.
Простой пример: вы хотите быстро разобрать неизвестный репозиторий с GitHub. Клонируете его в ВМ, просите агента собрать проект и прогнать тесты. Модель думает на видеокарте хоста, а выполняется всё внутри песочницы.
Где всё ломается
Самое интересное здесь не сама идея, а две сетевые ловушки.
Первая: локальные серверы моделей (Strata, Ollama, LM Studio) по умолчанию слушают только 127.0.0.1. Из ВМ их не видно даже через шлюз 10.0.2.2. Автор решает это встроенным в Windows portproxy. Одна команда netsh interface portproxy пробрасывает порт, а правило брандмауэра его открывает. Проверка простая: curl.exe 10.0.2.2:47831/v1/models изнутри ВМ должен вернуть JSON со списком моделей. Из него берётся точное поле id, которое понадобится в Cline.
Вторая ловушка неочевидна. Когда ВМ стучится на 10.0.2.2, пакет в итоге обрабатывает системный svchost.exe. Proxifier перехватывает его и пытается отправить на локальный адрес через удалённый SOCKS-сервер. Соединение виснет. Лечится правилом-исключением: приложения — Any (именно потому, что трафик идёт через svchost), хосты — 10.0.2.2, 127.0.0.1, localhost и локальные подсети, порт — 47831, действие — Direct. Правило должно стоять выше общего правила для гипервизора. Так как порт жёстко задан, остальной выход ВМ в интернет по-прежнему идёт только через прокси.
В Cline настройки такие: провайдер OpenAI Compatible, Base URL 10.0.2.2:47831/v1, ключ — любое непустое слово, Model ID — имя из ответа сервера. Разумно отключить раздельные модели для режимов Plan и Act, чтобы не дублировать конфиг.
Что учесть на практике
Изоляция держится на дисциплине. В ВМ отключают общие папки и двусторонний буфер обмена, иначе песочница теряет смысл. Нельзя логиниться в личные аккаунты и держать там реальные ключи и токены: Auto-approve в Cline разрешает агенту всё, что доступно внутри машины.
Есть и слабое место, которое в статье не разобрано. Команда portproxy использует listenaddress=0.0.0.0, то есть порт слушает на всех интерфейсах хоста, а правило брандмауэра в примере не ограничивает источник. Если вы сидите в общей Wi-Fi сети, имеет смысл сузить правило до подсети виртуалки через параметр remoteip или привязать listenaddress к адресу виртуального адаптера. Это наш вывод, а не рекомендация автора. Кроме того, ВМ не даёт абсолютной гарантии: побег из гипервизора редок, но возможен, а свежий снапшот придётся обновлять.
Итог для разработчика. Вам нужен не «умный» агент, а агент в клетке. Схема собирается за вечер на бесплатном софте и подходит для аудита чужого кода, разбора подозрительных пакетов и экспериментов с автономным режимом. Профиль Proxifier стоит экспортировать, а чистый снапшот снять сразу после проверки внешнего IP.
- 12 нояб. 2026 г.Дженсен Хуанг ушёл с поста CEO Nvidia: компания потеряла $1,4 трлн за две недели
- 12 нояб. 2026 г.Профсоюз Окленда добился переобучения вместо увольнений из-за ИИ: за забастовку 94,1%
- 12 нояб. 2026 г.Восемь стран и OpenAI с Anthropic обещают «рубильник» для ИИ-моделей, но без сроков и штрафов
- 12 нояб. 2026 г.OpenAI и ModRetro выпустили консоль за $200 для игр, написанных в Codex
Вопросы и ответы по материалу
Что известно по теме: как устроена схема?
Контуров три. Хост отвечает за инференс. На нём крутится десктопное приложение Strata, которое поднимает OpenAI-совместимый API (порт по умолчанию — 47831). Чужой код сюда не попадает и не запускается. Виртуальная машина в режиме NAT — песочница. В ней стоят VS Code и плагин Cline, здесь же распаковываются архивы, ставятся зависимости и запускаются сомнительные скрипты. Если что-то пошло не так, ВМ откатывается из снапшота примерно за пять секунд.
Что известно по теме: где всё ломается?
Самое интересное здесь не сама идея, а две сетевые ловушки. Первая: локальные серверы моделей (Strata, Ollama, LM Studio) по умолчанию слушают только 127.0.0.1. Из ВМ их не видно даже через шлюз 10.0.2.2. Автор решает это встроенным в Windows portproxy. Одна команда netsh interface portproxy пробрасывает порт, а правило брандмауэра его открывает. Проверка простая: curl.exe 10.0.2.2:47831/v1/models изнутри ВМ должен вернуть JSON со списком моделей. Из него берётся точное поле id, которое понадобится в Cline.
Что известно по теме: что учесть на практике?
Изоляция держится на дисциплине. В ВМ отключают общие папки и двусторонний буфер обмена, иначе песочница теряет смысл. Нельзя логиниться в личные аккаунты и держать там реальные ключи и токены: Auto-approve в Cline разрешает агенту всё, что доступно внутри машины. Есть и слабое место, которое в статье не разобрано. Команда portproxy использует listenaddress=0.0.0.0, то есть порт слушает на всех интерфейсах хоста, а правило брандмауэра в примере не ограничивает источник.
Протестируйте новые LLM и мультимодальные модели в одном окне
Платформа Nomad AI (nomadnet.ai) даёт прямой доступ к Claude Opus 5.5, GPT-6, Gemini 3.1, DeepSeek и автономным агентам без VPN, зарубежных карт и зоопарка подписок.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.