Перейти к основному содержимому
CodeAlive 3.0: от context engine к агенту для исследования кода
CodeAlive

Ко всем статьям

Harness CodeAlive против OpenCode: плюс 18,7 пункта на той же модели

Rodion Mostovoi

Rodion Mostovoi

https://www.linkedin.com/in/rodion-mostovoi/

Мы дали одной модели, DeepSeek V4.1 Flash, одни и те же 40 вопросов по двум настоящим репозиториям и меняли только агента вокруг неё. Harness CodeAlive набрал на 40% больше, чем OpenCode, а на большом репозитории потратил в 3,6 раза меньше токенов.

DeepSeek V4.1 Flash, reasoning effort maxOpenCodeHarness CodeAliveCodeAlive к OpenCode
Оценка, все 40 вопросов46,665,3+40%
Токенов на задачу на большом репозитории2,80 млн767 тыс.−73%
Время на задачу на большом репозитории297 с104 с−65%

Если подключить к OpenCode инструменты CodeAlive по MCP, оценка вырастает до 50,3, а расход токенов на большом репозитории падает на 30%. Остальной выигрыш даёт сам harness.

Что сравнивали

В июле мы показали, что небольшой Qwen внутри harness CodeAlive обходит Sonnet. В этот раз модель не менялась.

Вопросы взяты из RepoContextBench v2: 20 по Microsoft Agent Framework (около 513 тыс. строк) и 20 по Sapling (около 1,5 млн строк). LLM-судья сверяет каждый ответ с эталонными утверждениями из кода и ставит оценку от 0 до 100. Во всех конфигурациях модель работала с reasoning effort max.

Агентов было три:

  1. OpenCode, универсальный open-source агент для кода, со встроенным поиском и чтением файлов по локальному checkout.
  2. Тот же OpenCode, к которому по MCP подключены инструменты CodeAlive, а в AGENTS.md написано ими пользоваться.
  3. Harness CodeAlive: наш исследовательский агент, сделанный под ответы на вопросы о коде. Инструменты те же, но вызываются напрямую.

Результаты

АгентAgent FrameworkSaplingВсе 40
OpenCode49,343,946,6
OpenCode + CodeAlive MCP53,946,750,3
Harness CodeAlive74,056,765,3

Разрыв в оценке 24,7 пункта на Agent Framework и 12,8 на Sapling. На Sapling harness к тому же проделал гораздо меньше работы:

Sapling, на задачуOpenCodeOpenCode + CodeAlive MCPHarness CodeAlive
Токенов2,80 млн1,97 млн767 тыс.
Время297 с463 с104 с
Вызовов инструментов, все 20 задач1 157942459

OpenCode тратил шаги на grep и чтение файлов целиком, и каждый шаг заново отправлял модели всю растущую историю. Агент CodeAlive находил нужные символы через индекс и читал только их. С MCP OpenCode расходовал на 30% меньше токенов, чем без него, но работал медленнее: свой цикл он сохранил и добавил к нему вызовы CodeAlive.

Почему одних инструментов мало

Через MCP OpenCode активно пользовался инструментами CodeAlive: только на Agent Framework это 186 вызовов grep, 112 чтений и 74 семантических поиска. Оценка выросла на 3,7 пункта. Harness с теми же инструментами прибавил 18,7.

Разница в том, как агент работает с инструментами:

  • начинает с семантического поиска, а не с обхода директорий;
  • читает по символам: fetch_artifacts возвращает нужную функцию вместе с вызывающими и вызываемыми, а не файл на 2 000 строк;
  • в конце каждого результата инструмента есть подсказка следующего шага, особенно полезная небольшим моделям;
  • одинаковые повторные вызовы ловятся раньше, чем съедят бюджет шагов;
  • исследование агент завершает явно, когда доказательств достаточно.

OpenCode рассчитан на то, чтобы в одном цикле править код, запускать команды и читать файлы. Наш harness делает одну работу: находит нужный код и отвечает по нему.

Экономия зависит от размера репозитория

На Agent Framework выигрыш был только в качестве, по токенам его не было. Harness потратил 398 тыс. токенов на задачу против 180 тыс. у OpenCode и 50 секунд против 42. Оба агента обращались к модели примерно по семь раз за задачу, но у нашего больше стартовый промпт и объёмнее ответы инструментов: целые символы с вызывающими, а не список совпавших строк. На короткой задаче эта постоянная часть перевешивает. Зато за неё мы получили 24,7 пункта.

На Sapling OpenCode понадобилось гораздо больше шагов, его история росла с каждым прочитанным файлом, и баланс перевернулся. Экономия растёт с размером кодовой базы непропорционально: она появляется, когда репозиторий достаточно велик, чтобы универсальный агент начал в нём блуждать.

Ограничения

Это внутренние диагностические прогоны, по одному на конфигурацию, а не запись в опубликованном лидерборде. Повтор одного и того же прогона сдвигал оценку примерно на ±2 пункта, намного меньше разрывов выше, а расход токенов — примерно на 14%. Оценивает LLM-судья Muse Spark 1.3 с reasoning effort medium, два голоса на задачу, по фиксированной рубрике.

Токены — это вход и выход по данным провайдера, включая кешированный вход. Обе конфигурации OpenCode обращались к модели через один шлюз, а harness CodeAlive через другой, поэтому доля кешированного входа сравнима лишь примерно. Стоимость построения индекса CodeAlive не учтена: она платится один раз на репозиторий.

Если вы уже работаете с агентом для кода, быстрее всего дать ему контекст репозитория через CodeAlive MCP. Но основной прирост в наших прогонах дала передача самого исследования отдельному агенту. Что добавляет граф вызовов, мы разобрали в статье GraphRAG по коду, а насколько точен сам граф — в статье CodeAlive и открытые индексаторы графа кода.

БенчмаркиContext EngineeringАгенты для кода

Новые статьи

Следите за работой, а не за маркетинговой воронкой

Одно прямое письмо после публикации. Без отслеживания открытий и кликов, продаж и чаще одного раза в день.

Дайте агентам всю кодовую базу

Проиндексируйте первый репозиторий за минуты — или попробуйте демо без регистрации.