Учебник

Aider с локальными моделями: код за копейки без программиста

Ваши менеджеры тратят часы на ручную доработку Excel-отчётов? Или вы сами пишете скрипты для автоматизации, но это отнимает время от бизнеса? Разбираем, как с помощью Aider - AI-агента для кода - автоматизировать рутину: от исправления ошибок в 1С до генерации отчётов. Без найма программиста, без API-расходов, с локальными моделями. Получите готовую команду для внедрения за вечер.

Макс Космов··8 мин чтения

У ваших менеджеров уходит по 2-3 часа в день на ручное форматирование отчётов из Excel или проверку HTML-вёрстки в письмах? А может, вы сами пишете скрипты для расчёта смет, но каждый раз тратите полдня на отладку? Есть способ: AI-агент Aider, который сам пишет и исправляет код. Он работает в вашем терминале, понимает контекст проекта и не требует программиста в штате. Разберём, как внедрить его за вечер, используя локальные модели - без ежемесячных платежей за API.

Разберём на примере небольшой стройфирмы (это пример, а не реальный кейс). У вас есть прайс-лист в Excel и типовой договор подряда. Вы хотите автоматически генерировать смету под каждого клиента. Aider может написать скрипт, который читает Excel и формирует PDF. Всё, что нужно - запустить Aider и дать команду на русском.

1. Architect + Editor split: дорогой планирует, дешёвый делает - экономим деньги

Architect-режим - это когда одну задачу делят две модели. Мощная (Architect) продумывает план, а дешёвая (Editor) тупо правит файлы по плану.

Как запустить:

aider --architect --model claude-opus-4 \
 --editor-model deepseek/deepseek-coder

Или с двумя разными Claude-моделями:

aider --architect --model claude-opus-4 \
 --editor-model claude-haiku-3-5

Экономика: Claude Opus стоит $15 за 1M токенов, Claude Haiku - $0.25. Architect читает задачу и создаёт план (мало токенов на дорогой модели). Editor многократно правит файлы (много токенов на дешёвой). Итоговая стоимость сложной задачи в 3-5 раз ниже.

Когда это нужно бизнесу:

  • Задача требует понимания всей структуры проекта (например, автоматизация расчёта сметы, где нужно задействовать несколько скриптов)
  • Нужен рефакторинг старых скриптов, которые писал уволившийся программист
  • Работаете с незнакомым языком (например, Python вместо привычного 1С)

Для простых задач (переименовать колонку в Excel, добавить логирование) Architect избыточен - используйте напрямую дешёвую модель.

2. Автотестирование: Aider сам проверяет и исправляет свои ошибки

Самая полезная фишка для предпринимателя: Aider может после каждого изменения запускать тест и, если тест упал, сам его исправлять. Это как если бы стажёр-программист не только писал код, но и сам находил и чинил свои косяки.

Базовая настройка:

aider --sonnet --test-cmd "pytest tests/ -x --tb=short"

Что происходит:

  1. Aider вносит изменение
  2. Автоматически запускает pytest tests/ -x --tb=short
  3. Если тесты прошли - ждёт следующую задачу
  4. Если упали - передаёт вывод pytest обратно агенту
  5. Агент анализирует ошибку и исправляет
  6. Снова тест

Флаг --auto-test говорит Aider запускать тесты автоматически:

aider --sonnet \
 --test-cmd "pytest tests/ -x" \
 --auto-test

Без --auto-test Aider спрашивает «запустить тесты?» после каждого изменения. С флагом - запускает сам.

Продвинутые конфигурации для разных проектов:

Django-проект (например, сайт турагентства):

aider --sonnet --test-cmd "python manage.py test --failfast 2>&1"

Nodejs с Vitest (например, лендинг шоурума):

aider --sonnet --test-cmd "npm run test -- --reporter=verbose --bail"

Ограничение количества повторов: по умолчанию Aider делает 3 попытки исправить упавший тест. Изменить:

aider --sonnet --test-cmd "pytest -x" --max-reflections 5

Если после N попыток тест всё ещё падает, Aider сообщит об этом и вернёт управление - не будет «застревать» бесконечно.

3. Работа с большим проектом: .aiderignore, тюнинг repo-map, оптимизация контекста

Если у вас проект с кучей файлов (например, интернет-магазин на 1С-Битрикс с тысячами скриптов), Aider без настройки будет тратить кучу токенов на обзор всей базы. Нужно ограничить.

Файл .aiderignore - аналог .gitignore для Aider:

# .aiderignore
node_modules/
.venv/
__pycache__/
build/
dist/
*.min.js
*.map
packages/legacy-app/ # старый пакет, не трогать
docs/ # документация, не код

Aider автоматически исключит эти пути из обзора и из автодобавления файлов.

Лимит repo-map:

aider --sonnet --map-tokens 2048 # по умолчанию 4096

Уменьшение map-tokens ускоряет старт и снижает стоимость за счёт менее полного обзора кодовой базы. Для задачи в одном пакете это нормально.

Работа из подкаталога монорепо:

cd packages/api
aider --sonnet
# repo-map строится только для packages/api

Запуск из подкаталога - самый простой способ ограничить контекст. Aider поднимется к корню Git-репозитория для коммитов, но обзор будет только для текущей директории.

Множественные .aiderignore: Можно создать .aiderignore в каждом подкаталоге. Aider применяет правила рекурсивно.

Принудительное добавление только нужных файлов:

aider --sonnet --no-auto-commits \
 src/api/handlers.py tests/test_handlers.py

Укажите файлы прямо в команде запуска - они добавятся в контекст без автопоиска.

4. Подключение локальных моделей через Ollama: какие модели реально работают с Aider

Хотите работать без интернета и без ежемесячной платы за API? Используйте локальные модели через Ollama. Это как установить AI-помощника к себе на сервер.

Ollama сервер должен быть запущен:

ollama serve # в отдельном терминале

Запуск Aider с Ollama:

export OLLAMA_API_BASE=http://localhost:11434
aider --model ollama/qwen2.5-coder:32b

Протестированные модели (результаты сообщества Aider):

Модель VRAM Качество кода Скорость
qwen2.5-coder:32b 24GB хорошее медленно
qwen2.5-coder:14b 12GB приемлемое норм
qwen2.5-coder:7b 8GB базовое быстро
deepseek-coder-v2:16b 12GB хорошее норм
codestral:22b 16GB хорошее норм

Для Apple Silicon (M1/M2/M3): RAM используется как VRAM. Macbook Pro 36GB справится с 32B моделью, хотя и медленно (~10 токенов/сек).

Типичные проблемы с локальными моделями в Aider:

  1. Модель не следует формату diff - используйте --edit-format whole для локальных моделей:
aider --model ollama/qwen2.5-coder:14b --edit-format whole
  1. Медленный ответ - уменьшите контекст:
aider --model ollama/qwen2.5-coder:14b --map-tokens 1024
  1. Галлюцинации методов - добавляйте меньше файлов в контекст, давайте более конкретные задачи.

5. Использование DeepSeek R1 и Qwen Coder как бюджетная альтернатива Claude

DeepSeek API - самый дешёвый облачный вариант для кодинга без потери качества на типичных задачах. Для стройфирмы, которая хочет автоматизировать сметы, это идеальный вариант: дёшево и сердито.

Настройка DeepSeek в Aider:

export DEEPSEEK_API_KEY=sk-...
aider --model deepseek/deepseek-coder

Цены DeepSeek Coder V3 (2026):

  • $0.014 за 1M токенов (вход) и $0.028 (выход)
  • В 100+ раз дешевле Claude Opus
  • В 10-15 раз дешевле Claude Sonnet

DeepSeek R1 - модель с «размышлением» (chain-of-thought), сильнее на сложных задачах:

aider --model deepseek/deepseek-r1

R1 медленнее, но лучше справляется с архитектурными задачами и дебагом нестандартных ошибок. Стоит в 3-5 раз дороже обычного DeepSeek Coder, но всё равно дешевле Claude.

Qwen Coder через OpenRouter:

export OPENROUTER_API_KEY=sk-or-...
aider --model openrouter/qwen/qwen-2.5-coder-32b-instruct

Практическая стратегия: используйте DeepSeek Coder для рутинных задач (рефакторинг, тесты, документация). Claude Sonnet для задач, требующих понимания контекста, Claude Opus - только для архитектурных решений в Architect-режиме.

6. Скрипты и автоматизация: Aider в CI/CD для автоматического исправления линтер-ошибок

Aider можно запускать в неинтерактивном режиме из скриптов и CI/CD. Например, чтобы каждую ночь автоматически проверять и исправлять ошибки в отчётах.

Неинтерактивный режим:

aider --sonnet --yes \
 --message "исправь все flake8 ошибки в src/" \
 --lint-cmd "flake8 src/" \
 --auto-lint

Флаг --yes автоматически отвечает «да» на все подтверждения. --message задаёт начальное сообщение без интерактивного ввода.

GitHub Actions для автоматического исправления линтер-ошибок:

name: Auto-fix lint
on:
 pull_request:
 types: [opened, synchronize]

jobs:
 lint-fix:
 runs-on: ubuntu-latest
 steps:
 - uses: actions/checkout@v4
 with:
 token: ${{ secrets.GITHUB_TOKEN }}
 - name: Install aider
 run: pip install aider-chat
 - name: Fix lint errors
 run: |
 aider --sonnet --yes \
 --message "исправь все ruff-ошибки" \
 --lint-cmd "ruff check src/ --fix-only" \
 --auto-lint \
 --auto-commits
 env:
 ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
 - name: Push fixes
 run: |
 git push origin ${{ github.head_ref }}

Bash-скрипт для локальной автоматизации:

#!/bin/bash
# fix-and-test.sh: исправить ошибки линтера и запустить тесты
aider --sonnet --yes \
 --message "$1" \
 --test-cmd "pytest tests/ -x" \
 --lint-cmd "ruff check ." \
 --auto-test --auto-lint \
 --no-git # если не нужны коммиты

7. Работа через SSH на удалённом сервере без GUI: типичные конфигурации

Aider отлично работает на удалённых серверах через SSH - это один из его главных плюсов по сравнению с IDE-агентами.

Базовая конфигурация для удалённого сервера:

# На сервере:
pip install aider-chat
export ANTHROPIC_API_KEY=sk-ant-...
cd /home/user/project
aider --sonnet

Tmux-сессия для длинных задач:

tmux new-session -d -s aider
tmux send-keys -t aider 'aider --sonnet --message "большой рефакторинг" --yes' Enter
# можно отключиться, задача продолжится
tmux attach -t aider # вернуться и посмотреть прогресс

Проброс X11 не нужен - Aider полностью текстовый. Работает в любом терминале без графики.

Ограничения скорости сети: Если сервер в другом регионе, запросы к API идут от сервера (быстро), не через ваш ноутбук. Это ускоряет работу, если ваш интернет медленный.

Безопасность: Не храните API-ключи в .bashrc на общих серверах. Используйте .env с ограниченными правами:

chmod 600 .env
cat .env
# ANTHROPIC_API_KEY=sk-ant-...

8. Профиль .aider.conf.yml: фиксируем модель, редактор, автокоммиты для командного использования

Файл .aider.conf.yml в корне проекта фиксирует настройки для всей команды. Хранится в Git-репозитории.

# .aider.conf.yml
model: claude-sonnet-4
editor-model: deepseek/deepseek-coder
architect: true

auto-commits: true
auto-lint: true
lint-cmd: "ruff check . --fix-only"
test-cmd: "pytest tests/ -x --tb=short"

edit-format: diff
map-tokens: 2048

git: true
no-pretty: false # цветной вывод

После добавления этого файла в репозиторий каждый разработчик в команде запускает просто aider - все настройки применятся автоматически.

Перезаписать конкретную настройку из файла:

aider --no-auto-commits # отключить автокоммиты на этот запуск
aider --model claude-opus-4 # использовать другую модель

Флаги из командной строки всегда имеют приоритет над .aider.conf.yml.

Конфигурация в home-директории - глобальные настройки для всех проектов:

~/.aider.conf.yml

Полезно для личных предпочтений (любимая модель, цветовая схема), не для командных настроек.

Частые вопросы

Architect-режим дороже - когда он оправдывает стоимость?

Architect оправдан, когда задача требует понимания всей архитектуры проекта и нетривиальных решений: рефакторинг с изменением паттернов, добавление новой системной возможности, дебаг сложного бага с неочевидными зависимостями. Для механических задач - переименование, добавление тестов по шаблону, форматирование - Architect избыточен. Используйте DeepSeek Coder напрямую: дешевле и быстрее.

Как защитить секреты (.env, ключи) от попадания в контекст Aider?

Добавьте в .aiderignore:

.env
.env.*
*.pem
*.key
secrets/

Aider никогда не добавит эти файлы в контекст автоматически. Для надёжности: не добавляйте их через /add вручную. Проверьте командой /tokens - вы увидите, какие файлы сейчас в контексте.

Можно ли запускать Aider автоматически в GitHub Actions?

Да, с флагами --yes --no-suggest-shell-commands --no-check-update. Пример workflow есть выше в гайде. Для безопасности создайте отдельный Fine-grained GitHub Token с правами только на нужный репозиторий, не используйте глобальный токен.

Какая локальная модель через Ollama даёт наилучшее качество для кодинга?

Qwen2.5 Coder 32B - лучшее качество среди локальных, сопоставимо с Claude Haiku на типичных задачах. Требует 24GB VRAM или 36GB+ RAM (Apple Silicon). Если железа меньше: DeepSeek Coder V2 16B на 12GB VRAM даёт хорошие результаты. Qwen2.5 Coder 7B работает на 8GB и подходит для простых задач.

Aider удаляет мои оригинальные комментарии в коде - как это контролировать?

Добавьте явное правило в .aider.conf.yml через опцию --system-prompt-file:

# aider-system.md
Не удалять существующие комментарии в коде.
Не переписывать логику, которую не просили менять.
Минимальные изменения для выполнения задачи.

И в конфиге: system-prompt-file: aider-system.md. Также помогает режим diff вместо whole - агент меняет только конкретные строки, а не переписывает файл целиком.

Что дальше

Следующий шаг: попробуйте Aider на простой задаче - например, попросите его написать скрипт для конвертации вашего прайс-листа из Excel в PDF. Установите Aider (pip install aider-chat), выберите модель (начните с DeepSeek Coder - дёшево), дайте команду на русском. На всю настройку уйдёт не больше часа.

AI Компас (t.me/kosmoslab_ai) - канал для предпринимателей в РФ и СНГ, которые применяют AI в своём бизнесе без программиста. Разбираем инструменты и схемы - без курсов и теории.