Схема локальной агентной системы для триажа PR на мини-ПК с моделями Gemma 4 и Qwen 3.6

Локальный триаж PR на Gemma и Qwen: замена ChatGPT Pro за $0

ИИ-инструменты 1 июля 2026 г.

Команда мейнтейнеров OpenClaw столкнулась с задачей: репозиторий получает сотни issue и pull request ежедневно, и каждый нужно классифицировать, приоритизировать и направить нужному разработчику. Проблема не в отсутствии инструментов — закрытые модели вроде GPT-5 или Claude справляются с этим легко. Проблема в стоимости и контроле.

Источник: huggingface.co

Подписка ChatGPT Pro стоит $200 в месяц. Если настроить агента на каждом новом PR, квота закончится быстро. Приходится запускать обработку раз в 2–6 часов, теряя оперативность. Мейнтейнер Onur Solmaz решил проверить, можно ли заменить дорогой облачный сервис локальной моделью на собственном оборудовании — и получить уведомления в реальном времени без ежемесячных платежей.

Результат: агентная система на базе Gemma 4 и Qwen 3.6, работающая на мини-ПК DGX Spark (NVIDIA GB10 с 128 ГБ unified memory). Модели выдают сотни токенов в секунду и классифицируют PR за секунды. Расходы — только электричество. Вот как это собрано и что нужно проверить, прежде чем повторять.

Что изменилось: от дорогого облака к локальному агенту

Раньше типовой сценарий выглядел так: облачный агент на ChatGPT Pro обрабатывает каждый новый issue или PR, расходуя квоту. Чтобы не превысить лимит, запуск откладывали на несколько часов — уведомления переставали быть срочными.

Сейчас команда OpenClaw использует локальный агент, который работает непрерывно. При появлении нового PR агент получает заголовок, тело и сокращённую выдержку diff. Затем он может заглянуть в код репозитория (только чтение) и выдать результат классификации в структурированном JSON.

Ключевое отличие: агент не просто вызывает одну модель с готовым промптом. Он использует обвязку (harness) Pi, которая позволяет модели самой решать, какие инструменты применить — прочитать файлы или сразу выдать ответ. Это даёт более точную классификацию, чем простой запрос к Chat Completions endpoint.

Почему это важно сейчас: риск потери доступа к закрытым моделям

В июне 2026 года Anthropic удалила свою флагманскую модель Claude Fable 5. Для команд, которые строят бизнес-процессы на закрытых API, это стало сигналом: модель могут отозвать в любой момент. Владеть своим стеком и уметь запускать модели локально перестало быть опцией для энтузиастов — это вопрос устойчивости бизнеса.

Локальные модели Gemma 4 (26B параметров, 4 активных на токен) и Qwen 3.6 (35B, 3 активных) уже способны генерировать сотни токенов в секунду на доступном оборудовании. Это значит, что для задач классификации и триажа они не уступают закрытым аналогам по скорости, но дают полный контроль над данными и инфраструктурой.

Как собрать систему: четыре компонента

Система триажа строится из четырёх частей, которые можно проверить и настроить за неделю.

1. Локальная модель. Команда тестировала две: Gemma 4 26B a4b и Qwen 3.6 35B a3b. Обе работают на DGX Spark с 128 ГБ unified memory. Если у вас другое оборудование, нужно проверить, помещается ли модель в память и даёт ли нужную скорость.

2. Агентный харнес (Pi). Это обвязка, которая запускает модель, передаёт ей контекст PR и даёт доступ к инструментам. Pi вызывает локальный endpoint модели и управляет циклом: запрос → действие → результат.

3. Инструменты для агента. Агент получает два инструмента: - reposhell — ограниченная read-only оболочка для просмотра файлов репозитория. Важно: используется не полный bash, а reposhell, чтобы злоумышленник не мог через prompt-инъекцию в PR заставить модель выполнить произвольные команды. - final_json — инструмент для выдачи результата классификации.

4. Набор меток. Команда определила конечный список категорий: local_models, self_hosted_inference, acp, agent_runtime, codex, ui_tui и другие. Модель относит каждый PR к одной из них.

Сравнение: локальный подход против облачного

Параметр Облачный агент (ChatGPT Pro) Локальный агент (Gemma/Qwen)
Стоимость $200/мес. + квота Электричество + оборудование
Задержка уведомлений От 2 до 6 часов (из-за квоты) Секунды (реальное время)
Контроль над данными Данные уходят в облако Полный, локально
Риск отзыва модели Высокий (пример — Claude Fable 5) Нулевой (веса локально)
Оборудование Не требуется DGX Spark или аналог с 128 ГБ
Сложность настройки Минимальная Средняя (харнес, инструменты, безопасность)

Где риски и ограничения

Система работает, но не идеально. Вот что нужно проверить до внедрения.

Оборудование. Тесты проводились на DGX Spark с 128 ГБ unified memory. Если у вас меньше памяти или другая архитектура, модели могут не поместиться или работать медленно. Перед покупкой оборудования стоит протестировать на имеющихся ресурсах.

Prompt-инъекции. Агент получает содержимое PR, которое может содержать вредоносные инструкции. Использование reposhell вместо полного bash снижает риск, но не устраняет его полностью. Нужно продумать дополнительные меры: изоляцию окружения, лимиты на чтение, мониторинг необычных действий агента.

Качество классификации. Команда не приводит метрик точности. Локальные модели могут ошибаться на сложных или неоднозначных PR. Перед запуском в production стоит протестировать на исторических данных и настроить порог уверенности, при котором PR отправляется на ручную проверку.

Зависимость от конкретных версий. Используются Gemma 4 26B a4b и Qwen 3.6 35B a3b. При выходе новых версий нужно проверять совместимость с харнесом и инструментами.

Что можно проверить на этой неделе

  1. Оцените объём. Посчитайте, сколько issue и PR проходит через ваш репозиторий в день. Если меньше 50 — возможно, локальный триаж избыточен. Если больше 200 — присмотритесь к системе.
  2. Проверьте оборудование. Узнайте, сколько свободной памяти на машине, где вы планируете запускать модель. Gemma 4 26B требует около 16 ГБ в оптимизированном формате, Qwen 3.6 35B — около 20 ГБ. Для комфортной работы нужно 128 ГБ unified memory.
  3. Скачайте харнес Pi. Репозиторий доступен, установка занимает несколько минут. Запустите тестовый прогон с одной из моделей на локальном endpoint.
  4. Составьте список меток. Определите 5–10 категорий, которые покрывают 80% ваших PR. Не пытайтесь охватить всё — лучше донастроить позже.
  5. Протестируйте безопасность. Создайте тестовый PR с безобидной prompt-инъекцией и проверьте, сработает ли защита reposhell. Если агент выполнит команду за пределами разрешённых — систему нельзя запускать в production.
  6. Сравните стоимость. Посчитайте, сколько вы тратите на облачные API для триажа сейчас. Если сумма превышает $50–100 в месяц, локальное решение окупится за несколько месяцев.

Источники

Темы журнала

Что почитать дальше

Теги