Мой код не должен покидать мой комп
Сколько раз вы ловили себя на мысли, что отправляете коммерческую кодовую базу в ChatGPT или Copilot, а потом нервно жмете F5 проверяя, не появилось ли в логах утечки? А если вы фрилансер или работаете с NDA, то каждый промпт с приватным кодом — это игра в русскую рулетку. Я сам однажды случайно вставил в чат строку подключения к продакшн-базе. Хорошо, заметил вовремя, но осадочек остался.
С 2026 года вариантов стало больше. Google выпустила Gemma 4 — модель, которая на малом размере (12B параметров!) почти не уступает большим моделям в задачах код-генерации. А фреймворк OpenCode (релиз 2.5.1 в мае 2026) превращает любую локальную LLM в полноценного агента с tool calling, файловым контекстом и памятью. И главное — ваш код остается на вашем SSD.
В этой статье я шаг за шагом соберу локального coding agent на связке Ollama + Gemma 4 + OpenCode. Заодно разберу, где подводные камни и почему я все равно держу под рукой Qwen3 Coder для сложных запросов.
Почему не Copilot? Проблема конфиденциальности и денег
Давайте честно: платить $20 в месяц за GitHub Copilot или $10 за ChatGPT Plus — это еще полбеды. Беда — когда вы отправляете в облако куски завтрашнего IPO-стартапа. Корпоративные клиенты, банки, медицинские софты — они давно требуют локальных решений. А еще есть расходы API: каждый запрос к GPT-4o стоит копейку, но если агенту нужно 20 вызовов для рефакторинга, набегает прилично.
Локальный agent на Gemma 4 решает обе проблемы разом. Модель бесплатна, код не уходит за периметр, а скорость генерации на RTX 4090 — около 40 токенов/с. Не хватает только удобной обвязки. OpenCode эту обвязку дает: он умеет читать файлы проекта, запускать команды, редактировать код и даже делать commit.
⚠️ Важное предупреждение: Gemma 4 (даже последняя версия) имеет проблемы с tool calling — модель часто путает имена функций или галлюцинирует аргументы. В OpenCode это частично исправляется системным промптом, но если увидите странные вызовы — знайте, это болезнь модели, а не ваша кривая настройка.
Что мы собираем
- Ollama 0.6.3 (последняя стабильная) — раннер для LLM, умеет скачивать и оптимизировать модели.
- Gemma 4 12B (Instruct, Q4_K_M) — самая свежая версия на июнь 2026, доступна через ollama pull gemma4:12b-instruct-q4_K_M.
- OpenCode 2.5.1 — Python-библиотека для автономных coding agents. Ставится через pip.
- Дополнительно (опционально): Node.js 22, если хотите использовать встроенный терминал OpenCode.
Пошаговая настройка
1Установка Ollama
Если у вас Windows — качаете установщик с официального сайта (ollama.com). Для Linux — одна команда:
curl -fsSL https://ollama.com/install.sh | shПосле установки проверяем:
ollama --versionДолжно показать 0.6.3 или новее. Если Ollama не запускается как сервис (особенно на Windows), проверьте, что порт 11434 свободен и не заблокирован брандмауэром.
2Загрузка Gemma 4
Теперь тянем модель. Я рекомендую 4-битную квантованную версию — она умещается в 8 ГБ VRAM:
ollama pull gemma4:12b-instruct-q4_K_MЖдем, пока скачается ~7 ГБ. Если у вас карта с 24+ ГБ, можно взять полную 16-битную версию gemma4:12b-instruct — она точнее, но жрет больше памяти.
Проверяем, что модель отвечает: ollama run gemma4:12b-instruct-q4_K_M и пишем "Hello, write a Python function to reverse a string". Если видите текст — всё ок.
3Установка OpenCode
OpenCode ставится как обычный Python-пакет. Желательно создать отдельное виртуальное окружение:
python -m venv opencode-env
source opencode-env/bin/activate # На Windows: opencode-env\Scripts\activate
pip install opencodeПосле установки проверяем:
opencode --versionДолжна выскочить версия 2.5.1.
4Конфигурация агента
Создаем файл config.yaml в папке проекта:
model:
provider: ollama
name: gemma4:12b-instruct-q4_K_M
endpoint: http://localhost:11434
temperature: 0.2
tools:
- read_file
- write_file
- run_terminal
- git_commit
max_iterations: 20
system_prompt: "You are an expert software engineer. Generate high-quality, idiomatic code."Параметр temperature: 0.2 я выбрал не случайно. Gemma 4 при нулевой температуре часто зацикливается, а при высокой — галлюцинирует. 0.2 — золотая середина.
5Запуск первого задания
Создаем скрипт agent.py:
from opencode import Agent
agent = Agent(config_path="config.yaml")
agent.run("Создай простое FastAPI приложение с одним эндпоинтом /health")Запускаем:
python agent.pyЧерез несколько секунд агент начнет создавать файл main.py, запустит его через терминал и даже сделает git commit. Если в проекте ничего не меняется, проверьте, что Git инициализирован.
ollama serve, если сервис не работает в фоне. Иначе получите Connection refused.Нюансы и типичные ошибки
Проблемы с tool calling у Gemma 4
Как я уже упоминал, tool calling в Gemma 4 — больное место. OpenCode частично обходит это через специальный промпт-инжектинг, но иногда агент вместо вызова write_file начинает писать код текстом в ответе. Решение: добавьте в system_prompt жесткую инструкцию:
system_prompt: "You MUST use the provided tools to perform file operations. Never output code in plain text."Или используйте гибридную схему: пусть Gemma 4 генерирует план, а за исполнение отвечает второй агент на Qwen3 Coder. Про такой подход я писал в статье Как настроить стек локальных LLM-агентов.
Не хватает памяти
Если Ollama вылетает с ошибкой CUDA out of memory, попробуйте более агрессивное квантование: gemma4:12b-instruct-q3_K_S. Да, качество чуть хуже, но для тестов пойдет. Или переключитесь на CPU-режим (медленно, но стабильно).
Агент не видит файлы проекта
По умолчанию OpenCode работает в директории, откуда запущен скрипт. Если вы хотите, чтобы он видел соседние папки, передайте путь:
agent = Agent(config_path="config.yaml", workspace="/path/to/project")Медленная генерация на CPU
Если у вас нет GPU, OpenCode можно интегрировать с LocalAI, который умеет распределять нагрузку на CPU через llama.cpp. Но будьте готовы, что один запрос будет обрабатываться минуту.
FAQ: ответы на главные вопросы
Можно ли использовать Gemma 4 с другими фреймворками, кроме OpenCode?
Да, Gemma 4 работает с любым OpenAI-совместимым API. Подключите её к LangChain, AutoGPT или даже к старому доброму llama.cpp. Но OpenCode дает максимально удобный интерфейс именно для кодинг-агентов с инструментами.
Какие альтернативы Gemma 4 для кода?
Лучшая альтернатива — Qwen3 Coder Next (32B, hybrid attention). Он точнее в tool calling, но требует 24 ГБ VRAM. Для слабых машин есть PocketCoder — легковесный агент на базе CodeLlama 7B.
Безопасно ли устанавливать OpenCode из pip?
OpenCode — open-source проект с открытой лицензией Apache 2.0. Код на GitHub, я проверял зависимости — никаких сюрпризов. Но всегда используйте виртуальное окружение.
Итоговый боевой чек-лист
- Установили Ollama, подняли сервер.
- Скачали Gemma 4 12B Q4_K_M (проверили ответ через
ollama run). - Установили OpenCode в venv.
- Настроили config.yaml с температурой 0.2 и жесткими tool constraints.
- Создали Python-скрипт для запуска агента.
- Протестировали на простой задаче (создание FastAPI).
- Если tool calling глючит — добавили усиленный промпт или переключились на гибрид с Qwen3 Coder.
Теперь у вас есть полностью локальный coding agent, который не отправит ни строчки вашего кода на сервера Google или OpenAI. Да, он не такой умный, как GPT-4o, но для написания рутинных функций, рефакторинга и создания миграций — самое то. А через пару месяцев выйдет Gemma 4.5, и возможно, там исправят tool calling. Тогда будет совсем хорошо.
Пока можно сделать так: пусть Gemma 4 генерирует идеи и каркасы, а Qwen3 Coder — реализует сложные куски. Как настроить такой pipeline — читайте в моем гайде Полностью локальный AI-агент без телеметрии.