Инструменты1 августа 2026 г., 18:19 МСК🤖 Auto

Context Compiler: как сократить промпт для AI-агентов на 74%

Исследователь Emmimal P Alexander представил инструмент Context Compiler, который сокращает размер контекста для coding-агентов на 69–74% за счет компиляции зависимостей, а не просто их фильтрации.

Баннер новости 4884

Проблема: агенты тратят 70% контекста впустую

Большинство coding-агентов (например, на базе Codex) строят промпты, просто собирая файлы, которые «кажутся» релевантными. Это приводит к тому, что до 70% контекстного окна заполняется нерелевантным кодом. При сокращении окна контекста (как это произошло с моделями OpenAI Codex, где дефолтное окно упало с 372k до 272k токенов) агенты начинают использовать «компакцию» — сжатие памяти, которое часто приводит к потере деталей и ошибкам.

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

Решение: Context Compiler на Python

Разработчик Emmimal P Alexander создал инструмент Context Compiler на чистом Python (без сторонних библиотек). Он работает в три этапа, отсекая лишнее до отправки запроса в LLM:

  • Pass 1: Symbol Resolution. Анализ импортов и символов. Инструмент строит граф зависимостей от целевого файла. Если вызов нельзя объяснить импортом, он ищет символ в репозитории. Динамические вызовы (например, через getattr()) помечаются как неизвестные, а не угадываются, чтобы избежать ложных срабатываний.
  • Pass 2: Interface Extraction. Зависимые файлы, не являющиеся целевыми, «скелетизируются». Тела функций заменяются на ..., сохраняются только сигнатуры, аргументы и docstrings. Это позволяет агенту знать интерфейс, не загружая контекст внутренней логикой.
  • Pass 3: Context Assembly. Сборка финального промпта в трех уровнях: полный исходный код целевого файла, скелеты зависимостей и полный отказ от нерелевантных файлов.

Результаты тестирования

Инструмент был протестирован на двух реальных Python-репозиториях. Результаты показали значительное сокращение объема данных при сохранении функциональности:

Метрика Значение / Описание
Сокращение размера промпта 69–74% (в одном из тестов — с 556 до 362 токенов, что составляет 34.9% от исходного объема, но в более крупных репозиториях экономия достигает 70%)
Время компиляции менее 75 мс (в одном из запусков — 12.45 мс)
Точность анализа Инструмент честно маркирует случаи, когда статический анализ не может определить вызовы (например, через getattr() или декораторы событий), вместо того чтобы генерировать ложные зависимости.
Экономия на примере класса Класс PaymentProcessor сократился с 448 до 173 символов (61% экономии) за счет удаления тела функции charge().

Почему это важно

Подход демонстрирует, что проблема не в размере контекстного окна, а в его качестве. «Контекстная инженерия» (context engineering) должна быть систематизирована. Context Compiler показывает, что дисциплина компиляции (разрешение зависимостей, удаление недостижимого кода, абстракция интерфейсов) позволяет агентам работать эффективнее даже при жестких ограничениях по токенам. Исходный код доступен на GitHub: github.com/Emmimal/context-compiler/.

Источник: Towards Data Science ↗