Перейти к содержанию
Публикация AiManual

Переход с Claude Code на локальные AI-обвязки: что выбрать владельцу RTX 3090

Разбираем, как перейти с Claude Code на локальные open-source harness для LLM на RTX 3090 с 24 ГБ VRAM: какой инструмент ближе всего к привычному UX, что реальн

Коротко

Что будет в материале

  1. 01

    Короткий ответ: что брать, если хочется «как Claude Code», но локально

  2. 02

    Harness vs LM Studio: что именно вы меняете при переходе с Claude Code

  3. 03

    Что реально влезет в RTX 3090 24 ГБ и 64 ГБ DDR4

  4. 04

    Open-source и без слежки: как проверить, что инструмент действительно локальный

Короткий ответ: что брать, если хочется «как Claude Code», но локально

Ближайший к Claude Code локальный вариант - терминальный агентный harness с намеренно маленьким ядром, которое набирает охват через навыки (skills). Этот подход представляет Pi: минималистичный харнесс для программирования в терминале, чье ядро специально держат компактным, а функциональность добавляют навыками. Логика простая: вы получаете рабочий цикл «прочитал файлы репозитория, предложил правку, вызвал команду, посмотрел результат», но без десятков встроенных подсистем, которые надо осваивать до первой полезной задачи.

Что стоит принять сразу: полного совпадения с Claude Code не будет. Claude Code и Codex идут в одном ряду как ИИ-агенты с доступом к файлам и командам, то есть это инструменты того же класса, что вы ищете. Разница в том, что за облачной обвязкой стоит большая модель, а локально у вас будет Qwen3 в Q5 на 24 ГБ VRAM. Обвязка задает формат работы, модель задает потолок качества. Агентные сценарии упираются в модель сильнее, чем в интерфейс.

Ориентир по инструментам, чтобы не читать дальше, если ответ уже понятен:

ИнструментСлойРоль при переходе с Claude CodeНасколько близко к привычному UX
PiАгентный harness, терминалОсновной кандидат на заменуФормат похож: терминал, файлы, команды. Навыки вместо встроенных подсистем
LM StudioРантайм и GUI для запуска моделейОтдает модель по API, агентную работу не ведетНе заменяет: нет многошаговых задач по репозиторию
llama.cpp server, OllamaРантаймы инференсаАльтернатива LM Studio на роль сервераНе заменяет
Aider, Continue, ClineКодинг-обвязки с интеграцией в редактор и терминалСледующий шаг после базовой связкиБольше готовых сценариев и зависимостей

Почему Pi логично поставить первым кандидатом

Pi держит намеренно маленькое ядро и предлагает расширять его навыками, а не наращивать встроенные подсистемы. Для человека, привыкшего к Claude Code, это важно по двум причинам. Первая: меньше скрытого поведения, которое надо учитывать. Вторая: навык - предусмотренный способ добавить функциональность, а не хак в конфиге.

Установка навыков выглядит буднично: скопировать папку в ~/.pi/agent/skills/ или поставить пакет командой pi install npm:@scope/pkg. Общие папки навыков (~/.pi/agent/skills/ и .pi/skills/) читают и другие харнессы, поэтому один клон набора обслуживает Pi и все остальное, что вы запустите позже. Это снижает стоимость экспериментов: попробовали Pi, не подошел, навыки остались на месте.

Песочницы нет: прочитайте SKILL.md до подключения навыка.

Ограничение, о котором надо знать заранее: у Pi песочницы нет. Навык получает доступ к файлам и командам, поэтому SKILL.md читают до подключения, особенно если папка скачана с npm или из чужого репозитория. Это осознанный компромисс минималистичного ядра, и он переносится в вашу ответственность. Утверждать, что Pi полностью заменяет Claude Code, оснований нет: это ближайший по духу вариант для первого шага, а не равноценная замена.

Что не подойдёт в качестве «первой обвязки»

LM Studio в этой роли не работает, хотя именно он у вас уже настроен. Он грузит модель и отдает ее по API. Многошаговых задач по репозиторию он не ведет: не читает структуру проекта, не вызывает команды сборки, не сравнивает diff. Это другой слой стека, и об этом ниже.

Так же мимо цели пройдут надстройки над агентом и утилиты для конкретной платформы, даже если они упоминаются рядом с харнессами. Критерий отсечения один: работает ли инструмент с вашим локальным endpoint и умеет ли он читать файлы проекта и вызывать команды. Если нет, это не обвязка, а что-то другое.

Harness vs LM Studio: что именно вы меняете при переходе с Claude Code

Локальный стек распадается на три слоя, и путаница между ними - главная причина, по которой люди покупают 24 ГБ VRAM и все равно возвращаются в облако.

Три слоя локального стека: модель, рантайм, обвязка

  1. Модель: веса, например Qwen3 в квантовании Q5.
  2. Рантайм: то, что грузит веса в VRAM и отдает ответы. Сюда попадают LM Studio, llama.cpp server, Ollama.
  3. Harness (обвязка): агентная логика, которая решает, что прочитать, какую команду вызвать, как применить правку и чем проверить результат. Это Pi, Aider, Cline, Continue.

У вас закрыты первые два слоя: Qwen3 в Q5 через LM Studio запускается. Значит задача сводится к выбору harness и стыковке его с локальным endpoint. При переходе с Claude Code меняется именно третий слой, и это удача: обвязку можно менять быстро и безболезненно, в отличие от переезда на другое железо. Если ресурсов на машине мало, критерии выбора обвязки под такое ограничение разобраны в материале про легковесные агентные обвязки для локальных LLM.

Почему «просто LM Studio» не заменяет Claude Code

Обвязка делает поверх модели то, что и создает ощущение Claude Code: читает файлы проекта, строит план из нескольких шагов, вызывает команды, применяет правки и смотрит на результат, работает с diff. LM Studio этого не делает, он отдает модель по API и на этом заканчивается. Между «модель отвечает» и «агент починил тест» лежит целый слой логики.

Хорошая иллюстрация того, что harness - это слой поверх модели: набор astro-site-kit рассчитан на работу через ИИ-агента с доступом к файлам и командам (Codex, Claude Code и подобные), агент читает файлы сам, человеку достаточно README. Набор не заменяет обвязку, он на ней едет. Тот же принцип действует для любого инструмента вокруг агента.

Отсюда вывод: переход с Claude Code - это смена harness плюс смена модели, и обе части подбираются отдельно. Сначала harness на локальном endpoint, потом модель под свои задачи.

Что реально влезет в RTX 3090 24 ГБ и 64 ГБ DDR4

Qwen3 в Q5 на 24 ГБ у вас уже работает, значит базовый факт проверен: модель такого размера в VRAM помещается. Агентный режим меняет расклад, потому что веса съедают лишь часть памяти.

Почему агентный режим жрёт VRAM быстрее чата

  • Веса модели. Постоянная величина, зависит от размера модели и квантования.
  • KV-cache. Растет вместе с длиной контекста. В чате вы держите пару тысяч токенов, в агентной задаче контекст набирается из системного промпта, схем инструментов, истории шагов и содержимого прочитанных файлов.
  • Системный промпт harness. Описание инструментов и правил поведения занимает заметный кусок контекста еще до вашей первой реплики.
  • История tool-вызовов. Каждый вызванный инструмент возвращает результат в контекст, и он остается там до конца задачи.

Первыми из 24 ГБ вылетают KV-cache и история шагов, а не веса. Практический вывод: начинать с коротких задач и увеличивать контекст постепенно, поглядывая на фактическое потребление памяти. Когда VRAM заканчивается, рантайм выгружает часть слоев в DDR4. Здесь и пригодится 64 ГБ: этого хватит на offload и на параллельные процессы, но DDR4 медленнее VRAM, и скорость генерации падает заметно. Подушка для offload не равна нормальному режиму работы.

Квантование и контекст: где искать компромисс

Q5 - разумный баланс для 24 ГБ, если вам нужен запас на длинные ответы. Под агентные задачи иногда выгоднее опуститься до Q4 и потратить высвободившуюся память на KV-cache и более длинный контекст: агенту важнее удержать историю шагов, чем выжать последние проценты качества весов. Насколько велика потеря на ваших задачах, проверяется на ваших задачах. Универсальной цифры здесь нет, а чужие замеры плохо переносятся на другой промпт и другой набор инструментов.

Модель для локальной работы выбирают по нескольким критериям одновременно, включая стоимость инференса и поведение на своих данных: об этом подробно в разборе шести критериев выбора нейросетевой модели.

Open-source и без слежки: как проверить, что инструмент действительно локальный

Открытый код и отсутствие слежки - разные вещи. Исходники могут быть открыты, а инструмент по умолчанию отправляет телеметрию, проверяет обновления и подставляет облачную модель, когда локальная не ответила. Проверка занимает полчаса и снимает большинство сомнений.

Чек-лист локальности обвязки

  • Лицензия и исходники. Понятная лицензия и репозиторий, который можно собрать самому.
  • Кастомный base_url. В настройках есть поле для своего OpenAI-совместимого endpoint. Без этого harness локально бесполезен.
  • Отсутствие обязательного логина. Если для запуска нужен аккаунт во внешнем сервисе, часть данных уходит туда.
  • Поведение по умолчанию. Какие запросы инструмент делает без вашего участия: обновления, телеметрия, проверка ключей.
  • Наличие песочницы. У Pi песочницы нет, и это учитывают при подключении незнакомых навыков.

Полезно смотреть, как устроены проекты с явной лицензией и явной моделью авторизации. Пример: расширение DOTLAN ESI Radar распространяется под GPL-3.0, авторизация построена на Firefox Identity Authorization Code с PKCE без встроенного клиентского секрета, а фоновый процесс владеет refresh-токенами и хранит учетные данные, страницы получают только проверенную непросроченную сессию. Это не про LLM, но показывает признаки аккуратного проекта: открытая лицензия, отсутствие секретов в поставке, разделение прав между фоновым процессом и интерфейсом.

Обратный пример тоже поучителен. В описании Cascade Agent прямо сказано, куда уходят данные: журнал чата, метаданные профиля и назначение тегов хранятся в Firestore (регион us-central1) и индексируются в Elasticsearch, а единственным каналом отправки и получения сообщений служит Azure Bot Service и Bot Framework Connector API. Приложение не скрывает маршрут данных, и это правильный ориентир: документация должна отвечать на вопрос, где окажется ваш код.

Где даже локальные обвязки могут «стучать» наружу

Типичные места утечки служебного трафика: автообновления, телеметрия и crash reporting, облачные fallback-модели, интеграции с внешними API, синхронизация настроек через аккаунт. Первые дни работы разумно посмотреть исходящие соединения системным монитором и запускать незнакомый harness в отдельном окружении или контейнере.

Сам локальный inference при этом остается локальным: если base_url указывает на 127.0.0.1, текст промпта никуда не уходит, наружу может уйти только служебный трафик приложения. Разделяйте эти две вещи, иначе легко запаниковать из-за запроса за проверкой версии.

Путь наименьшего сопротивления: минимальный сетап за один вечер

Цель первого вечера - работающая связка, на которой видно, чего вам не хватает. Идеальный стек подождет. MCP, RAG и десяток навыков на этом этапе только мешают.

Шаг 1: локальный endpoint

LM Studio умеет поднимать OpenAI-совместимый сервер, и это самый короткий путь: модель и рантайм у вас уже настроены, остается включить сервер и запомнить адрес с портом. Альтернатива - llama.cpp server или Ollama, если хочется держать инференс без GUI. Что бы вы ни выбрали, harness должен принимать кастомный base_url, иначе конструкция не соберется.

Шаг 2: установка Pi и первых skills

Навыки ставятся копированием папки в ~/.pi/agent/skills/ или командой pi install npm:@scope/pkg. Общие папки навыков читают и другие харнессы, поэтому один набор обслуживает Pi и остальные инструменты, которые вы запустите позже. Перед подключением скачанного навыка откройте SKILL.md: песочницы у Pi нет, и содержимое навыка читают до, а не после.

Свежие JS-инструменты вокруг агентов требуют актуального Node.js. Набор astro-site-kit, например, просит Node.js 22 или новее и браузер на базе Chromium для скриншотов (npx playwright install chromium). Держать Node 22+ установленным заранее дешевле, чем разбираться с версиями в момент, когда все готово к запуску.

Шаг 3: первая задача и что проверить

Возьмите маленькую задачу на своем репозитории: правка одного файла, запуск тестов, чтение README. Проверьте по пунктам: модель отвечает через локальный endpoint, tool calls проходят и агент действительно видит содержимое файла, команды выполняются, в сетевом мониторе нет обращений к чужим API. Если модель ломает схемы инструментов, сначала уменьшите контекст, потом попробуйте модель с более надежным tool calling. Часто слабое звено не в harness, а в том, что небольшая модель не удерживает формат вызова.

Где локальная связка просядет относительно Claude Code

Трезвые ожидания экономят вечер. Локальная модель на 24 ГБ проигрывает облачной по четырем пунктам: планирование многошаговых задач, надежность tool calling, поведение на длинном контексте, скорость на больших репозиториях. Никакая обвязка это не компенсирует.

Отдельно стоит помнить, насколько велик вклад самой обвязки. В разборе архитектуры кодинг-агентов приводится результат контролируемого эксперимента: смена harness влияет на результат в 7.8 раза сильнее, чем смена модели. Там же идет сравнение по четырем ключевым узлам архитектуры Codex, OpenCode, Pi, Claude Code и agent-core. Практический вывод для вас: сначала убедитесь, что слабое место именно в модели, а не в неудачно выбранной обвязке и кривом конфиге. Разбор архитектурных ставок обвязок кодинг-агентов полезно прочитать до того, как менять модель.

Задачи, где локальный harness уже уместен

  • Правки в одном-двух файлах, где контекст задачи укладывается в пару тысяч токенов.
  • Генерация boilerplate, тестов и конфигов по образцу.
  • Объяснение незнакомого кода, черновики документации, разбор логов.
  • Работа с приватным кодом, который не хочется отправлять в облако.

Задачи, где лучше остаться на Claude Code

  • Большие рефакторинги с изменением десятков файлов.
  • Задачи, где важна длинная цепочка рассуждений и удержание плана.
  • Разбор незнакомой кодовой базы целиком, когда контекст не влезает ни в какое окно.

Практичная схема - гибрид: держать оба инструмента и переключаться по задаче. Локальный harness закрывает рутину и приватный код, облачный остается для сложных архитектурных изменений.

Куда двигаться дальше: от Pi к более гибким обвязкам

Pi стоит воспринимать как стартовую точку. Маленькое ядро и навыки быстро показывают, чего именно вам не хватает, и это понимание дороже, чем выбор «правильного» инструмента наугад. Дальше имеет смысл смотреть в сторону обвязок с более богатой агентной логикой, поддержкой MCP-серверов и RAG. Сравнение легких вариантов на слабом железе разобрано отдельно: little-coder против Pi для локального кодинга - про роль harness, расход контекста, tool calling и ограничения машин с небольшим объемом VRAM.

Когда пора уходить с минималистичного ядра

Сигналы, что Pi перестал хватать: не хватает встроенных инструментов, нужны MCP-серверы для доступа к внешним системам, нужна плотная интеграция с IDE, нужна автоматизация в CI, где агент запускается без человека. Тогда смотрите в сторону тяжелых обвязок. Категория известная: Aider, Continue, Cline, OpenHands. У каждой свой набор компромиссов по сложности, зависимостям и поддержке, поэтому сравнение начинается с ваших задач, а не с чужого рейтинга.

Экономика: когда локальная замена окупается

Сравнивать надо две статьи расходов. Облако: подписка плюс оплата токенов сверх лимитов, причем при агентной работе расход растет быстро, потому что каждый шаг тащит в контекст историю и содержимое файлов. Локально: электричество, амортизация GPU и ваше время на настройку. При ежедневной многочасовой работе локальный запуск окупается, потому что переменная часть становится почти нулевой. При эпизодических задачах облако дешевле и проще: вы не платите за простой и не тратите вечера на конфиги. Конкретных тарифов здесь нет, они меняются, а считать надо по своим объемам. Методика расчета стоимости инференса разобрана в материале про контекстное окно, KV-cache, VRAM и стоимость инференса.

Начните с одного вечера: поднимите локальный endpoint с Qwen3 в Q5, поставьте Pi, подключите один навык после чтения SKILL.md и прогоните правку одного файла в своем репозитории. Если связка отработала, у вас есть рабочий резерв на случай роста цен на облако. Если нет, вы потеряли вечер, а не деньги, и теперь точно знаете, какого звена не хватает: harness, модели или контекста.

Подписаться на канал