Эфир 18.11 · Поток 318 ноября в 19:00 МСК — бесплатный практический эфир по ИИ-агентам · Живой Поток 3 стартует 23.11Эфир 18 ноября →Поток 3 (23.11)
ИнфраструктураРазбор · На радарHabr AI→ оригинал

Как запустить AI-агента в виртуалке, а модель оставить на GPU хоста: схема с Strata

Автономный агент с доступом к терминалу — это стажёр с правами администратора на вашей основной системе. Автор схемы разводит модель и исполнение: инференс идёт на хосте через Strata, а VS Code с плагином Cline работает в виртуальной машине с NAT. Порт модели пробрасывается через netsh, а весь внешний трафик ВМ уходит в SOCKS-прокси через Proxifier. Если в чужом коде сидит стилер, вы откатываете снапшот за пять секунд.

AI-обработка оригинала Habr AI; редакция Hamidun News
Как запустить AI-агента в виртуалке, а модель оставить на GPU хоста: схема с Strata
Источник: Habr AI. Коллаж: Hamidun News.
Слушать статью
Паспорт материала и цифры
ПараметрДанные
ПервоисточникHabr AI ↗
Главный редактор
Ключевой факт #1Видеокарта остаётся на хосте, в ВМ её пробрасывать не нужно
Ключевой факт #2Правило Proxifier для порта 47831 ставят выше остальных, как Direct
Ключевой факт #3Общие папки и общий буфер обмена в ВМ отключают

Агент, который сам ставит пакеты, запускает скрипты и правит файлы, экономит часы. Но вы по сути даёте стажёру права администратора на своём ноутбуке. Одна галлюцинация в скрипте очистки, один 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.

Сюжет

Вопросы и ответы по материалу

Что известно по теме: как устроена схема?

Контуров три. Хост отвечает за инференс. На нём крутится десктопное приложение 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, то есть порт слушает на всех интерфейсах хоста, а правило брандмауэра в примере не ограничивает источник.

ЖХ
Жемал Хамидун — CPO Alpina Digital, продакт-менеджер AlpinaGPT. Делает AI-продукты с 2019 года. Hamidun News — pet project, который вырос в production-агрегатор с 6000+ читателей.
✦ Единое AI-пространство · Nomad

Протестируйте новые LLM и мультимодальные модели в одном окне

Платформа Nomad AI (nomadnet.ai) даёт прямой доступ к Claude Opus 5.5, GPT-6, Gemini 3.1, DeepSeek и автономным агентам без VPN, зарубежных карт и зоопарка подписок.

Открыть Nomad AI →Автономный Nomad Agent
Что вы думаете?
Загружаем комментарии…