Контекстное проектирование LLM: Когда 'помощь' вредит
В сфере разработки искусственного интеллекта "контекстное проектирование" стало новым подходом к повышению производительности больших языковых моделей (LLM). Специалисты индустрии активно используют файлы AGENTS.md (и аналогичные, например CLAUDE.md) как ключевую точку конфигурации для кодирующих агентов – своеобразный "маяк" на уровне репозитория, который внедряется в каждый диалог для помощи ИИ в работе со сложными кодовыми базами.
Однако недавнее исследование, проведенное учеными из ETH Zurich, внесло существенные коррективы в эту концепцию. Выводы оказались очевидны: если не подходить к файлам контекста осознанно, можно серьезно снизить эффективность агента, при этом заплатив за это дополнительно 20%.
Почему "хороший" контекст оказывается бесполезным
Исследовательская группа из ETH Zurich проанализировала кодирующих агентов, таких как Sonnet-4.5, GPT-5.2 и Qwen3-30B, используя как общепринятые тесты, так и новый набор задач реального мира под названием AGENTBENCH. Результаты оказались неожиданными:
- "Автоматический налог": Автоматически сгенерированные файлы контекста фактически снизили процент успешного выполнения задач примерно на 3%.
- Цена "помощи": Эти файлы увеличили стоимость вычислений более чем на 20% и потребовали большего количества шагов рассуждений для решения тех же задач.
- Человеческий фактор: Даже файлы, написанные вручную, обеспечили лишь незначительное увеличение производительности – около 4%.
- Предел интеллекта: Интересно, что использование более мощных моделей (например, GPT-5.2) для генерации этих файлов не привело к улучшению результатов. Более сильные модели часто обладают достаточным объемом "параметрических знаний" об общих библиотеках, поэтому дополнительный контекст становится избыточным шумом.
Исследователи подчеркивают, что ИИ-агенты склонны к излишнему послушанию. Они стремятся соблюдать инструкции, найденные в файлах контекста, но когда эти требования не нужны, это усложняет задачу. Например, обзоры кодовой базы и списки каталогов – обычная часть большинства файлов AGENTS.md – не помогают агентам быстрее ориентироваться. Они способны самостоятельно находить структуру файлов, а чтение готового списка лишь расходует токены рассуждений и создает "ментальную" нагрузку. К тому же, файлы, сгенерированные LLM, часто избыточны, если в репозитории уже есть хорошая документация.
Новые правила контекстного проектирования
Чтобы файлы контекста действительно помогали, необходимо отойти от подхода "всеобъемлющей документации" к "хирургическому вмешательству".
1. Что включать ("самое необходимое")
- Технический стек и назначение: Объясните "что" и "зачем". Помогите агенту понять цель проекта и его архитектуру (например, структура монорепозитория).
- Неочевидные инструменты: Именно здесь
AGENTS.mdпроявляет себя лучше всего. Укажите, как собирать, тестировать и проверять изменения, используя конкретные инструменты, напримерuvвместоpipилиbunвместоnpm. - Эффект мультипликатора: Данные показывают, что инструкции выполняются – инструменты, упомянутые в файле контекста, используются значительно чаще. Например, инструмент
uvиспользовался в 160 раз чаще (1,6 раза на экземпляр против 0,01) при явном упоминании.
2. Что исключить ("шум")
- Подробные деревья каталогов: Не нужно их. Агенты могут находить необходимые файлы без карты.
- Стилистические руководства: Не тратьте токены на указание агенту "использовать camelCase". Используйте детерминированные линтеры и форматировщики – они дешевле, быстрее и надежнее.
- Инструкции, специфичные для задачи: Не добавляйте правила, которые применимы только к части ваших задач.
- Непроверенный автоконтент: Не позволяйте агенту писать собственный файл контекста без проверки человеком. Исследование показывает, что "более сильные" модели не обязательно становятся лучшими помощниками.
3. Как структурировать
- Сохраняйте лаконичность: Общий консенсус для высокопроизводительных файлов контекста – менее 300 строк. Профессиональные команды часто сокращают их еще больше – до 60 строк. Каждая строка важна, так как она внедряется в каждую сессию.
- Постепенное раскрытие информации: Не помещайте все в корневой файл. Используйте основной файл, чтобы направлять агента к отдельной, специфической для задачи документации (например,
agent_docs/testing.md) только при необходимости. - Указатели вместо копий: Вместо внедрения фрагментов кода, которые со временем устареют, используйте указатели (например,
file:line), чтобы показать агенту, где найти шаблоны проектирования или конкретные интерфейсы.
Ключевые выводы
- Отрицательное влияние автоматической генерации: LLM-сгенерированные файлы контекста, как правило, снижают процент успешного выполнения задач примерно на 3% в среднем по сравнению с отсутствием контекста репозитория.
- Значительное увеличение стоимости: Включение файлов контекста увеличивает стоимость вычислений более чем на 20% и приводит к большему количеству шагов, необходимых агентам для выполнения задач.
- Минимальная польза от участия человека: Хотя файлы контекста, написанные человеком (предоставленные разработчиком), работают лучше, чем сгенерированные автоматически, они обеспечивают лишь незначительное улучшение – около 4% по сравнению с отсутствием файлов контекста.
- Избыточность и навигация: Подробные обзоры кодовой базы в файлах контекста в значительной степени избыточны по отношению к существующей документации и не помогают агентам быстрее находить релевантные файлы.
- Строгое следование инструкциям: Агенты обычно соблюдают инструкции в этих файлах, но ненужные или чрезмерно ограничивающие требования часто усложняют решение реальных задач для модели.
Авторизуйтесь, чтобы оставить комментарий.
Нет комментариев.
Тут может быть ваша реклама
Пишите info@aisferaic.ru