Перейти до вмісту
cd /blog

Дати ШІ-агенту контекст великого репозиторію без локального індексатора

[AI Agents] [MCP] [Indexing] [Monorepos]

> Як дати кодувальному агенту запитувану карту великого репозиторію з хмари, не запускаючи локальний індексатор на своєму ноутбуці.

Великий репозиторій не вміщується в контекстне вікно, і якщо ви хоч раз спрямовували індексатор ноутбука на справжній monorepo, ви знаєте, що там він теж не вміщується комфортно — RAM злітає, перша індексація займає годину, а ваш агент усе ще починає наступну сесію з вгадування, які файли важливі.

Звична відповідь — запускати індексатор поруч із редактором, і для репозиторію, який зручно вміщується на одній машині, це хороша відповідь. Якщо ваш monorepo вже індексується швидко в Cursor і це єдине місце, де вам потрібна карта, цьому тексту нічого додати — пропустіть його.

Цей текст про інший випадок — коли агенту потрібна запитувана карта великого репозиторію, а ви не хочете запускати для цього локальний індексатор.

Коли локальний індексатор — неправильний інструмент

Локальний індекс припускає, що код живе на тій машині, яка його запитує, і в масштабі справжнього monorepo це припущення тріщить навіть усередині одного редактора. Репозиторій просто більший, ніж ви хочете тримати «теплим» на ноутбуці: ви працюєте в одному пакеті, поки радіус впливу на три каталоги далі, а перша холодна індексація дерева у два мільйони рядків — не те, що ви хочете пережити двічі: ні на своїй машині, ні на CI-раннері, який ніколи раніше не клонував це дерево. Або колезі по команді має бути можна запитувати ту саму карту, що й вам, не чекаючи, поки його власна машина прожене той самий індекс.

Ніщо з цього не привід викидати хороший індексатор редактора. Це привід додатково мати розміщену карту, яку будь-який із ваших агентів може запитати через MCP.

І проблема масштабу глибша, ніж «забагато файлів, щоб вставити». На великому дереві цікаве питання майже ніколи не «покажи мені цей файл» — це яких файл, який символ, які виклики, які тести. Агент, що починає з переліку src/ і читання перших трьох результатів, легко пропустить обробник у apps/api і згенерований клієнт у packages/sdk. Вам потрібен пошук, побудований по всьому дереву, потім ранжований, потім процитований.

Що насправді означає «контекст великого репозиторію»

Вивалити файли в промпт — це не контекст, це менша й гірша копія дерева. Що дійсно потрібно вашому агенту — ставити запитання й отримувати у відповідь процитовані відповіді: де визначено цей символ і хто його викликає, що залежить від модуля, який я збираюся змінити, який файл тесту покриває цю поведінку, і як дерево виглядає зараз, а не минулого кварталу.

Ці відповіді мають надходити з індексу, побудованого за вашим репозиторієм, а не з пам’яті моделі про чужі репозиторії, і цей індекс має жити десь за межами контекстного вікна агента. Для цієї задачі він також має жити десь за межами вашого ноутбука.

Ще одна річ, яку файли інструкцій не можуть зробити за вас: CLAUDE.md і AGENTS.md — правильне місце для угод і поведінки, але це не жива, ранжована, запитувана карта дерева у два мільйони рядків. Використовуйте правила для поведінки; використовуйте інтелект репозиторію для фактів.

Будуємо карту в хмарі, запитуємо її з будь-якого клієнта

Maguyva — це віддалений MCP-шар контексту кодової бази. Ви підключаєте GitHub, обираєте свої репозиторії й можете йти, поки хмарні конвеєри розбирають дерево, будують символи й ребра графа та підтримують ранжовану карту — без локального індексатора, ніколи.

Коли ви пушите код, змінені файли розбираються інкрементально, а шари графа й ранжування перебудовуються за розкладом: щодня на безкоштовному плані, щогодини на платних. Кожен знімок позначений часом, тож ваш агент може визначити, яку версію дерева він читає. Чесне обмеження тут — несинхронізована локальна робота: правка, що існує лише у вашому робочому дереві й ніколи не була запушена, ще не потрапила до розміщеної карти.

Потім ви підключаєте будь-якого клієнта, яким уже користуєтеся, додавши API-ключ до його конфігурації MCP. Є посібники з налаштування для 24 задокументованих MCP-клієнтів, і будь-який інший MCP-сумісний клієнт, що підтримує стандартну конфігурацію, теж може підключитися. Якщо Cursor — ваш дім, сторінка Cursor проведе цим шляхом; той самий сервер відповідає Claude Code, VS Code, Windsurf, Codex CLI та іншим.

Вам не потрібно міняти редактор. Ви даєте своєму агенту поверхню інструментів — 11 MCP-інструментів для пошуку, символів, аналізу залежностей, отримання файлів і контексту репозиторію — з покриттям понад 279 мов і текстових технологій, що важить більше, ніж здається, на monorepo, який перестав бути одномовним багато років тому.

Відповіді повертаються обґрунтованими, у вигляді шляхів до файлів із номерами рядків. Семантичний, структурний, графовий і текстовий пошук зливаються в ранжовані результати, тож запитання на кшталт «що залежить від parseConfig» дає не звалище grep і не єдиний семантичний фрагмент, а жменьку місць, які справді важливі.

Конкретна інструкція

Не починайте з індексації всієї компанії. Ось шлях, який працює:

  1. Оберіть один репозиторій, який ви вже добре знаєте — пакет, який ви можете оцінити вручну, вартий більше, ніж найбільше дерево, яке у вас є.
  2. Почніть безкоштовно: 3 репозиторії, 50 тисяч проіндексованих рядків, усі 11 інструментів, без місячної квоти запитів. Якщо ваш репрезентативний репозиторій більший, сторінка тарифів перелічує рівні робочого простору ($0, $19, $49, $149) за обсягом індексації, а не за кількістю місць.
  3. Підключіть GitHub і зачекайте завершення першої індексації. Ви нічого не компілюєте локально.
  4. Підключіть MCP-клієнта — кілька рядків конфігурації. Maguyva — віддалений MCP-сервер, тож немає ні плагінів, ні розширень, ні другого редактора, який потрібно освоювати.
  5. Поставте одне запитання, яке можна перевірити. «Що залежить від parseConfig?» або «Де обробляється закінчення сесії входу?» Потім відкрийте процитовані результати file.ext:line і звірте їх із деревом перед вами.
  6. Лише після того, як цитати витримають цю перевірку, дозвольте агенту редагувати.

Якщо перший репозиторій підійшов, а ваше дерево велике, підвищте робочий простір відповідно до проіндексованих рядків і періодичності перебудови. Люди й агенти ділять один і той самий лічильник користувачів — Maguyva бере плату за робочий простір, а не за місце, — тож додавання третього агента до циклу нічого вам не коштує.

Тест активації той самий, що документація рекомендує для будь-якого першого запуску: проіндексуйте репозиторій, який ви вже знаєте, поставте одне запитання, яке можна перевірити. Великий репозиторій не змінює тест; він лише робить неправильний перший файл дорожчим.

На що звертати увагу після підключення

Слідкуйте за трьома речами. Актуальність: платні плани перебудовуються щогодини, безкоштовні — щодня, і непушнута локальна робота не потрапить до карти — це компроміс, на який ви йдете. Обсяг: індексуйте репрезентативний набір репозиторіїв, а не кожен заархівований форк; безкоштовний рівень навмисно розрахований на те, щоб зрозуміти, чи варті відповіді того, щоб їх зберігати. І перевірка: карта великого репозиторію, яка не може процитувати шляхи та номери рядків, — це просто повільніша машина для вгадування, тож нехай агент покаже місце, перш ніж постачати патч.

Потім запустіть той самий тест, що й на маленькому репозиторії. Проіндексуйте репозиторій, який ви вже знаєте. Поставте одне запитання, яке можна перевірити. Якщо карта справжня, ваш агент перестане починати з холодного дерева.

// no laptop got hot building this map.

Читайте також

Ще з журналу розробки Maguyva