Работа с AIDER
Aider — это Open Source CLI-инструмент (консольная утилита), созданный специально для парного программирования с LLM прямо в вашем терминале.
В отличие от классических плагинов для VS Code, Aider спроектирован вокруг глубокой интеграции с Git и концепции Репозиторной карты (Repository Map).
Как устроено общение с моделью в Aider
Процесс взаимодействия с моделью в Aider строится по схеме «Чат \ Понимание контекста \ Правка файлов \ Git Commit»:
-
Контекст файлов (In-Chat Files):
Вы явно добавляете в чат файлы, которые модель должна редактировать или читать, с помощью команды
/add path/to/file.cs. Aider держит их содержимое в актуальном состоянии в окне контекста. -
Автоматическая карта репозитория (Repo Map):
Даже если вы добавили в чат всего один файл, Aider сканирует весь ваш Git-репозиторий с помощью парсеров
tree-sitter. Он строит компактную карту архитектуры: имена классов, методов, сигнатуры и их взаимосвязи по всему проекту. Эта карта автоматически передается модель в сжатом виде — нейросеть «знает» о существовании остальных сервисов и DTO, не перегружая контекстное окно лишним кодом. -
Специальный формат edits (Edit Formats):
Aider не заставляет модель переписывать 500 строк файла целиком. В зависимости от выбранной модели он заставляет её отвечать в формате
SEARCH/REPLACEблоков (показывает, какой кусок кода найти и на что заменить). Это резко снижает рассуждения и экономит токены. -
Автоматические Git-коммиты:
Как только модель присылает правки, Aider сам применяет их к файлам на диске и автоматически делает аккуратный
git commitс понятным описанием (например,git commit -m "Add UserDTO mapping"). Если результат вам не понравился, достаточно ввести/undo— и Aider откатит изменения.
Установка AIDER
pipx — это официальный и наиболее рекомендуемый способ, так как он изолирует зависимости Aider от системного Python и других пакетов в WSL/Linux.Описанные ниже действия проверялись мной в системе WSL.
Шаг 1. Установите pipx (если он еще не установлен)
sudo apt update
sudo apt install -y pipx
pipx ensurepath
pipx ensurepath может потребоваться перезапустить терминал или выполнить source ~/.bashrc, чтобы пути к бинарникам обновились).Шаг 2. Установите Aider
pipx install aider-chat
Шаг 3. Доустановите SOCKS и сетевые зависимости (Обязательно для OpenRouter / WSL)
Missing dependencies for SOCKS support при работе через OpenRouter или прокси, сразу внедрите сетевые пакеты в изолированное окружение Aider:pipx inject aider-chat PySocks requests[socks] urllib3
Шаг 4. Проверьте установку
aider --version
Полезные команды для обслуживания pipx в будущем
-
Обновить Aider до последней версии:
Bashpipx upgrade aider-chat -
Переустановить с нуля:Bash
pipx reinstall aider-chat
Настройки proxy.
Если вы находитесь в России, то большинство AI моделей не будет работать с вашим регионом, если к ним обращаться напрямую. Ниже описан рабочий вариант при открытом туннеле на внешний VPS для порта 1080, используются SOCKS. Как настроить туннель на внешний VPS описано здесь и здесь.
- Запустите туннель в отдельном окне терминала WSL на порту 1080
- Настройте переменные окружения для работы с proxy:
Если вы планируете постоянно использовать прокси, то можете прописать эти команды в файл ~/.bashrcexport ALL_PROXY=socks5h://127.0.0.1:[ваш порт SOCKS] export HTTP_PROXY=socks5h://127.0.0.1:[ваш порт SOCKS] export HTTPS_PROXY=socks5h://127.0.0.1:[ваш порт SOCKS]
Настройка AI моделей.
- weak-model - слабая / вспомогательная модель, используется для экономии денег и токенов
- editor-model - модель-редактор) отвечает за непосредственное применение изменений к файлам вашего проекта
- model - главная модель выполняет «тяжелую» умственную работу: пишет код, строит архитектуру и анализирует сложные взаимосвязи.
weak-model
weak-model (слабая / вспомогательная модель) используется для экономии денег и токенов.--model) выполняет «тяжелую» умственную работу: пишет код, строит архитектуру и анализирует сложные взаимосвязи. weak-model берет на себя рутинные служебные задачи, которые не требуют высокой экспертизы или сложного Reasoning.Основные функции weak-model:
-
Генерация сообщений для Git-коммитов (Commit Messages)
-
Когда Aider вносит изменения в файлы, он автоматически создает commit в вашем Git-репозитории.
-
weak-modelсмотрит наgit diffи формирует короткое понятное описание изменений (например:feat: add FluentValidation for LoginRequest).
-
-
Сжатие и саммаризация истории чата (Chat Summarization)
-
Когда диалог становится слишком длинным и подбирается к лимиту контекста, Aider автоматически сжимает старые сообщения.
-
weak-modelпересказывает старую часть переписки краткой выжимкой, чтобы освободить место для нового кода.
-
-
Оценка и фильтрация Repo Map (Карты репозитория)
-
При сборке дерева файлов проекта
weak-modelпомогает отсеивать нерелевантные куски кода, не перегружая контекст основной модели.
-
-
Простые вспомогательные проверки
-
Форматирование служебных ответов и обработка системных вызовов CLI.
-
Почему важно правильно настроить weak-model?
-
Экономия средств: Если ваша главная модель — дорогая (например, Claude 3.5 Sonnet или GPT-4o), использование её же для написания строчки
git commit— это пустая трата денег. -
Скорость: Легкие модели (вроде
gemini-2.0-flash,deepseek-chatилиox-alpha) генерируют коммиты и сжимают контекст за доли секунды, не заставляя вас ждать.
editor-model
editor-model (модель-редактор) отвечает за непосредственное применение изменений к файлам вашего проекта.--model) придумывает что и как изменить в коде, editor-model занимается рутинной «хирургической» работой — она берет предложенный код и аккуратно вставляет его в нужные места исходных файлов.Основные функции editor-model:
-
Форматирование diff'ов и замена кода (Editing / Search-Replace)
-
Модель принимает инструкции от главной модели и переводит их в точный формат правок Aider (обычно блоки
<<<<<<< SEARCH...=======...>>>>>>> REPLACE). -
Она находит нужные строки в файле и перезаписывает их, сохраняя форматирование, отступы и структуру вокруг.
-
-
Работа в режиме Architect (
/architect)
-
Это главный сценарий, где выделение
editor-modelраскрывает себя на 100%. -
В режиме Архитектора Main model (например,
deepseek-r1илиclaude-3-5-sonnet) выступает в роли «мозга»: пишет план, проектирует архитектуру и описывает изменения на верхнем уровне. -
Затем Editor model (более быстрая и дешевая модель) берет этот план и превращает его в реальные правки в файлах на диске.
-
-
Исправление ошибок синтаксиса при записи
-
Если при применении изменений произошел сбой (например, не совпал фрагмент кода для поиска),
editor-modelпытается скорректировать замену, чтобы не сломать файл.
-
Зачем разделять Main Model и Editor Model?
-
Экономия ресурсов и денег: Вы можете использовать супер-интеллектуальную (и дорогую) модель для рассуждений как Main Model, а для утилитарной задачи «найти строку X и заменить на Y» назначить гораздо более дешевую или бесплатную модель.
-
Повышение надежности: Не все «рассуждающие» модели (Reasoning Models, такие как
deepseek-r1) хорошо умеют строго следовать синтаксису блоков замены файлов Aider. Назначение отдельнойeditor-model(например,deepseek-chatилиgemini-2.0-flash) гарантирует, что файлы будут отредактированы без синтаксических сбоев.
model
--model) — это главный «мозг» Aider. Она отвечает за весь высокий интеллект, понимание логики проекта и принятие архитектурных решений.Основные функции основной модели:
-
Глубокий анализ и понимание кода
-
Разбирает структуру репозитория через карту
Repo Mapи контекст добавленных файлов. -
Находит взаимосвязи между классами, методами, контроллерами и базой данных.
-
Диагностирует баги, утечки памяти, проблемы с производительностью и уязвимости.
-
-
Проектирование и планирование (Reasoning & Architecture)
-
Составляет пошаговые планы рефакторинга и внедрения новых фич.
-
Принимает решения, какие именно файлы нужно изменить и какую архитектуру (SOLID, Clean Architecture и т.д.) использовать.
-
-
Генерация нового кода и алгоритмов
-
Пишет сложную бизнес-логику, запросы к БД, обработчики ошибок и тесты.
-
-
Управление другими моделями (в режиме
/architect)
-
Выступает в роли Senior-разработчика: формирует детальную инструкцию по правке файлов и передаёт её модели-редактору (
editor-model) для физического применения.
-
Сводная матрица всех трех ролей в Aider
| Роль | Главная задача | Важные качества | Пример модели |
Main Model (--model) |
Придумывает что и как делать, проектирует код. | Максимальный интеллект, логика (Reasoning), понимание контекста. | deepseek-chat (V3), deepseek-r1, claude-3-5-sonnet, gemini-2.0-flash |
Editor Model (--editor-model) |
Вставляет придуманный код в конкретные строки файлов. | Строгое следование формату SEARCH/REPLACE, точность. |
deepseek-chat, gemini-2.0-flash |
Weak Model (--weak-model) |
Пишет git commit, сжимает историю чата, фильтрует карту. |
Высокая скорость, минимальная стоимость / бесплатность. | gemini-2.0-flash-exp:free, ox-alpha |
Приведенные в таблице названия моделей могут быть неактуальны, лучше вам подобрать их самостоятельно, разобравшись со стоимостью.
Подключение моделей.
Ниже описан способ подключения моделей, который был мною протестирован. У каждой модели есть провайдер, одинаковые модели могут работать у разных провайдеров. Изначально я использовал провайдера OpenRouter, там у меня был небольшой баланс и он предлагал достаточно большой выбор моделей. Затем я немного изучил рынок и решил попробовать DeepSeek. DeepSeek был выбран потому что в России он работает без VPN и существуют вполне официальные способы пополнения баланса для аккаунтов на этой платформе, недорогие модели DeepSeek сопоставимы по эффективности с моделями флагманов индустрии.
Оба провайдера используют протокол обмена от OpenAI и aider не требует дополнительных настроек для его использования.
Подключение провайдеров производится через указание ключей в переменных окружения сессии:
export OPENROUTER_API_KEY="ваш_ключ_для_openrouter"
export DEEPSEEK_API_KEY="ваш_ключ_для_deepseek"
вы можете прописать эти команды в файл ~/.bashrc
Если вы определились с моделями и не собираетесь их менять в интерфейсе aider-a, то лучше запустить его сразу с указанием всех трех моделей
aider --model deepseek/deepseek-chat \
--editor-model openrouter/google/gemini-2.0-flash \
--weak-model openrouter/poolside/laguna-s-2.1:free
Модель openrouter/poolside/laguna-s-2.1:free бесплатная и на момент написания статьи работает, остальные модели даны для примера.
Работа с интерфейсом aider
После запуска приложения в терминале вы увидите символ приглашения ">", внутренние команды вводятся через слэш, например "/exit", после ввода слэша вам будет предложено выпадающее меню из доступных команд, после набора первых букв команды количество команд будет уменьшатся в соответствии с первыми введенными буквами.
Не забывайте для указания команды сначала вводить слэш. Если вы забудете это сделать, то текущая модель, получив эту команду, начнет фантазировать, что ей делать в соответствии с предыдущей историей сообщений в сессии и вы гарантированно просто потратите деньги и время на вывод чуши, которую она придумает.
Если вы сначала хотите провести анализ проекта, то лучше отключить модель для редактирования, это можно сделать двумя способами:
- команда /ask
- команда /editor-model none
Такое отключение я нахожу необходимым, потому что у меня не получалось дать команду главной модели просто сделать анализ и не делать правок, видимо это баг aider, сразу после анализа включается все равно редактирование и вы можете испортить проект, потратить деньги на редактирование и потом откатывать изменения в Git.
Основные режимы работы aider
Сравнительная таблица
| Характеристика | /ask (Запрос / Консультация) | /architect (Архитектор) | /code (Редактирование) |
| Редактирование файлов | ❌ Строго запрещено | ✅ Запрашивает подтверждение перед записью | ✅ Автоматически при согласии |
| Режим работы | Текстовый диалог (Read-only) | Двухэтапный (План $\rightarrow$ Правки) | Прямой (Код $\rightarrow$ Файлы) |
| Используемые модели | Только Main Model | Main Model + Editor Model | Main Model |
| Идеально для... | Аудита, поиска багов, вопросов по коду | Сложного рефакторинга, архитектурных фич | Точечных правок, быстрых багфиксов |
1. Режим /ask (Только чтение / Консультация)
Repo Map и добавленные файлы, но не генерирует инструкции редактирования (SEARCH/REPLACE).-
Что делает: Отвечает на вопросы, объясняет логику работы кода, проводит статический аудит и поиск ошибок.
-
Главный плюс: Абсолютная безопасность. Вы гарантированы от того, что модель случайно изменит или испортит код.
-
Пример использования:
Plaintext/ask Как устроена авторизация в этом проекте и где слабые места в защите?
2. Режим /architect (Проектирование + Применение)
-
Этап 1 (Планирование): Основная модель (
--model, например, DeepSeek-R1 или Claude 3.5 Sonnet) анализирует задачу, проводит глубокие рассуждения и пишет подробный текстовый план решения. -
Этап 2 (Реализация): Модель-редактор (
--editor-model, например, DeepSeek-Chat) берет предложенный план и переводит его в точечные блоки правок кода. -
Подтверждение: Aider показывает вам предложенный план и спрашивает: "Применить эти изменения в файлы?"
-
Главный плюс: Высокое качество кода при сложных задачах. Умная модель не отвлекается на синтаксис файлов, а модель-редактор гарантирует точное нанесение правок.
-
Пример использования:
Plaintext/architect Переведи авторизацию с JWT-токенов в localStorage на httpOnly Cookie с защитой от CSRF.
3. Режим /code (Стандартный / Прямое редактирование)
-
Что делает: Основная модель сразу пытается сгенерировать готовые блоки кода (
SEARCH/REPLACE) и записать их в файлы. -
Главный плюс: Максимальная скорость при простых и понятных задачах.
-
Пример использования:
Plaintext/code Добавь проверку на null в контроллере LoginRequest и верни BadRequest 400.
Рекомендуемый workflow при работе с проектом
-
Анализ: Запустите
/askдля безопасного аудита и составления списка проблем. -
Проектирование: Переключитесь в
/architectдля реализации сложных архитектурных изменений. -
Исправления: Используйте
/codeдля быстрых точечных правок и написания валидаторов/тестов.
Общие сведения о командах aider
/. Их можно разделить на четыре группы по уровню критичности для повседневной работы.1. Управление файлами и контекстом (Самый высокий приоритет)
-
/add <files>— добавляет файлы в контекст. Модель видит их содержимое целиком. Работает по автодополнению (Tab) и маскам (/add src/*.cs). -
/drop <files>— удаляет конкретный файл из контекста. Без параметров (/drop) очищает весь список файлов. -
/ls— выводит список всех файлов, которые находятся в контексте прямо сейчас.
2. Режимы работы (Архитектура и Безопасность)
-
/code— стандартный режим прямого редактирования. Модель сразу создает правки в виде блоковSEARCH/REPLACEи записывает их в файлы. -
/architect— двухэтапный режим. Модель сначала пишет подробный текстовый план решения, а затем переводит его в код. Идеально для сложного рефакторинга. -
/ask— режим консультации и аудита (Read-Only). Запрещает модели изменять файлы. Безопасен для анализа базы кода.
3. Контроль изменений и история (Управление сессией)
-
/undo— отменяет последний коммит и все изменения файлов, сделанные Aider за предыдущий шаг. -
/diff— показывает разницу между текущим состоянием файлов и последним коммитом Git. -
/clear— очищает историю текстового диалога, сохраняя при этом добавленные файлы в контексте. Помогает, когда чат переполняется.
4. Настройка моделей и системные вызовы (Конфигурация)
-
/model <name>— меняет основную модель (например,/model openrouter/deepseek/deepseek-chat). /editor-model <name>— меняет модель для редактирования и внесения правок в файлы-
/weak-model <name>— назначает легкую модель для служебных задач (генерация коммитов, сжатие контекста). -
/run <command>(или!<command>) — выполняет bash-команду в системе прямо из чата (например,/run dotnet buildили/run npm test). -
/exit— завершает работу Aider.
Полезная информация.
При работе с aider в терминале VS Code начинает теряться история.
1. Увеличить размер буфера терминала в VS Code
-
Откройте настройки VS Code (
Ctrl + ,на Windows/Linux илиCmd + ,на macOS). -
В поисковой строке введите:
terminal.integrated.scrollback. -
Увеличьте значение (по умолчанию обычно стоит 1000 или 10000). Установите, например,
50000или100000строк.
2. Использовать встроенную историю самого Aider
-
Файлы истории: Aider по умолчанию сохраняет логи сессий в скрытой папке
.aider.chat.history.md(в корне вашего проекта или в домашней директории). Вы можете открыть этот файл и посмотреть весь текст прошлых сессий. -
Перезапуск с историей: При повторном запуске Aider подхватывает контекст из git-репозитория и файлов, но если нужно восстановить именно диалог, можно использовать флаги запуска или посмотреть упомянутый выше файл логов.
3. Запускать Aider во внешнем терминале (или tmux)
-
Попробуйте запускать Aider в отдельном окне терминала (например, в системном PowerShell / Windows Terminal на Windows или во внешнем терминале на Linux/macOS). У внешних терминалов буфер прокрутки часто работает стабильнее.
-
Если вы работаете в WSL Ubuntu, отлично помогает связка с
tmux. Запустив сессиюtmuxвнутри WSL перед вызовом Aider, вы гарантируете, что история сохранится даже при случайном закрытии вкладки или обрыве связи с терминалом.
4. Использовать режим /clear или /undo
-
Вместо бесконечной прокрутки вниз используйте команды внутри Aider:
-
/undo— отменить последние изменения в коде и в диалоге. -
/clear— очистит текущий контекст чата (при этом файлы на диске останутся измененными), начав чистый лист, но сохранив историю в файл логов.
-
No comments to display
No comments to display