Как запустить GSD PI с локальной LLM: тестирование моделей и честный обзор
Джонни Грабер (Johnny Graber) продолжает серию экспериментов с локальными LLM для AI-разработки. Ранее он тестировал Claude Code с локальными моделями, а теперь взялся за GSD PI — полностью автономного coding-агента, наследника GSD из экосистемы Superpowers. Главный вопрос: можно ли заменить дорогие API-вызовы облачных моделей локальным запуском и получить сравнимый результат?
Установка и настройка
GSD PI переехал в новый репозиторий: open-gsd/gsd-pi. Установка одной командой:
npx @opengsd/gsd-pi@latest
Проверка версии: gsd --version. Автор тестировал на версии 1.2.
Для работы с локальными моделями используется LM Studio. На машине с GB10 модели загружаются с максимальным контекстным окном и повышенным параллелизмом:
lms load openai/gpt-oss-120b -c 134144 --parallel 16
lms load qwen/qwen3-coder-next -c 262144 --parallel 16
Конфигурация моделей задаётся в файле models.json, который размещается в ~/.gsd/agent/. Формат — стандартный OpenAI-совместимый:
{
"providers": {
"lm-studio": {
"baseUrl": "http://192.168.1.94:1234/v1",
"api": "openai-completions",
"apiKey": "lm-studio",
"compat": {
"supportsDeveloperRole": false,
"supportsReasoningEffort": false
},
"models": [
{
"id": "nvidia/nemotron-3-super",
"name": "nvidia/nemotron-3-super",
"contextWindow": 500000,
"maxTokens": 500000
},
{
"id": "qwen/qwen3.6-35b-a3b",
"name": "qwen/qwen3.6-35b-a3b",
"contextWindow": 262144,
"maxTokens": 262144
}
]
}
}
}
После запуска GSD PI команда /model открывает выбор модели из сконфигурированных.
Тестовое задание: Image Locator
Для проверки использовался клон сервиса Pic2Map — веб-приложение, которое читает GPS-данные из EXIF-метаданных загруженного изображения и показывает точку на карте.
Стек: Python + Flask + Leaflet.js + uv + pytest + Playwright.
Требования включали:
- Drag-and-drop загрузку изображений
- Нумерацию загруженных изображений и соответствие меткам на карте
- Кэширование в браузере на время сессии
- Извлечение адреса по координатам
- Полное покрытие unit-тестами (pytest) и e2e-тестами (Playwright)
Базовый замер: Claude Sonnet через GSD2 справился за ~60 минут и один раунд правок.
Результаты тестирования моделей
OpenAI GPT OSS 120B
Модель уверенно стартовала: составила план, начала писать Flask-приложение. Но на середине задач начались ошибки вызова инструментов из-за нехватки контекстного окна. Исправить не удалось — тест пришлось прервать до получения работающего приложения.
Qwen3 Coder 30B
Вдвое больше контекста, чем у GPT OSS. Через 40 минут и 6 миллионов токенов работа завершена, но GPS-данные не извлекались — все точки попадали в Гвинейский залив (координаты 0/0). Ещё 30 минут и 7 миллионов токенов исправлений не изменили ситуацию. Вторая попытка — аналогичный провал.
Qwen3 Coder Next
Первая попытка: 25 минут и 10 миллионов токенов — приложение без работающей загрузки. GSD PI не смог исправить эту базовую проблему.
Вторая попытка: на этот раз модель послушалась требований и написала e2e-тесты на Playwright. Это помогло GSD PI самостоятельно обнаружить, что старый процесс всё ещё висит и отдаёт устаревшее приложение. Однако баги в самом GSD PI (бесконечные циклы проверки верификации слайса) сожрали час из общего времени в 2 часа 20 минут. Итог: ~45 миллионов токенов, приложение работает, но без нумерации изображений и миниатюр.
Qwen 3.6 35B
Лучший результат. Контекстное окно 262144 токенов. 15 минут планирования, час реализации, 4.7 миллиона токенов. Приложение делает всё, что требуется, включая отображение адреса по координатам. Единственная проблема — GSD PI напортачил с Git worktree, но Gemini исправил это за 10 минут.
75 минут против 60 у Claude Sonnet — достойный результат для локальной модели.
Экономика
Главный аргумент в пользу локального запуска — цена. Разработка того же приложения через API облачных моделей Claude стоила бы от $30 до $250. Локальная модель работает бесплатно после покупки железа. Даже с учётом более медленной работы, экономия существенна, особенно при частом использовании.
Проблемы GSD PI
Автор откровенно разочарован качеством GSD PI:
- Баг с верификацией слайсов — бесконечные циклы перепроверок, которые на облачных моделях стоили бы сотни долларов.
- Непредсказуемость — результаты радикально различаются от запуска к запуску, невозможно понять, что считать «нормальным» поведением.
- Чёрный ящик — технические решения агента настолько сложны, что исправить проблемы вне агента практически невозможно.
- Необходимость постоянного внимания — агент требует надзора, чтобы не уйти в сторону.
As much as I liked GSD 1, GSD PI is a completely different creature. In its current form it is too unpredictable for me.
Выводы
GSD PI способен работать с локальными моделями — это хорошая новость на фоне растущих цен на API. Лучшая модель для этой задачи — Qwen 3.6 35B: достаточный контекст, приемлемая скорость, адекватное качество кода.
Но сам GSD PI пока слишком сырой. Баги, непредсказуемость и непрозрачность делают его рискованным инструментом для серьёзной работы. Тем не менее, направление перспективное: автономные coding-агенты на локальных LLM уже работают, пусть и не без проблем.