Miksi Claude Code lukee koko projektin uudelleen ja miten ongelma ratkaistaan
MarkdownClaude Code ei indeksoi koodia, vaan lukee projektin uudelleen alusta, mikä kuluttaa tokeneita. Näin annat sille pysyvän koodimuistin MCP:n kautta ja vähennät käyttöä.
Lue koko artikkeli
Keskeinen huomio
Claude Code ei pidä koodistasi hakemistoa. Jokaisessa istunnossa se etsii projektista uudelleen ja lukee tiedostot alusta, joten tokenit kuluvat tiedusteluun työnteon sijaan. Ongelman voi ratkaista koodimuistilla: asenna MCP:n kautta indeksointipalvelin, niin Claude voi käyttää valmista projektikarttaa sen sijaan, että lukisi kaiken uudelleen.
Ailoot-dokumentaatio: API, avaimet ja yhteys.
Miksi Claude Code lukee projektin joka kerta uudelleen alusta?
Keskeinen huomio
Claude Codessa ei ole sisäänrakennettua koodi-indeksiä. Se etsii projektista kolmella työkalulla: etsii tiedostoja mallin perusteella, hakee tekstistä merkkijonoja ja lukee kokonaisia tiedostoja. Tätä kutsutaan agenttiseksi hauksi: malli päättää, mistä etsiä, ja toistaa prosessin jokaisen uuden tehtävän kohdalla. Se ei muista edellistä istuntoa, joten jokainen uusi istunto alkaa alusta.
Moni luulee tätä virheeksi. Näin Claude Code on kuitenkin suunniteltu: sillä ei ole omaa projekti-indeksiä. Kun pyydät sitä korjaamaan jotakin, sillä ei ole valmista koodikarttaa käytettävissään – se tutkii projektin uudelleen: etsii asiaankuuluvat tiedostot, hakee tarvittavia merkkijonoja ja lukee tiedostoja muistiin.
Tällä lähestymistavalla on todellisia etuja. Koodi on aina ajan tasalla – käytössä ei ole vanhentunutta indeksiä. Mitään ei tarvitse määrittää. Koodiasi ei lähetetä mihinkään tietokantaan.
Huonona puolena on se, että jokainen uusi tehtävä merkitsee uutta haku- ja lukukierrosta. Tokeneita kuluu siihen, että Claude selvittää uudelleen, missä kaikki sijaitsee, vaikka se teki tämän jo edellisessä istunnossa. Mitä suurempi projekti on, sitä enemmän tämä tiedustelu maksaa. Siksi voi tuntua siltä, että agentti ”lukee kaiken”.
Kuinka paljon tokeneita tähän oikeastaan kuluu?
Keskeinen huomio
Jo ennen koodin uudelleenlukemista Claude Code lähettää jokaisessa pyynnössä noin 33 000 tokenia järjestelmätietoja. Todellisessa työskentelykokoonpanossa kokonaismäärä nousee 75 000–85 000 tokeniin ennen kuin olet kirjoittanut sanaakaan. Tämän päälle lisätään tiedostojen uudelleenlukeminen, ja virallisen dokumentaation mukaan tiedostojen lukeminen kuluttaa eniten kontekstia.
Kustannukset alkavat jo ennen pyyntöäsi. Eräs riippumaton mittaus osoittaa sen yksinkertaisesti: Claude Code lähettää noin 33 000 tokenia järjestelmäkehotetta ja työkalujen kuvauksia ennen kuin se lukee viestisi ensimmäistäkään merkkiä. Vertailun vuoksi OpenCode aloittaa noin 7 000 tokenista.
Seuraavaksi mukaan tulee uudelleenlukeminen. Jokainen tiedostohaku ja jokainen lukukerta lisää tokeneita kontekstiin. Claude Coden virallinen dokumentaatio sanoo tämän suoraan: tiedostojen lukeminen hallitsee kontekstin käyttöä. auth.ts-tiedoston 2 400 tokenin analyysi tarkoittaa, että vain Claude on nähnyt 2 400 tokenia, ja sama koskee jokaista tiedostoa, jonka se avaa tiedustelun aikana.
Yleisöllemme tämä tarkoittaa rahaa ja käyttörajoja. Vibe codingin aloittavien ihmisten suurin pelko on: ”Maksoin, ja käyttörajat tulivat turhaan vastaan.” Jos agentti skannaa projektin ja lukee tiedostot uudelleen alusta jokaista tehtävää varten, konteksti kuluu kaksi kertaa nopeammin: ensin järjestelmän yleiskuluihin ja sitten tiedusteluun. Käsittelin Claude Code -tokenien kulumista kokonaisuudessaan oppaassa ”Mihin Claude Code -tokenit kuluvat” – projektin uudelleenlukeminen on yksi siinä esitellyistä yhdeksästä mallista.
Mitä pysyvä koodimuisti tarkoittaa?
Keskeinen huomio
Koodimuisti on valmis projektikartta, jota agentti voi hyödyntää sen sijaan, että se lukisi tiedostot uudelleen. Erillinen työkalu skannaa koodisi kerran, muodostaa rakenteen funktioista, tiedostoista ja niiden yhteyksistä ja tallentaa sen levylle. Kun kysyt myöhemmin, ”missä maksaminen käsitellään”, Claude saa vastauksen kartasta yhdellä kyselyllä sen sijaan, että kävisi jokaisen tiedoston läpi.
Koodimuisti ratkaisee juuri sen puutteen, jonka takia Claude lukee projektin uudelleen. Ajatus on yksinkertainen: annetaan jonkin työkalun skannata koko koodi kerran, rakentaa siitä kartta ja pitää kartta valmiina. Sen jälkeen agentin ei tarvitse joka kerta aloittaa etsintää alusta – se kysyy kartalta.
Teknisesti tämä toimii näin. Erillinen työkalu skannaa projektin ja jakaa sen osiin: mitä funktioita ja luokkia on olemassa, kuka kutsuu ketä ja mitkä tiedostot liittyvät toisiinsa. Rakenne tallennetaan levylle. Kun Claude haluaa selvittää, missä maksulogiikka sijaitsee tai mikä rikkoutuu, jos funktiota muokataan, se tekee kartalle yhden kohdennetun kyselyn sen sijaan, että lukisi kymmeniä tiedostoja.
Kartta yhdistetään MCP:n kautta – MCP on vakiotapa liittää ulkoinen työkalu Claude Codeen (käsittelin muiden palvelinten yhdistämistä oppaassa ”MCP-palvelimet Claude Codessa”). Koodimuistityökalu lisää omat karttahakukomentonsa, ja Claude käyttää niitä itse, kun sen täytyy tutustua projektiin.
Käytännössä ero on siinä, että joko ”luetaan koko kansio yhden funktion löytämiseksi” tai ”kysytään kartalta, missä funktio sijaitsee”. Ensimmäinen maksaa kymmeniätuhansia tokeneita, toinen satoja.
Kaksi koodimuistin lähestymistapaa: miten ne eroavat toisistaan?
Keskeinen huomio
Hyödyllisiä työkaluja on kaksi, ja molemmat ovat ilmaisia MIT-lisenssillä. Serena antaa agentille älykkään kehitysympäristön kaltaisen koodinavigoinnin ja sopii tarkkoihin muokkauksiin. claude-context hakee merkityksen perusteella upotuksia käyttäen, mutta vaatii ulkoisen tietokannan ja avaimen. Ero on siinä, mitä kukin niistä muistaa.
Koodimuistityökalut eroavat siinä, mitä ne muodostavat projektistasi. Niitä voi ajatella näin: toinen antaa kirurgin kädet muokkauksiin ja toinen hakee merkityksen perusteella.
| Vertailukohde | Serena | claude-context |
|---|---|---|
| Muistin tyyppi | Koodinavigointi kehitysympäristön moottorin kautta | Merkitykseen perustuva haku upotusten avulla |
| Mitä se löytää | Määrittelyt, todelliset kutsukohdat, symboliin perustuvat muokkaukset | Koodin kuvauksen perusteella: ”missä maksulogiikka on” |
| Ulkoiset riippuvuudet | uv-pakettienhallinta; TypeScriptille ja JavaScriptille myös Node 20+ ja npm | Ulkoinen tietokanta + avain + Node 20+ |
| Asennus | Yksi komento | Komento, jossa on kolme asetusta |
| Tokenisäästöt | Tarkkaa prosenttiosuutta ei ilmoiteta | Noin 40 % samalla laadulla |
| GitHub-tähdet | 26 468 | 12 138 |
| Vahvuus | Tarkka refaktorointi koko koodikannassa | Tarvittavan löytäminen ilman tarkkoja nimiä |
| Heikkous | Vähemmän kieliä, ei merkityshakua | Raskas käyttöönotto, vaatii pilvipalvelun |
GitHub-tähtien määrät ovat 15. heinäkuuta 2026 tilanteen mukaan (GitHub API:n perusteella). Molemmat työkalut ovat ilmaisia ja avointa lähdekoodia, toimivat Claude Coden kanssa ja yhdistyvät MCP-palvelimina.
Lyhyt selitys niille, jotka eivät ohjelmoi. Serena on kirurgin käsi: käytä sitä, kun muokkaat samaa osaa eri puolilla projektia ja tarkkuus on tärkeää. claude-context hakee merkityksen perusteella: se löytää koodia kuvauksen pohjalta, mutta käyttö vaatii pilvitietokannan ja avaimen.
Milloin kannattaa valita Serena tai claude-context?
Keskeinen huomio
Serena on hyödyllinen, kun tarkat muokkaukset ovat tärkeitä: funktion uudelleennimeäminen kaikkialla projektissa, sen sisällön vaihtaminen tai kaikkien sen todellisten kutsukohtien löytäminen. Se toimii samalla moottorilla kuin älykkäät kehitysympäristöt ja muokkaa koodia merkityksen, ei tekstin vastaavuuden, perusteella. Valitse claude-context, kun haluat etsiä koodia kuvauksen avulla etkä välitä ulkoisen tietokannan ja avaimen määrittämisestä.
Työkalut eivät kilpaile yhdestä ja samasta tittelistä. Ne muistavat eri asioita, joten valinta riippuu tehtävästä.
Valitse Serena, jos teet paljon refaktorointia. Se tarjoaa agentille älykkään kehitysympäristön kaltaisen koodinavigoinnin: se löytää funktion määrittelyn ja kaikki sen todelliset kutsukohdat ja nimeää sitten funktion huolellisesti uudelleen tai vaihtaa sen sisällön koko projektissa. Tekijä kuvaa hyötyä näin.
Tehokas joukko koodityökaluja MCP:n kautta: semanttinen haku ja muokkaus – kehitysympäristö agentillesi.
Serena ei ilmoita tarkkaa säästöprosenttia, enkä aio liittää siihen keksittyä lukua. Hyöty on toisenlainen: tavallinen haku palauttaa neljäkymmentä osumaa sekä kommentteja ja merkkijonoja, minkä jälkeen Claude lukee neljä kokonaista tiedostoa. Serena vastaa sen sijaan muutamalla tarkalla kyselyllä. Näin kutsuja ja vääriä osumia on vähemmän, joten agentti muokkaa epätodennäköisemmin väärää asiaa.
Valitse claude-context, jos tarvitset merkitykseen perustuvaa hakua eikä käyttöönotto pelota. Se muuntaa koodin vektoreiksi (merkityksen numeerisiksi sormenjäljiksi) ja hakee kuvausten perusteella: ”etsi, missä maksulogiikkamme sijaitsee”, vaikka et tietäisi funktioiden nimiä. Haun hintana on lisämääritysten tarve.
claude-context vähentää tokenien käyttöä keskimäärin noin 40 % ja säilyttää samalla haun laadun.
claude-context vaatii ulkoisen vektoritietokannan, upotusten tarjoajan avaimen ja tuoreen Node-version. Näistä kahdesta sen käyttöönotto on työläämpää, joten suosittelen aloittelijoille jotakin muuta.
Mitä voit tehdä suoraan Claude Codessa ilman kolmannen osapuolen työkaluja?
Keskeinen huomio
Sisäänrakennetut komennot ratkaisevat puolet ongelmasta. /context näyttää tarkasti, mikä käyttää kontekstia. /compact tiivistää historian, /clear nollaa sen ennen uutta tehtävää ja /doctor etsii tarpeettomat kohteet ja ehdottaa niiden siivoamista. Lyhyt CLAUDE.md-tiedosto ylisuurikokoisen sijaan säästää tuhansia tokeneita jokaisessa viestissä.
Ennen kolmannen osapuolen työkalujen asentamista kannattaa hyödyntää kaikki, mitä Claude Code jo sisältää. Nämä komennot ovat ilmaisia ja toimivat heti.
/context– näyttää ajantasaisen erittelyn siitä, mikä vie tilaa ikkunassa: järjestelmäkehote, CLAUDE.md, muisti, työkalut ja tiedostot. Komento/mcpnäyttää kunkin yhdistetyn palvelimen kustannuksen, ja/memorynäyttää, mitä käynnistyksen yhteydessä ladattiin./compact– tiivistää keskusteluhistorian lyhyeksi yhteenvedoksi ja jatkaa samaa tehtävää. Voit ohjata tiivistyksen painotusta lisäämällä/compact-komennolle tiedot siitä, mitä tulee säilyttää./clear– hylkää koko historian. Virallinen suositus on suorittaa se, kun siirryt asiaan liittymättömään tehtävään, jotta vanha keskustelu ei vie tilaa tarvitsemiltasi tiedostoilta./doctor(tunnetaan myös nimellä/checkup, julkaistu 8. heinäkuuta 2026) – diagnosoi asetukset ja ehdottaa korjauksia: poistaa CLAUDE.md:n kaksoiskappaleet, löytää käyttämättömät työkalut ja palvelimet sekä havaitsee hitaat käsittelijät.
Erillinen huomio CLAUDE.md-tiedostosta. Se ladataan kontekstiin jokaisen istunnon alussa ja sisällytetään jokaiseen viestiin. Jos se on liian suuri, maksat sen käytöstä jatkuvasti. Virallinen suositus on pitää se alle 200 rivissä ja siirtää viitetiedot tarpeen mukaan ladattaviin taitoihin. Käsittelin CLAUDE.md-tiedoston oikeaa kokoamista erillisessä oppaassa ”Näin määrität CLAUDE.md:n”.
Yksi sisäänrakennettu apukeino ovat ala-agentit. Niillä on oma erillinen konteksti, joten voit delegoida raskaan lukemisen ja tiedustelun niille kuormittamatta pääikkunaasi. Anthropic ilmaisee yleisen periaatteen näin teknisessä analyysissään.
Hyvä kontekstityö tarkoittaa, että etsitään mahdollisimman pieni joukko tietorikkaita tokeneita, jotka tuottavat halutun tuloksen.
Kasvattaako ylimääräinen MCP-palvelin kontekstia entisestään?
Keskeinen huomio
Huoli on aiheellinen, mutta ei. Vuodesta 2026 lähtien Claude Code ei ole oletusarvoisesti ladannut MCP-työkalujen täydellisiä kuvauksia kontekstiin – se lykkää niiden lataamista ja lataa vain sen, mitä todella tarvitaan. Käynnistyksessä kontekstiin lisätään vain nimet. Siksi koodi-indeksi lisää järjestelmän yleiskuluja mitättömän vähän ja säästää samalla tuhansia tokeneita, jotka muuten kuluisivat tiedostojen uudelleenlukemiseen.
Ajatus siitä, että ”yksi palvelin lisää tarkoittaa suurempia kontekstikuluja”, piti ennen paikkansa, mutta Claude Code on muuttunut. MCP-työkalujen kuvausten lataamista lykätään nykyisin oletusarvoisesti: käynnistyksen yhteydessä kontekstiin lisätään vain palvelinten nimet, ja täydet kuvaukset ladataan, kun tiettyä työkalua tarvitaan tehtävään. Dokumentaatio kertoo tämän suoraan.
Työkaluhaku pitää MCP-kontekstin käytön pienenä lykkäämällä työkalujen kuvauksia siihen asti, kunnes Claude tarvitsee niitä. Istunnon alussa ladataan vain työkalujen nimet, joten MCP-palvelinten lisäämisellä on lähes olematon vaikutus konteksti-ikkunaan.
Koodimuistin laskutoimitus on yksinkertainen. Työkalujen nimistä aiheutuu pieni, kiinteä yleiskulu, mutta säästöön jää tuhansia tokeneita, kun agentti ei enää lue tiedostoja uudelleen. Tasapaino kallistuu selvästi indeksin eduksi.
Pari rehellistä varausta, jotta et odota ihmeitä. Indeksi täytyy rakentaa uudelleen silloin tällöin – kartta kuvastaa koodia sellaisena kuin se oli skannaushetkellä, joten suurten muutosten jälkeen se pitää päivittää (tämä vaihtelee työkalun mukaan: jotkin päivittävät sen automaattisesti, toiset vaativat komennon). Myös suuret väitteet, kuten ”120 kertaa vähemmän tokeneita”, kuvaavat parasta tulosta valituissa kyselyissä, eivät sitä, mitä jokaisessa tehtävässä näet. Todelliset säästöt ovat maltillisempia, mutta silti huomattavia. Jos haluat perehtyä tarkemmin siihen, miten välttää käyttörajojen ylittyminen yleisesti, olen kirjoittanut erillisen analyysin: ”Näin vältät Claude Coden käyttörajojen kuluttamisen loppuun”.
Mistä kannattaa aloittaa tänään?
Keskeinen huomio
Aloita ilmaisista ja nopeista toimista. Siivoa tarpeettomat kohteet suorittamalla /doctor. Lyhennä CLAUDE.md 200 riviin. Nämä vaiheet keventävät sitä, mitä Claude kantaa jokaiseen tehtävään, ja alkavat säästää tokeneitasi ja käyttörajojasi.
Kun karsit kaiken tarpeettoman, tämän päivän suunnitelma on yksinkertainen:
- Suorita
/doctorja siivoa sen ehdottamat asiat: CLAUDE.md:n kaksoiskappaleet ja käyttämättömät työkalut. - Lyhennä CLAUDE.md 200 riviin ja siirrä viitemateriaali taitoihin.
Valitse sen jälkeen tarpeidesi mukaan: jos teet paljon refaktorointia, lisää Serena tarkkoja muokkauksia varten; jos tarvitset merkitykseen perustuvaa hakua, ota claude-context käyttöön. Koodimuisti ja siisti konteksti ratkaisevat tärkeimmän ongelman jo tänään.
Lähteet
Jos tarvitset pääsyn AI-malleihin Ailootin kautta, tutustu Ailootiin.
Lisätietoja
Kysymyksiä tästä oppaasta: Miksi Claude Code lukee koko projektin uudelleen ja miten ongelma ratkaistaan
Milloin valitsen symbolinavigoinnin merkitykseen perustuvan koodihaun sijaan?
Valitse Serena-tyylinen symbolinavigointi määrittelyihin, kutsukohtiin ja täsmälliseen refaktorointiin. Merkitykseen perustuva haku, kuten claude-context, auttaa, kun tiedät tarvitsemasi toiminnan mutta et symbolin nimeä. Se vaatii lisää tietokanta- ja upotusmäärityksiä.
Voinko luottaa koodikarttaan muutosten jälkeen?
Tarkista indeksin päivitys. Kartta kuvaa skannattua koodia, ja päivityskäytös eroaa työkaluittain. Käytä karttaa olennaisen koodin paikantamiseen ja varmista sitten nykyiset tiedostot ennen muuttamista.