Технологии
GitHub выяснила: короткий вывод инструмента может сделать AI-агента дороже
Copilot сокращает не полезный контекст, а повторяющийся шум, лишнюю разметку и холостые обращения к модели — и измеряет экономию по всей задаче, а не по одному tool call.

GitHub опубликовала разбор четырёх оптимизаций Copilot, объединённых одной идеей: минимальный ответ отдельного инструмента не равен минимальной стоимости всей задачи. Если компрессор выбросил важную строку, агент повторно откроет сохранённый лог или запустит команду ещё раз. Первый tool call станет короче, но цепочка получит дополнительные ходы, задержку и контекст. Поэтому команда оценивает изменения на agentic coding benchmarks, а затем проверяет их в контролируемых online experiments.
Ловушка локальной экономии
GitHub проверила RTK, который сокращает shell output до передачи агенту. В использованных harness и benchmark-конфигурациях часть ответов действительно становилась меньше. Но когда исчезала нужная деталь, модель возвращалась к оригиналу или повторяла команду. В среднем задача потребляла больше токенов и занимала больше времени. Авторы осторожно ограничивают вывод своими нагрузками и не объявляют бесполезной любую компрессию.
Собственный compressor Copilot поэтому различает типы вывода. Результаты `git diff`, `git show`, произвольных скриптов и source-like команд сохраняются целиком. Поиск можно перегруппировать, но без потери совпадений. Сжимается главным образом повторяющийся install, build, test и progress noise — и только когда экономия существенна. Полный оригинал остаётся доступен, а частота повторного чтения служит сигналом, что фильтр стал слишком агрессивным.
Пять процентов из одних номеров строк
Самая чистая оптимизация не удаляла информацию вообще. Старый инструмент `view` добавлял номер к каждой строке файла, хотя современные edit tools находят фрагмент по окружающему коду и эти номера больше не использовали. Удаление префиксов снизило model-inference cost примерно на 5% в offline coding benchmarks без роста edit failures. В online experiment средняя дневная стоимость inference на пользователя снизилась примерно на 3% без обнаруженной существенной просадки качества или удовлетворённости.
Это небольшой интерфейсный долг с большим накопительным эффектом: префикс повторялся в каждой строке, затем ехал через последующие ходы в истории. GitHub оставила номера там, где они действительно помогают, — в diff и коротких фрагментах, — но убрала из обычного чтения файлов.
Сокращать промпт пришлось через регрессию
Инструкции task tool удалось уменьшить примерно вдвое с помощью meta-prompting loop. Однако первый online experiment выявил пропущенную offline-тестами регрессию: осторожная рекомендация о параллельности превратилась в жёсткую политику, и независимые custom agents начали выполняться последовательно. Эксперимент остановили, поведение оформили как отдельную evaluation, а правило заменили короткой фразой: независимые агенты могут работать параллельно с учётом side effects.
Финальный вариант убрал около 1300 prompt tokens на ход task tool, что соответствует примерно 1,8% меньшему общему объёму prompt tokens за сессию и 2,9% меньшей нормализованной стоимости на активный час. История важнее цифры: семантику системной инструкции нельзя считать сохранённой только потому, что сокращённый текст выглядит разумно человеку.
Убрать холостой вызов модели
Ещё одна экономия относится к orchestration. Раньше уведомление о завершении фоновой команды или sub-agent не содержало результата, и модель делала отдельный ход, чтобы его получить. Теперь подходящие уведомления группируются и доставляют готовые результаты в знакомом формате. В примере GitHub два фоновых результата вместо четырёх model calls обрабатываются одним; среднее token-related usage, измеряемое AI Credits, снизилось примерно на 2,3%.
Общий вывод практичен для любого agent harness: считать надо путь от запроса до принятого результата. Полезный контекст следует сохранять, шум — сжимать выборочно, детерминированную доставку результатов — отдавать оркестратору, а изменения промптов — покрывать поведенческими тестами. Ни одна из оптимизаций не сделала модель умнее; система просто перестала заставлять её выполнять работу, которой можно избежать.
Команда отдельно проверяла переносимость оптимизаций: изменение, полезное для code review, увеличило стоимость в Copilot CLI и поэтому не было выпущено. Даже общий harness не отменяет оценки на каждом product surface и типе задачи.