AI coding agents быстро съедают контекст: читают целые файлы, тянут длинные логи и повторяют поиск по репозиторию. Свежая работа ContextSniper показывает, что проблему можно решать не только большим окном модели, а дисциплиной подачи фактов: меньше мусора, больше проверяемых фрагментов.
Если агенту дать весь репозиторий, он не становится внимательнее. Он чаще теряет причинную цепочку: где возникла ошибка, какой файл реально связан с тестом и какая строка в логе важна. В исследовании ContextSniper, опубликованном на arXiv 2 июля 2026 года, авторы описали слой памяти для задач уровня репозитория: он извлекает кандидаты кода и runtime-свидетельства, ранжирует их и возвращает агенту компактные evidence packets.
Результат показательный. На SWE-bench Lite такой подход снизил общий расход токенов на 51,5% для OpenClaw и на 38,9% для Claude Code. Затраты упали на 36,4% и 27,3% соответственно. Цена есть: доля submitted-resolution немного просела, с 26,0% до 24,0% у OpenClaw и с 32,0% до 30,0% у Claude Code. Для практики это хороший ориентир: экономия контекста не должна превращаться в слепое сжатие.
Что давать агенту вместо всего проекта
Рабочая схема начинается с короткого пакета контекста. Сначала приложите описание задачи и точную ошибку. Затем добавьте минимальный набор файлов: место падения теста, соседний модуль, интерфейс или тип, который связывает их между собой. Если нужен поиск, отдавайте не полный вывод rg, а 10-20 релевантных строк с путями и номерами строк.
- Для багов в тестах: failing test, stack trace и файл с реализацией.
- Для регрессий после коммита: diff, связанный тест и changelog поведения.
- Для API-ошибок: контракт, вызывающий код и пример реального payload.
- Для фронтенда: компонент, состояние, screenshot или короткое описание визуального сбоя.
Как не потерять важное
Не удаляйте исходный след полностью. ContextSniper отдельно подчёркивает идею recoverable source context: агент получает компактный пакет, но путь к исходным файлам и логам остаётся известен. В ручной работе это значит: рядом с выжимкой оставляйте команды, которыми она получена, и ссылки на файлы. Тогда агент может запросить расширение точечно, а не заново сканировать весь проект.
Полезно вводить бюджет на один цикл. Например: один поиск по символу, один просмотр файла, один запуск узкого теста. После этого агент должен объяснить, какие факты уже подтверждены и чего не хватает. Такой ритм дешевле, чем десятки хаотичных чтений, и заметно проще для ревью.
Когда экономить нельзя
Слишком жёсткое сжатие опасно в задачах миграции, безопасности и изменения общих типов. Если патч затрагивает контракт между модулями, агенту нужен полный путь влияния: callers, tests, конфигурация и крайние случаи. Исследование DUALVIEW про структурное представление репозиториев хорошо показывает ту же проблему с другой стороны: последовательная текстовая навигация плохо держит дальние зависимости, поэтому структуру приходится явно показывать.
Практическое правило простое: контекст должен быть коротким, но проверяемым. Не «вот всё, разберись», и не «вот один кусок, угадай остальное». Давайте агенту доказательства, а не архив.
