Лимиты Claude Code и других ИИ-инструментов для разработки улетают быстро — иногда после буквально пары правок. Причина часто не в сложности задачи, а в том, как агент собирает контекст: он судорожно читает файлы один за другим, затягивает в контекст лишнее и теряет нить изначального запроса.

Разработчик из сообщества ИИ Engineers Guild решил измерить это систематически. Он собрал бенчмарк на Python 3.13 и WSL2 Ubuntu, в роли агента использовал фреймворк Agno с моделью gpt-4.1-mini, зафиксировал температуру и промпты — и менял только один параметр: набор инструментов навигации по коду. Исходники опубликованы в репозитории letya999/tools-token-economy.

КонфигурацияКатегорияКлючевые инструменты
07_grepGrep-семействоPOSIX grep
08_git_grepGrep-семействоПоиск по индексу git
09_rgGrep-семействоripgrep
10_ugrepGrep-семействоugrep (нечёткий поиск)
11_ast_grepGrep-семействоПоиск по синтаксическому дереву
05_read_onlyЧтение контекстаGlob-паттерны + чтение файлов
06_read_allЧтение контекстаВсе файлы проекта с самого старта
16_serena_onlyСемантическая навигацияMCP-сервер Serena (символьный граф)
17_semble_onlyСемантическая навигацияЛокальные векторные эмбеддинги Semble
20_serena_sembleСемантическая навигацияГраф Serena + векторы Semble
12_tree_sitterСтруктурный поискAST через Tree-sitter
13_lspСтруктурный поискСписок символов по LSP
01_cursor_likeИнтегрированные архетипыrepo_map + RAG
02_claude_code_likeИнтегрированные архетипыglob + ripgrep + чтение файлов
03_gemini_likeИнтегрированные архетипыread_all + repo_map + rg
18_rg_repo_mapИнтегрированные архетипыripgrep + карта репозитория
21_bash_onlyМинимализмГолый терминал

Всего получилось 21 конфигурация, разбитых на шесть категорий. Первая — классические grep-инструменты: POSIX grep, git grep, ripgrep, ugrep и ast_grep (поиск по синтаксическому дереву). Вторая — стратегии чтения: только glob-паттерны или принудительная загрузка всех файлов проекта с самого старта. Третья — семантическая навигация: MCP-сервер Serena, строящий символьный граф вызовов, и Semble с локальными векторными эмбеддингами. Четвёртая — структурный поиск через Tree-sitter и LSP. Пятая — интегрированные архетипы, имитирующие подходы Cursor, Claude Code и Gemini. Шестая — голый bash без каких-либо специализированных инструментов.

В качестве метрики эффективности использован SPT (Success Per Token) — число успешных решений на тысячу потраченных токенов.

Для оценки результатов автор ввёл метрику SPT (Success Per Token) — количество успешных решений на тысячу потраченных токенов. Это важнее, чем просто процент правильных ответов: агент может решить задачу, но потратить на это в десять раз больше токенов, чем конкурент. Дополнительно считался Waste% — доля прочитанных, но так и не использованных токенов.

Задачи взяты из реальной кодовой базы. Средняя — исправить регистрозависимость Bearer-токена в middleware: найти одну функцию, поправить одну строку. Сложная — реализовать фичу aging_stale в пайплайне Polars: прокинуть новое поле, обновить логику в трёх файлах, дописать тесты. На средней задаче прогнали 20 конфигураций, 14 справились — pass rate 70%.

Оценку качества вёл LLM-судья (gpt-4.1-mini) по семи критериям: task_solved, correctness, tool_correctness, context_quality, minimality, pattern_adherence, tool_sequence. Итоговый Eval Score считается не как линейное среднее, а как геометрический показатель: если агент ломает бизнес-логику и получает ноль за correctness, весь скор обнуляется — даже при идеальной лаконичности кода. Для борьбы с галлюцинациями судьи на больших контекстах применены фильтр Неймана (отсекает статистические выбросы в оценках) и поправка Демискар — нелинейный штраф за избыточное чтение файлов.

Главный сюрприз бенчмарка: на средней задаче классические grep-инструменты показали результат не хуже, а местами лучше семантических решений. Избыток инструментов навигации вредит агенту так же, как их недостаток — модель начинает бесконечно переключаться между стратегиями поиска вместо того, чтобы решать задачу. Автор назвал это эффектом context explosion.

На сложной задаче картина меняется: гибрид символьного графа Serena и векторного поиска Semble (конфигурация 20_serena_semble) выделен как лучший результат. Символьный граф позволяет агенту сразу понять, кто кого вызывает и где лежат нужные типы, — без слепого перебора файлов. Векторный поиск добавляет семантическую близость там, где точное имя символа неизвестно. Вместе они дают агенту достаточно навигационного контекста без лишнего шума.

Полные данные по всем 21 конфигурации, включая графики Eval Score и статусы прогонов, опубликованы в репозитории. Бенчмарк продолжается: средняя задача дала 70% pass rate, результаты по сложной задаче автор обещает разобрать отдельно.