tenzorНачать
Все статьи

Из чего состоит кодинг-агент: 176 конфигураций и что реально работает

Агент, который пишет код, состоит не из одной модели. Вокруг неё есть обвязка: как задача разбивается на шаги, что помнится между ними, какими инструментами можно пользоваться. Обычно такие системы сравнивают целиком, и непонятно, какая деталь даёт результат.

Три составные части обвязки агента: планирование, контекст, инструменты

Новая работа устроена иначе: цикл выполнения зафиксировали, а три компонента меняли по очереди. Получилось 176 сопоставимых конфигураций на четырёх моделях и двух наборах задач.

Управление контекстом ценнее там, где окно меньше

Первый вывод простой. Чем теснее окно контекста, тем важнее, как агент им распоряжается, и почти вся польза приходит из одного: задача не падает от переполнения.

Лучшая стратегия оказалась двухступенчатой. Сначала механически выбрасывается лишнее по правилам, и только потом остаток сворачивается моделью в конспект. Обратный порядок дороже, а результат хуже.

Отдельно проверили модный приём: делать выброшенное восстановимым, чтобы агент мог вернуть детали, если они вдруг понадобятся. Механика получилась сложной, модели ею почти не пользуются, прироста точности нет.

Планирование меняет роль в зависимости от модели

Слабым моделям план нужен как подпорка: он поднимает точность. Сильным он точности почти не добавляет, зато экономит деньги.

Планирование и выбор инструментов: что меняется для слабых и сильных моделей

Разбор траекторий объясняет, почему так. План не столько улучшает ход решения, сколько меняет место, где агент останавливается: он раньше понимает, что задача сделана, и не наматывает лишние круги.

Инструменты: готовые кнопки или голый bash

Третий компонент — набор действий. Можно дать агенту заранее описанные инструменты, а можно пустить его в командную строку и не ограничивать.

Готовые инструменты против обычного терминала

Ответ зависит от модели. Тем, кто плохо владеет командной строкой, заготовленные инструменты помогают. Моделям, которые с ней в ладах, голый bash обходится существенно дешевле, особенно на задачах, где работа и так идёт в терминале. Набор действий при этом меняет гранулярность: с готовыми инструментами код пишется крупными кусками, в терминале — мелкими шагами.

Что из этого забрать себе

Выводы работы касаются разработчиков агентов, но два из них пригодятся любому, кто пользуется нейросетями в длинных задачах.

Следите за длиной разговора. Больше всего результат портит не качество модели, а переполненный контекст: старое вытесняет нужное, и агент теряет нить. Если чат идёт долго, полезно самому подвести промежуточный итог и начать новый разговор с ним.

План помогает не там, где кажется. Просить модель сначала составить план разумно на сложной задаче со слабой моделью. На сильной модели план скорее сократит расходы, чем повысит качество ответа.

Что такое обвязка агента?+

Всё, что окружает модель в автономном режиме: цикл шагов, правила работы с контекстом, планирование и набор доступных инструментов. Один и тот же движок с разной обвязкой даёт заметно разный результат.

Какая стратегия работы с контекстом лучшая?+

Сначала выбросить лишнее по формальным правилам, затем свернуть остаток моделью в конспект. Эта связка оказалась самой эффективной по соотношению цены и точности.

Нужно ли просить модель составлять план?+

Слабой модели план заметно помогает, сильной он в основном экономит деньги, почти не меняя точность. На коротких задачах смысла в нём мало.

Лучше давать агенту готовые инструменты или терминал?+

Зависит от модели. Слабым в командной строке нужны заготовленные инструменты, уверенным в bash дешевле дать терминал.

Где смотреть саму работу?+

Препринт опубликован на arXiv под номером 2609.20804, там же полные таблицы по всем 176 конфигурациям.

Что дальше почитать

Соберите агента под свою задачу

Проекты с документами, внешние инструменты и поручения по расписанию — без кода.

Открыть чат