Попросите ИИ-ассистента исправить баг в незнакомом сервисе — и понаблюдайте, что он делает в первую очередь: начинает читать. Открывает один файл, потом другой, ищет имя функции через grep и открывает ещё четыре. Каждый проход стоит токенов и времени, а агент всё равно добирается до правки вслепую — успев лишь выборочно просмотреть кодовую базу, но так и не поняв её.
Codna меняет этот порядок на обратный. Он читает весь репозиторий до того, как агент напишет хоть строчку, — строя структурную карту всего проекта за миллисекунды. Агенты читают ваш код. Codna его понимает.
Почему ИИ-ассистент читает вслепую
Большой репозиторий — это не папка с текстом. Это граф: импорты, точки вызова, определения типов и негласные соглашения, которые команда накапливала годами. Когда ИИ-агент обходит этот граф файл за файлом, он платит дважды: сначала токенами за повторное чтение уже виденного, затем ошибками из-за того, что так и не увидел нужного.
Сбой редко бывает очевидным. Агент устраняет симптом и не замечает общего хелпера в трёх директориях выше. Дублирует утилиту, которая уже существует. Меняет сигнатуру, не заметив семи вызывающих её мест ниже по коду. Это не ошибки рассуждения. Это ошибки контекста — модели просто не показали достаточно кодовой базы, чтобы она могла поступить иначе.
Большинство плохих правок от ИИ — не ошибки логики. Это ошибки недостающего контекста.
Стандартное решение — отправить больше текста: набить промпт файлами и надеяться, что нужные строки где-то там окажутся. Это меняет одну проблему на другую. Контекстное окно заполняется, расходы растут, а сигнал, который агенту действительно нужен, тонет в том, что ему не нужно.
Сначала карта — потом действие
Идея Codna в том, что понимание кодовой базы и её редактирование — две разные задачи, которые должны решаться двумя разными движками. Движок картирования выполняет дорогостоящую структурную работу один раз и поддерживает карту актуальной. Агент занимается написанием кода, приходя с точным контекстом вместо списка для чтения.
Картирование происходит за ноль токенов. Codna индексирует репозиторий с помощью статического анализа, а не прогоняя исходный код через языковую модель, — поэтому построение и обновление карты проекта в миллион строк ничего не стоит в инференсе. Бюджет модели тратится там, где он себя оправдывает, — на само изменение, а не на повторное знакомство с проектом в каждой сессии.
В результате получается ИИ-ассистент для работы с кодом, который относится к контексту кодовой базы как к инфраструктуре. Карта всегда есть, всегда актуальна и доступна для запроса в момент, когда агент в ней нуждается.
Понять. Исправить. Развить.
Цикл состоит из четырёх шагов, которые выполняются по порядку каждый раз, когда агент приступает к работе.
Сначала Codna картирует репозиторий — разбирает проект в структурный индекс файлов, символов, зависимостей и графов вызовов. Затем понимает эту карту, выясняя, как части соотносятся друг с другом, — чтобы запрос об одной функции учитывал и код, который её вызывает, и код, от которого она зависит. Когда поступает задача, Codna извлекает контекст — вытаскивает ровно тот фрагмент кодовой базы, которого касается изменение, и ничего лишнего. Наконец, направляет агента, передавая ему этот сфокусированный контекст, — чтобы агент редактировал с той же осведомлённостью, которую опытный инженер держит в голове.
Понять. Исправить. Развить. Формулировка намеренная. Понимание предшествует правке, потому что правка без понимания — это догадка. А развитие — рефакторинг, миграции, постепенное улучшение системы — безопасно лишь тогда, когда каждое изменение опирается на целое.
Что меняет точный контекст
Когда агент перестаёт читать вслепую, разница проявляется в работе, а не в демо.
- Правки попадают в нужное место, потому что агент видит каждый вызов затрагиваемой функции
- Расход токенов снижается, потому что модель не платит за повторное чтение файлов на каждом шаге
- Рефакторинг становится безопаснее: карта показывает полный радиус поражения изменения до его применения
- Погружение в незнакомый репозиторий перестаёт быть угадыванием — структура уже нанесена на карту
Вот граница между ИИ-агентом для работы с кодом и настоящей code intelligence. Один читает столько, сколько может себе позволить. Другой знает, что читать, ещё до начала. Среди инструментов для работы с кодом на базе ИИ эту разницу легко не заметить в быстром тесте — и невозможно не заметить за квартал реальной работы. Именно она отделяет умное автодополнение от лучшего ИИ-ассистента для кодовой базы, которую вам действительно нужно поддерживать.
Создан для репозиториев, которые у вас уже есть
Codna работает с реальными проектами — большими, многослойными, частично недокументированными, а не с аккуратными примерами из туториалов. Он работает рядом с агентами, которые команды уже используют, в том числе как ИИ-ассистент для VS Code, — так что карта обогащает инструменты, к которым разработчики привыкли, а не заменяет их. Цель никогда не состояла в том, чтобы добавить ещё одно окно. Цель — сделать так, чтобы агент в том окне, которое у вас уже есть, приходил уже зная, где находится.
По мере роста систем разрыв между чтением кода и его пониманием только увеличивается. Победят те ассистенты, которые закрывают его — картируя прежде, чем действовать. Codna работает уже сейчас, и он создан для этого будущего — где понимание кодовой базы является первым, что делают ваши инструменты, а не последним.