Агент, который редактирует файлы вашего проекта и сам делает коммиты. Главное его свойство — любое изменение отменяется одной командой.
| Open Interpreter | Aider | |
|---|---|---|
| Что делает | Пишет и выполняет код | Редактирует файлы в вашем проекте |
| Работает с | Чем угодно на компьютере | Только папкой проекта |
| История изменений | Нет | Каждая правка — отдельный коммит git |
| Как откатить | Никак | /undo, одна команда |
| Риск | Высокий | Низкий — всё под контролем версий |
Aider требует, чтобы проект был под git, и делает коммит после каждой своей правки. Испортил файл — вы возвращаетесь на шаг назад и ничего не потеряли. Это единственный агент в книге со встроенной кнопкой «отменить», и для начала работы он подходит лучше всех.
git --version
# macOS — предложит установить инструменты разработчика xcode-select --install # Windows winget install Git.Git
git config --global user.name "Ваше Имя" git config --global user.email "you@example.com"
Ставьте в отдельное окружение, как в главе 12. Актуальная команда установки — на
aider.chat; проект менял способ установки, поэтому сверьтесь с сайтом.
pip install aider-install aider-install
aider --version
Aider узнаёт адрес Ollama из переменной окружения, а модель — из ключа запуска.
export OLLAMA_API_BASE=http://127.0.0.1:11434 aider --model ollama_chat/qwen2.5-coder:14b
$env:OLLAMA_API_BASE = "http://127.0.0.1:11434" aider --model ollama_chat/qwen2.5-coder:14b
ollama_chat/
Не ollama/. Это разные режимы обращения, и с неправильным Aider работает
заметно хуже — путается в формате правок. Мелочь, которая стоит людям часов.
Создайте в папке проекта файл .aider.conf.yml:
model: ollama_chat/qwen2.5-coder:14b auto-commits: true gitignore: true
После этого достаточно набрать aider в папке проекта.
# Если проект ещё не под git git init git add . git commit -m "before aider" # Запуск aider
Сделайте коммит до первого запуска, даже если проект уже под git. Так у вас будет гарантированная точка возврата к состоянию «до того, как я пустил сюда агента». Это тридцать секунд, которые однажды спасут вечер.
Ключевая идея: Aider видит только те файлы, которые вы ему дали. Это и защита, и необходимость — чем меньше файлов в работе, тем лучше результат на локальной модели.
# Добавить файлы в работу /add main.py utils.py # Посмотреть, что сейчас в работе /ls # Дальше — просто пишите задачу словами: Добавь в main.py обработку ошибки, если файл не найден — выведи понятное сообщение и заверши работу с кодом 1 # Aider покажет правку, применит и сделает коммит # Посмотреть, что именно изменилось /diff # Не понравилось — отменить последнее /undo # Убрать файл из работы, чтобы не занимал контекст /drop utils.py
| Команда | Что делает |
|---|---|
/add файл | Добавить файл в работу |
/drop файл | Убрать из работы |
/ls | Показать файлы в работе |
/diff | Что изменилось после последней правки |
/undo | Отменить последний коммит агента |
/ask вопрос | Спросить, ничего не меняя |
/code задача | Явно попросить изменить код |
/run команда | Выполнить команду и показать вывод агенту |
/test команда | Прогнать тесты; при ошибке агент попробует починить |
/commit | Закоммитить изменения, сделанные вами вручную |
/tokens | Сколько контекста занято |
/clear | Очистить историю разговора, файлы оставить |
/help | Полный список |
/ask. Спросить «что делает эта функция» или «почему здесь может упасть»
без единого изменения файлов. Безопасный способ познакомиться с
агентом и с чужим кодом одновременно.
| Плохо | Хорошо | Почему |
|---|---|---|
| Исправь всё | В функции load_config добавь проверку, что файл существует | Конкретный файл и конкретное действие |
| Сделай красиво | Разбей функцию main на три: чтение, обработка, вывод | Понятно, что считать результатом |
| Оптимизируй | Замени цикл в строках 40–55 на списковое включение | Точное место |
| Добавь тесты | Напиши тесты pytest для parse_date: обычная дата, пустая строка, неверный формат | Названы случаи |
| Почини баг | При пустом файле падает с IndexError. Вот вывод: [...]. Добавь обработку | Дана ошибка целиком |
На локальной модели просьба «сделай A, потом B, потом C» почти наверняка закончится тем,
что сделано A, наполовину B и сломано C. Давайте по одной задаче, проверяйте
/diff, потом следующую. Это медленнее в моменте и быстрее в целом.
| Модель | Чего ждать |
|---|---|
| 7B | Мелкие правки в одном файле. Формат правок часто ломается |
| 14B coder | Рабочий минимум: правки в одном-двух файлах, простые функции, тесты |
| 32B coder | Похоже на настоящего помощника. Рефакторинг, несколько файлов |
| Облако из главы 23 | Заметно лучше во всём, но это уже не локально |
| Симптом | Решение |
|---|---|
| Not a git repository | git init в папке проекта |
| Правки не применяются, «malformed response» | Проверьте префикс ollama_chat/. Если верен — модель слабовата |
| Connection refused | Ollama не запущен или переменная OLLAMA_API_BASE не задана в этом окне |
| Переписывает лишнее | Слишком много файлов в работе. /drop ненужные |
| Забывает, о чём говорили | Закончился контекст. /clear, затем увеличьте контекст (глава 08) |
| Всё сломал | /undo. Если не помогло — git reset --hard к коммиту «before aider» |
ollama_chat//ask — вопрос без изменений/diff/undo — я знаю, как откатитьсяТо же самое, но внутри редактора кода, где каждое действие агента видно и подтверждается кнопкой.
Бесплатная книга · tariel.ge · команды и версии проверяйте в официальной документации проектов
Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.