В моем путешествии по агентским интерфейсам командной строки (CLI) я наконец-то пришел к усилиям с открытым исходным кодом, под руководством сообщества. По иронии судьбы, это один из оригинальных агентов CLI, и, как вы увидите, он несколько показывает свой возраст. Я посмотрю, как это фигурирует с моим набором функций качества жизни для агентского искусственного интеллекта и моего короткого теста.
Полог лифта «Aider позволяет вам соединить программу с LLMS, чтобы запустить новый проект или построить на существующей кодовой базе», — это тот, который разыгрывает мой аргумент о том, где агент Excel Excel. Тонкие, но хорошо указанные, крупные языковые модели (LLMS) лучше всего рассматривать как инженерные инструменты, работающие в вашем проекте в целом — не столько в редактировании помощи при написании кода.
Установка
Айдер устанавливается как проект Python. Питон между 3,8-3,13 предлагается:
Homebrew не упоминается сразу, поэтому я начну виртуальность, как это рекомендуется сделать. Я сбросил каталог, чтобы настроить Венвинг:
Обратите внимание на название проекта Tell-Tale, которое дает вам Ван.
Чтобы завершить установку, я ввожу следующее:
> Помогая на установке 1> Помогая на установке
Затем документация дает выбор между моделями из DeepSeek, OpenAI и антропного. У меня есть ключ для антропного, поэтому я использую это. Я вхожу в систему и использую консоль, чтобы создать ключ. Чтобы начать aider, я набираю:
> Польза модернель сонет-адеп-ключ Anpropic = SK .. 1> модель-модель сонет-adep-ключ Anpropic = SK ..
Сказав это, я вижу способы начать айдер со многими другими LLM, включая LLMS Ollama Self-Hosted.
Мы получаем простую начало сеанса:
Таким образом, Aider управляет собственным CLI, в данном случае в моей консоли Warp. (Если я изменяю размер своего терминала, эта зеленая линия больше не соответствует ширине. Полная линия не является очень разумной конструкцией в терминале. Позже существуют дополнительные небольшие проблемы с псевдо -терминалом Aider, например, повторяющиеся символы приглашения.)
Вы заметите, что каталог GIT находится ниже рабочего каталога, что вызвало проблему, поскольку у меня нет проверки содержимого. Но это не обычная проблема. Просто предупреждение о возможной путанице.
Так в чем же разница между основной моделью и слабой моделью? К счастью, я смог спросить aider. Это говорит о том, что более слабая модель используется для коротких, быстрых (и, надеюсь, более дешевых) взаимодействий:
- Простые завершения кода
- Основные задачи рефакторинга
- Когда основная модель недоступна
- Чувствительные к стоимости операции
- Быстрые итерации, когда идеальный код не критичен
Короче говоря, основная модель используется для агентских задач.
Глядя на конец этого последнего ответа, я отмечаю, что он дает общую сумму затрат. Это то, что я ищу в своих агентских функциях качества жизни:
Перечисление используемых моделей также является необходимостью. Я не видел никакого ключа к разрешениям или ограничениям.
Стандартный тест на слияние JSON
Как и в предыдущих обзорах Agentic CLI, я объединю два файла JSON вместе с простым предостережением.
Обратите внимание, что это не представляет собой какую-либо форму стандартизированного теста (перейдите к терминалу-панке для чего-то подобного). Я просто хочу проста, но, возможно, неоднозначный тест, которым я знаю, что LLM может управлять, чтобы мы могли видеть, как работает интерфейс.
У Aider есть концепция файлов в фокусе, которую вы можете «добавить в чат», как он его ставит. Хотя я вижу, что он запутался, сканируя мою репо, он понимает набор файлов, на которых он должен сосредоточиться, чтобы он мог устроиться в GIT.
Что я буду делать, так это добавить два моих знакомых файла JSON City JSON в текущий каталог, а затем /добавить их в aider. Я сделаю это на отдельной вкладке:
Эти каталоги были добавлены Aider, и мы посмотрим, почему вскоре.
Как и прежде, я попрошу слияние JSON, используя этот запрос:
«Пожалуйста, обновите файл json riginal_cities.json с содержимым файла updated_cities.json, но если поле« изображение »отличается, пожалуйста, обновите или напишите новое поле« Imageinted »с новым значением вместо этого».
Но во -первых, ограничения
Я должен сказать, что я не могу найти простые ссылки на то, где может бродить Aider. Он может видеть репо, и он будет только думать, что он владеет файлами, которые добавлены с /добавлением — это, вероятно, потому, что он был разработан до того, как питание (и риск), которую обеспечивают более новые модели. Я добавляю эту записку, потому что в целом, прежде чем вы используете какой -либо агент инструмент, вы должны понимать, какие изменения в вашей файловой системе он считает, что он может внести.
Теперь, когда я придерживаюсь запроса, мы получаем четкое представление о том, что я упоминал ранее: он хочет добавить файлы «в чате». Это должно помочь понять проблемы безопасности:
Затем я столкнулся с двумя проблемами. Во -первых, я не читал предупреждение о том, что все файлы относительно каталога GIT, а не текущего каталога. Во -вторых, я заметил, что он запутался по своему собственному файлу.
Затем он поразил меня, что происходит: он явно думал, что мой каталог Aider также был его каталогом Aider! Простое столкновение с именем каталога. Поэтому я перезапустил в новом каталоге. Это также дало бы мне возможность использовать флаг только-подстрижного, чтобы остановить его сканирование всего репо:
Я скопировал файлы в новый каталог и добавил их в Aider:
Я дал предыдущую просьбу, и, наконец, мы были в пути:
Это хорошее краткое изложение того, что нужно было сделать. Затем он показал стиль GIT Diff для изменений, предложенных для Original_Cities.json.
<<<<<<<< Поиск {"города": [
{
"id": "London",
"text": "London is the capital of the UK",
"image": "BigBen"
},
{
"id": "Berlin",
"text": "Great night club scene",
"image": "Brandonburg Gate",
"imageintended": "Reichstag"
},
{
"id": "Paris",
"text": "Held the Olympics of 2024",
"image": "EifelTower",
}
]
} ====== {"Города": [
{
"id": "London",
"text": "London is the capital and largest city in Great Britain",
"image": "BigBen"
},
{
"id": "Berlin",
"text": "Great night club scene but a small population",
"image": "Brandonburg Gate",
"imageintended": "BrandenburgGate"
},
{
"id": "Paris",
"text": "Held the Olympics of 2024",
"image": "EifelTower",
"imageintended": "NotreDame"
},
{
"id": "Rome",
"text": "The Eternal City",
"image": "TheColleseum"
}
]
} >>>>>> заменить 123456789101112131415161718192021222324252627282930313233435363738394041424344454474849
Поскольку он использовал git, он на самом деле не должен был спрашивать разрешение, так как это было просто местные коммиты:
Конечно, я не делал ни одного коммита, но айдер правильно добавил себя в качестве соавтора.
Заключение
Нет сомнений в том, что Aider не имеет большого контроля над терминалом по сравнению с более поздними агентскими примерами, такими как Claude Code, Gemini CLI и Warp. Я не нашел aider особенно хорошим опытом; Или, возможно, более точно сказать, что его расстояние от недавних агентских моделей ощутимо.
Тем не менее, использование GIT делает опыт более эффективным, хотя сам git довольно анти-атмосфера. Конечно, это совершенно намеренно — этот продукт не для кодировщиков Vibe. Я думаю, что с некоторыми из неудобного поведения (например, сканирование всего репо) можно обрабатывать флаги.
В целом я бы не рекомендовал Aider, учитывая превосходные варианты, которые я упомянул. Но это открытый исходный код, и поэтому его можно легко улучшить. Тем не менее, в этот момент проходу чувствует, что принесет нож в борьбу с оружием.
Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Дэвид был лондонским профессиональным разработчиком программного обеспечения в Oracle Corp. и British Telecom, а также консультантом, помогающим командам работать более гибким образом. Он написал книгу по дизайну пользовательского интерфейса и с тех пор пишет технические статьи …. Подробнее от Дэвида Истмана