Skip to main content

Работа с AIDER

Aider — это Open Source CLI-инструмент (консольная утилита), созданный специально для парного программирования с LLM прямо в вашем терминале.

В отличие от классических плагинов для VS Code, Aider спроектирован вокруг глубокой интеграции с Git и концепции Репозиторной карты (Repository Map).

Как устроено общение с моделью в Aider

Процесс взаимодействия с моделью в Aider строится по схеме «Чат $\rightarrow$ Понимание контекста $\rightarrow$ Правка файлов $\rightarrow$ Git Commit»:

  1. Контекст файлов (In-Chat Files):

    Вы явно добавляете в чат файлы, которые модель должна редактировать или читать, с помощью команды /add path/to/file.cs. Aider держит их содержимое в актуальном состоянии в окне контекста.

  2. Автоматическая карта репозитория (Repo Map):

    Даже если вы добавили в чат всего один файл, Aider сканирует весь ваш Git-репозиторий с помощью парсеров tree-sitter. Он строит компактную карту архитектуры: имена классов, методов, сигнатуры и их взаимосвязи по всему проекту. Эта карта автоматически передается модель в сжатом виде — нейросеть «знает» о существовании остальных сервисов и DTO, не перегружая контекстное окно лишним кодом.

  3. Специальный формат edits (Edit Formats):

    Aider не заставляет модель переписывать 500 строк файла целиком. В зависимости от выбранной модели он заставляет её отвечать в формате SEARCH/REPLACE блоков (показывает, какой кусок кода найти и на что заменить). Это резко снижает рассуждения и экономит токены.

  4. Автоматические Git-коммиты:

    Как только модель присылает правки, Aider сам применяет их к файлам на диске и автоматически делает аккуратный git commit с понятным описанием (например, git commit -m "Add UserDTO mapping"). Если результат вам не понравился, достаточно ввести /undo — и Aider откатит изменения.

Установка AIDER

Установка Aider через pipx — это официальный и наиболее рекомендуемый способ, так как он изолирует зависимости Aider от системного Python и других пакетов в WSL/Linux.

Описанные ниже действия проверялись мной в системе WSL.

Выполните следующие шаги в терминале WSL:

Шаг 1. Установите pipx (если он еще не установлен)

Bash
sudo apt update
sudo apt install -y pipx
pipx ensurepath
(После выполнения pipx ensurepath может потребоваться перезапустить терминал или выполнить source ~/.bashrc, чтобы пути к бинарникам обновились).

Шаг 2. Установите Aider

Выполните команду установки:

Bash
pipx install aider-chat

Шаг 3. Доустановите SOCKS и сетевые зависимости (Обязательно для OpenRouter / WSL)

Чтобы избежать ошибок вида Missing dependencies for SOCKS support при работе через OpenRouter или прокси, сразу внедрите сетевые пакеты в изолированное окружение Aider:

Bash
pipx inject aider-chat PySocks requests[socks] urllib3

Шаг 4. Проверьте установку

Проверьте, что Aider доступен в системе и выводит версию:

Bash
aider --version

Полезные команды для обслуживания pipx в будущем

  • Обновить Aider до последней версии:

    Bash
    pipx upgrade aider-chat
    
  • Переустановить с нуля:
    Bash
    pipx reinstall aider-chat
    

Настройки proxy.

Если вы находитесь в России, то большинство AI моделей не будет работать с вашим регионом, если к ним обращаться напрямую. Ниже описан рабочий вариант при открытом туннеле на внешний VPS для порта 1080, используются SOCKS. Как настроить туннель на внешний VPS описано здесь и здесь.

  • Запустите туннель в отдельном окне терминала WSL на порту 1080
  • Настройте переменные окружения для работы с proxy: 
    export 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]
    Если вы планируете постоянно использовать прокси, то можете прописать эти команды в файл ~/.bashrc
Эти действия необходимо выполнить перед запуском оболочки AIDER, чтобы она подхватила эти переменные. 

Настройка AI моделей.

Aider работает с 3 моделями:
  • weak-model - слабая / вспомогательная модель) используется для экономии денег и токенов
  • editor-model - 
  • model - главная модель выполняет «тяжелую» умственную работу: пишет код, строит архитектуру и анализирует сложные взаимосвязи. weak-model берет на себя рутинные служебные задачи, которые не требуют высокой экспертизы или сложного Reasoning.

weak-model

В Aider концепция weak-model (слабая / вспомогательная модель) используется для экономии денег и токенов.

Главная модель (--model) выполняет «тяжелую» умственную работу: пишет код, строит архитектуру и анализирует сложные взаимосвязи. weak-model берет на себя рутинные служебные задачи, которые не требуют высокой экспертизы или сложного Reasoning.

Основные функции weak-model:
  1. Генерация сообщений для Git-коммитов (Commit Messages)

    • Когда Aider вносит изменения в файлы, он автоматически создает commit в вашем Git-репозитории.

    • weak-model смотрит на git diff и формирует короткое понятное описание изменений (например: feat: add FluentValidation for LoginRequest).

  2. Сжатие и саммаризация истории чата (Chat Summarization)

    • Когда диалог становится слишком длинным и подбирается к лимиту контекста, Aider автоматически сжимает старые сообщения.

    • weak-model пересказывает старую часть переписки краткой выжимкой, чтобы освободить место для нового кода.

  3. Оценка и фильтрация Repo Map (Карты репозитория)

    • При сборке дерева файлов проекта weak-model помогает отсеивать нерелевантные куски кода, не перегружая контекст основной модели.

  4. Простые вспомогательные проверки

    • Форматирование служебных ответов и обработка системных вызовов CLI.

Почему важно правильно настроить weak-model?
  • Экономия средств: Если ваша главная модель — дорогая (например, Claude 3.5 Sonnet или GPT-4o), использование её же для написания строчки git commit — это пустая трата денег.

  • Скорость: Легкие модели (вроде gemini-2.0-flash, deepseek-chat или ox-alpha) генерируют коммиты и сжимают контекст за доли секунды, не заставляя вас ждать.