Spring til indhold
cd /blog

Giv en AI-agent kontekst om et stort repo uden en lokal indekser

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

> Hvordan du giver en kodende agent et søgbart kort over et stort repository fra skyen, uden at køre en lokal indekser på din bærbare.

Et stort repository passer ikke i et kontekstvindue, og hvis du nogensinde har rettet en bærbar-indekser mod et rigtigt monorepo, ved du, at det heller ikke passer komfortabelt der — RAM’en skyder i vejret, den første indeksering tager en time, og din agent starter alligevel den næste session med at gætte, hvilke filer der betyder noget.

Det sædvanlige svar er at køre en indekser ved siden af editoren, og for et repo, der passer komfortabelt på én maskine, er det et godt svar. Hvis dit monorepo allerede indekseres hurtigt i Cursor, og det er det eneste sted, du har brug for kortet, har denne tekst intet at tilføje — spring den over.

Denne tekst handler om det andet tilfælde — når en agent har brug for et søgbart kort over et stort repository, og du ikke vil køre en lokal indekser for at få det.

Hvornår en lokal indekser er det forkerte værktøj

Et lokalt indeks antager, at koden lever på den maskine, der spørger det, og i reel monorepo-skala strammes den antagelse selv inden for en enkelt editor. Repoet er simpelthen større, end du vil holde ‘varmt’ på en bærbar: du arbejder i én pakke, mens blast radius ligger tre kataloger væk, og en første kold indeksering af et træ på to millioner linjer er ikke noget, du vil gennemgå to gange — hverken på din egen maskine eller på en CI-runner, der aldrig har klonet det træ før. Eller en kollega burde kunne spørge det samme kort som dig, uden at vente på, at deres egen maskine kæmper sig gennem det samme indeks.

Ingen af disse ting er en grund til at smide en god editor-indekser væk. Det er en grund til også at have et hostet kort, som enhver af dine agenter kan spørge via MCP.

Og skalaproblemet går dybere end ‘for mange filer at indsætte’. På et stort træ er det interessante spørgsmål næsten aldrig ‘vis mig denne fil’ — det er hvilken fil, hvilket symbol, hvilke kaldere, hvilke tests. En agent, der starter med at liste src/ og læse de tre første resultater, vil muntert overse handleren i apps/api og den genererede klient i packages/sdk. Det, du har brug for, er hentning bygget fra hele træet, derefter rangeret, derefter citeret.

Hvad ‘kontekst om et stort repo’ egentlig betyder

At dumpe filer ind i prompten er ikke kontekst — det er en mindre, ringere kopi af træet. Det, din agent virkelig har brug for, er at stille spørgsmål og få citerede svar tilbage: hvor dette symbol er defineret, og hvem der kalder det, hvad der afhænger af det modul, jeg er ved at ændre, hvilken testfil der dækker denne adfærd, og hvordan træet ser ud nu, ikke sidste kvartal.

Disse svar skal komme fra et indeks bygget ud fra dit repo, ikke fra modellens hukommelse om andres repos, og indekset skal leve et andet sted end agentens kontekstvindue. For dette problem bør det også leve et andet sted end din bærbare.

Endnu en ting instruktionsfiler ikke kan gøre for dig: CLAUDE.md og AGENTS.md er det rigtige sted for konventioner og adfærd, men de er ikke et levende, rangeret, søgbart kort over et træ på to millioner linjer. Brug regler til adfærd; brug repo-intelligens til fakta.

Vi bygger kortet i skyen, spørger det fra enhver klient

Maguyva er et fjernt MCP-lag for kodebasekontekst. Du forbinder GitHub, vælger dine repositorier, og kan gå din vej, mens cloud-pipelines analyserer træet, bygger symboler og grafkanter, og vedligeholder et rangeret kort — aldrig en lokal indekser.

Når du pusher kode, analyseres ændrede filer inkrementelt, og graf- og rangeringslagene genopbygges efter en tidsplan: dagligt på den gratis plan, hver time på betalte planer. Hvert øjebliksbillede er tidsstemplet, så din agent kan sige, hvilken version af træet den læser. Den ærlige begrænsning her er usynkroniseret lokalt arbejde — en ændring, der kun findes i dit arbejdstræ, aldrig pushet, er endnu ikke i det hostede kort.

Derefter forbinder du enhver klient, du allerede bruger, ved at tilføje en API-nøgle til dens MCP-konfiguration. Der findes opsætningsguider til 24 dokumenterede MCP-klienter, og enhver anden MCP-kompatibel klient, der understøtter standardkonfiguration, kan også forbinde. Hvis Cursor er der, du bor, går Cursor-siden den vej; den samme server svarer Claude Code, VS Code, Windsurf, Codex CLI og resten.

Du skifter ikke editor. Du giver din agent en værktøjsflade — 11 MCP-værktøjer på tværs af søgning, symboler, afhængighedsanalyse, filhentning og repo-kontekst — med dækning af over 279 sprog og tekstbaserede teknologier, hvilket betyder mere, end du tror, på et monorepo, der holdt op med at være ét sprog for mange år siden.

Svar kommer tilbage underbygget, som filstier med linjenumre. Semantisk, strukturel, graf- og tekstsøgning smeltes sammen til rangerede resultater, så et spørgsmål som ‘hvad afhænger af parseConfig’ hverken giver dig et grep-dump eller et enkelt semantisk uddrag, men den håndfuld steder, der virkelig betyder noget.

En konkret fremgangsmåde

Start ikke med at indeksere hele virksomheden. Her er vejen, der virker:

  1. Vælg ét repository, du allerede kender godt — en pakke, du kan vurdere i hånden, er mere værd end det største træ, du har.
  2. Start gratis: 3 repos, 50k indekserede linjer, alle 11 værktøjer, ingen månedlig forespørgselskvote. Hvis dit repræsentative repo er større, viser prissiden arbejdsområdeniveauerne ($0, $19, $49, $149) efter indekseret omfang — ikke efter antal pladser.
  3. Forbind GitHub og vent på, at den første indeksering er færdig. Du kompilerer intet lokalt.
  4. Forbind MCP-klienten — nogle få linjer konfiguration. Maguyva er en fjern MCP-server, så der er ingen plugins, ingen udvidelser, og ingen anden editor at tage til sig.
  5. Stil ét spørgsmål, du kan verificere. ‘Hvad afhænger af parseConfig?’ eller ‘Hvor håndteres udløb af login-sessionen?’ Åbn derefter de citerede file.ext:line-resultater og tjek dem mod træet foran dig.
  6. Først efter citaterne overlever den kontakt, lader du agenten redigere.

Hvis det første repo passer godt, og dit træ er stort, så hæv arbejdsområdet til at matche dine indekserede linjer og genopbygningstakt. Mennesker og agenter deler det samme brugerantal — Maguyva opkræver pr. arbejdsområde, ikke pr. plads — så at tilføje en tredje agent til løkken koster dig ingenting.

Aktiveringstesten er den samme, som dokumentationen anbefaler til enhver første kørsel: indekser et repo, du allerede kender, stil ét spørgsmål, du kan verificere. Et stort repo ændrer ikke testen; det gør bare en forkert første fil dyrere.

Hvad du skal holde øje med efter tilslutning

Hold øje med tre ting. Friskhed: betalte planer genopbygges hver time, gratis planer dagligt, og upushet lokalt arbejde vil ikke være i kortet — det er den afvejning, du accepterer. Omfang: indekser et repræsentativt sæt af repos, ikke hver arkiveret fork; det gratis niveau er bevidst dimensioneret til at finde ud af, om svarene er værd at beholde. Og verificering: et kort over et stort repo, der ikke kan citere stier og linjenumre, er bare en langsommere gættemaskine, så lad din agent vise stedet, før den leverer patchen.

Kør derefter den samme test, du ville køre på et lille repo. Indekser et repo, du allerede kender. Stil ét spørgsmål, du kan verificere. Hvis kortet er ægte, holder din agent op med at starte fra et koldt træ.

// no laptop got hot building this map.

Relateret læsning

Mere fra Maguyva-byggeloggen