Настройка локального окружения для AI-агентов: модели, квантование, контекст | AiManual
AiManual Logo Ai / Manual.
09 Янв 2026 Гайд

Локальный AI-агент на стероидах: как заставить Kilo Code и Devstral-Small-2 работать на трёх 3090

Полный гайд по настройке Kilo Code и Devstral-Small-2 для агентного кодирования на локальном железе: выбор квантования Q8, контекст 120k+, оптимизация VRAM 72GB

Зачем вообще локальные агенты, если есть GPT-5?

Потому что API-запросы к OpenAI - это как арендовать квартиру. Удобно, пока не захочешь повесить картину на стену. А локальная модель - это своя квартира. Ломай стены, строй перегородки, храни контекст в 120 тысяч токенов и не думай о лимитах.

Первый миф, который нужно развеять: локальные модели для агентов - это не "более дешёвая версия" GPT. Это принципиально другой подход к работе. Вы не просто экономте деньги - вы получаете контроль над каждым аспектом агента.

Железо: три 3090 и почему это важно

Моя конфигурация: 3x RTX 3090, 128GB RAM, Ryzen 9 5950X. Почему именно три карты? Потому что две - мало, четыре - перебор для большинства моделей, а три - золотая середина.

Компонент Минимальные требования Рекомендуемые Почему
VRAM 48GB 72GB+ Квантование Q8 + контекст 120k сжирают память
Системная RAM 64GB 128GB+ Для оффлоадинга слоёв и кэширования
PCIe lanes x8 на карту x16 на карту Снижает латентность при обмене между GPU

Если у вас одна 4090 на 24GB - забудьте о полноценном агентном кодировании. Да, вы запустите модель. Но контекст будет 8-16k, и ваш агент забудет, что делал пять минут назад.

Выбор модели: Kilo Code против Devstral-Small-2

Здесь всё просто: если вам нужен агент для работы с кодом - Kilo Code. Если нужен более универсальный агент для планирования и исполнения - Devstral-Small-2.

💡
Kilo Code - специалист по коду. Он понимает синтаксис 50+ языков, умеет работать с большими файлами и рефакторить. Devstral-Small-2 - стратег. Он лучше планирует задачи, разбивает их на подзадачи и управляет суб-агентами.

1 Скачивание и подготовка моделей

Не качайте модели через веб-интерфейс Hugging Face. Используйте CLI с резюме-файлами. Так вы гарантируете целостность и сможете возобновить загрузку.

Самая частая ошибка: скачать первую попавшуюся квантованную версию. Люди берут GGUF с квантованием Q4, потому что она "влезает" на их карту, а потом удивляются, почему агент генерирует бред.

2 Квантование Q8: роскошь или необходимость?

Q8 - это 8-битное квантование. Сохраняет 99.5% качества оригинальной модели при экономии 50% памяти против FP16. Для агентов это критически важно.

  • Q4: для чата подойдёт, для агентов - нет. Потеря логики в длинных цепочках рассуждений
  • Q6: компромисс, если VRAM не хватает. Но агент будет "спотыкаться" на сложных задачах
  • Q8: золотой стандарт для локальных агентов. Качество почти как у FP16, память в два раза меньше
  • FP16: если у вас 4x A100 - можно. Для смертных - слишком тяжело

3 Контекст 120k: зачем столько?

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

Вот что занимает место:

  1. Системный промпт (2-5k токенов)
  2. История диалога с агентом (10-30k)
  3. Результаты поиска по документации (5-15k)
  4. Контекст кода проекта (20-50k)
  5. Промежуточные рассуждения агента (10-20k)

Сложите эти числа. 16k контекста хватит на полчаса работы, потом агент начнёт "забывать".

Настройка vLLM для распределённого инференса

Ollama и Text Generation WebUI хороши для чата. Для агентов нужен vLLM. Он умеет распределять слои модели по нескольким GPU и эффективно управлять памятью.

Ключевой параметр - tensor_parallel_size. Для трёх карт ставим 3. Если поставить 2, третья карта будет простаивать. Если поставить 1, модель не влезет в память одной карты.

Оптимизация памяти: PYTORCH_CUDA_ALLOC_CONF и не только

Даже с 72GB VRAM память может закончиться. Особенно если вы запускаете несколько агентов параллельно или работаете с очень большим контекстом.

Три настройки, которые спасут вас:

  • max_split_size_mb: 512 - уменьшает фрагментацию памяти
  • garbage_collection_threshold: 0.8 - более агрессивная сборка мусора
  • expandable_segments: False - предотвращает "распухание" сегментов памяти

Если вы сталкивались с проблемой, когда Granite 4.0 сжирает всю память A100, эти настройки помогут и с Kilo Code.

Интеграция с агентными фреймворками

Локальная модель - это только движок. Сам агент нужно спроектировать и реализовать. Вот как выглядит пайплайн:

  1. Агент получает задачу (например, "напиши микросервис на FastAPI")
  2. Planner разбивает задачу на подзадачи
  3. Каждая подзадача выполняется с доступом к инструментам (поиск, файловая система, выполнение кода)
  4. Результаты собираются и анализируются
  5. Агент корректирует план и продолжает выполнение

Ваш локальный Kilo Code или Devstral-Small-2 - это только LLM в этом пайплайне. Весь остальной код - ваш или взят из фреймворков вроде LangGraph, AutoGen.

Бенчмаркинг: как понять, что всё работает

Не доверяйте синтетическим тестам вроде HumanEval. Они измеряют способность модели решать изолированные задачки, а не работать как агент.

Вот что нужно тестировать:

Метрика Целевое значение Как измерить
Токенов в секунду 30+ при генерации vLLM метрики
Латентность первого токена <500ms Замерить время от запроса до первого токена
Потребление VRAM 60-65GB из 72GB nvidia-smi
Стабильность контекста Без деградации на 100k+ Тест на длинных диалогах

Для автоматического бенчмаркинга можно настроить автономного агента для тестирования.

Типичные проблемы и решения

Ошибки, которые совершают 90% людей при настройке локальных агентов:

Проблема: Агент "забывает" инструкции из системного промпта после 20-30 сообщений.
Решение: Не храните системный промпт только в начале контекста. Периодически повторяйте ключевые инструкции в диалоге.

Проблема: Скорость генерации падает с ростом контекста.
Решение: Используйте attention sinks в vLLM. Они позволяют сохранить производительность даже с контекстом в 200k+ токенов.

Проблема: Модель работает нестабильно на разных картах.
Решение: Проверьте PCIe lanes. Если карты работают в x4 или x8 режиме вместо x16, производительность упадёт в 2-3 раза.

Что дальше? От локального агента к кластеру

Когда один сервер с тремя 3090 перестаёт хватать, пора думать о гибридном кластере. Prefill на eGPU, декодирование на Strix Halo, кэширование на отдельном сервере.

Но это уже следующий уровень. Для начала научитесь эффективно использовать то, что есть. Три 3090 с правильно настроенным Kilo Code Q8 и контекстом 120k - это мощнее, чем кажется.

Главное преимущество локальных агентов не в экономии денег на API. А в том, что вы контролируете каждый аспект системы. Можете изменить промпт, добавить инструменты, настроить логику планирования. В облаке вы арендуете чёрный ящик. У себя - строите систему.

Следующий шаг - подключить production-ready архитектуру с ReAct, Advanced RAG и инструментами. Но это уже другая история.