Прогулка разработчика Aider, агента с открытым исходным кодом CLI

В моем путешествии по агентским интерфейсам командной строки (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, а также консультантом, помогающим командам работать более гибким образом. Он написал книгу по дизайну пользовательского интерфейса и с тех пор пишет технические статьи …. Подробнее от Дэвида Истмана

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *