Blog

Mengapa Claude Code membaca semula seluruh projek dan cara mengatasinya

Markdown

Claude Code tidak mengindeks kod dan membaca semula projek dari awal, lalu membazirkan token. Ketahui cara memberikan memori kod berterusan melalui MCP dan mengurangkan penggunaan token.

Baca artikel penuh

Intipati utama

Claude Code tidak menyimpan indeks kod anda. Setiap sesi, ia mencari dalam projek sekali lagi dan membaca fail dari awal, jadi token digunakan untuk peninjauan dan bukannya kerja sebenar. Anda boleh mengatasinya dengan memori kod: pasang pelayan pengindeks melalui MCP, lalu Claude boleh menggunakan peta projek yang sudah tersedia dan tidak perlu membaca semula semuanya.

Dokumentasi Ailoot: API, kunci dan sambungan.

Mengapa Claude Code membaca semula projek dari awal setiap kali?

Intipati utama

Claude Code tidak mempunyai indeks kod terbina dalam. Ia mencari dalam projek menggunakan tiga alat: mencari fail berdasarkan corak, mencari rentetan dalam teks dan membaca keseluruhan fail. Ini dipanggil carian agentik: model menentukan tempat untuk mencari dan mengulangi proses itu bagi setiap tugasan baharu. Ia tidak mengingati sesi sebelumnya, jadi setiap sesi baharu bermula dari awal.

Ramai orang menganggap ini pepijat. Sebenarnya, Claude Code memang direka sebegini: ia tidak mempunyai indeks projek sendiri. Apabila anda memintanya membaiki sesuatu, ia tidak mempunyai peta kod sedia guna — sebaliknya ia meneroka projek sekali lagi: mencari fail yang berkaitan, mencari rentetan yang diperlukan dan membaca fail ke dalam ingatan.

Pendekatan ini memang mempunyai kelebihan. Kod sentiasa terkini — tiada indeks yang ketinggalan zaman. Tiada apa-apa yang perlu dikonfigurasikan. Kod anda tidak dihantar ke mana-mana pangkalan data.

Namun, ada kekurangannya: setiap tugasan baharu bermaksud satu lagi pusingan mencari dan membaca fail. Token digunakan untuk mencari semula lokasi setiap perkara, walaupun Claude sudah melakukannya dalam sesi sebelumnya. Semakin besar projek, semakin banyak kos peninjauan ini. Mekanisme inilah yang menyebabkan ejen terasa seperti sedang “membaca semuanya”.

Berapa banyak token yang sebenarnya dibazirkan?

Intipati utama

Sebelum membaca semula kod pun, Claude Code menghantar kira-kira 33,000 token data sistem dalam setiap permintaan. Dalam konfigurasi kerja sebenar, jumlahnya mencecah 75,000–85,000 token sebelum anda menaip sepatah pun. Selepas itu, bacaan semula fail menambah lagi penggunaan, dan menurut dokumentasi rasmi, pembacaan fail menggunakan konteks paling banyak.

Kos bermula sebelum permintaan anda. Satu ukuran bebas menunjukkannya dengan mudah: Claude Code menghantar kira-kira 33,000 token prompt sistem dan huraian alat sebelum membaca aksara pertama mesej anda. Sebagai perbandingan, OpenCode bermula pada kira-kira 7,000.

Kemudian bacaan semula bermula. Setiap carian fail dan setiap pembacaan menambah token ke dalam konteks. Dokumentasi rasmi Claude Code menyatakannya dengan jelas: pembacaan fail mendominasi penggunaan konteks. Analisis fail auth.ts yang mengandungi 2,400 token bermakna 2,400 token itu hanya dilihat oleh Claude; perkara yang sama berlaku kepada setiap fail yang dibukanya semasa peninjauan.

Bagi pembaca kami, hal ini bermakna wang dan had penggunaan. Kebimbangan utama orang yang mula mencuba vibe coding ialah “Saya sudah bayar, tetapi had habis begitu sahaja.” Jika ejen mengimbas projek dan membaca semula fail dari awal bagi setiap tugasan, konteks habis dua kali lebih cepat: mula-mula untuk overhed sistem, kemudian untuk peninjauan. Saya menghuraikan peta penuh tentang ke mana perginya token Claude Code dalam panduan “Ke mana perginya token Claude Code” — bacaan semula projek ialah salah satu daripada sembilan corak di situ.

Apakah memori kod berterusan?

Intipati utama

Memori kod ialah peta projek sedia guna yang boleh dirujuk oleh ejen sebagai ganti membaca semula fail. Alat berasingan mengimbas kod anda sekali, membina struktur fungsi, fail dan hubung kait, lalu menyimpannya pada cakera. Kemudian, apabila anda bertanya “di manakah pembayaran dikendalikan”, Claude mendapat jawapannya daripada peta melalui satu pertanyaan, tanpa perlu meneliti setiap fail.

Memori kod menangani jurang yang menyebabkan Claude membaca semula projek. Idea ini mudah: minta sesuatu mengimbas semua kod sekali, membina peta daripadanya dan menyimpan peta itu supaya sentiasa tersedia. Selepas itu, ejen tidak perlu mencari dari awal setiap kali — ia bertanya kepada peta.

Dari segi teknikal, begini caranya. Alat berasingan mengimbas projek dan membahagikannya kepada komponen: fungsi dan kelas yang wujud, pihak yang memanggil satu sama lain, serta fail yang saling berkaitan. Struktur ini disimpan pada cakera. Apabila Claude perlu mengetahui lokasi logik pembayaran atau perkara yang akan rosak jika sesuatu fungsi disunting, ia membuat satu pertanyaan khusus kepada peta dan bukannya membaca berpuluh-puluh fail.

Peta ini disambungkan melalui MCP — cara standard untuk memasang alat luaran pada Claude Code. Saya menghuraikan cara menyambungkan pelayan lain dalam panduan “Pelayan MCP untuk Claude Code”. Alat memori kod menambah arahan carian peta tersendiri, lalu Claude menggunakannya sendiri apabila perlu memahami susun atur projek.

Dalam amalan, perbezaannya ialah antara “baca seluruh folder untuk mencari satu fungsi” dengan “tanya peta di mana fungsi itu berada”. Pilihan pertama menggunakan puluhan ribu token; pilihan kedua, ratusan.

Dua pendekatan kepada memori kod: apakah perbezaannya?

Intipati utama

Terdapat dua alat yang berguna dan kedua-duanya percuma di bawah lesen MIT. Serena memberikan navigasi kod seperti persekitaran pembangunan pintar kepada ejen dan sesuai untuk suntingan tepat. claude-context mencari berdasarkan makna menggunakan embedding, tetapi memerlukan pangkalan data luaran dan kunci. Perbezaannya terletak pada perkara yang diingati oleh setiap alat.

Alat memori kod berbeza dari segi perkara yang dibina daripada projek anda. Cara paling mudah untuk memahaminya: satu memberi ejen ketepatan seperti tangan pakar bedah untuk membuat suntingan, dan satu lagi mencari berdasarkan makna.

Perkara yang dibandingkanSerenaclaude-context
Jenis memoriNavigasi kod melalui enjin persekitaran pembangunanCarian berdasarkan makna melalui embedding
Perkara yang ditemuiDefinisi, lokasi panggilan sebenar, suntingan mengikut simbolKod berdasarkan huraian: “di manakah logik pembayaran”
Kebergantungan luaranPengurus pakej uv; untuk TypeScript dan JavaScript, juga Node 20+ dan npmPangkalan data luaran + kunci + Node 20+
PemasanganSatu arahanArahan dengan tiga tetapan
Penjimatan tokenTidak menerbitkan peratusan yang tepatKira-kira 40% pada tahap kualiti yang sama
Bintang GitHub26,46812,138
KekuatanPemfaktoran semula dengan teliti merentas seluruh pangkalan kodMenemukan perkara yang diperlukan tanpa mengetahui nama tepatnya
KelemahanMenyokong lebih sedikit bahasa, tiada carian berdasarkan maknaPersediaan rumit, memerlukan perkhidmatan awan

Bilangan bintang GitHub adalah setakat 15 Julai 2026 (menurut API GitHub). Kedua-dua alat ini percuma dan sumber terbuka, kedua-duanya berfungsi dengan Claude Code dan kedua-duanya disambungkan sebagai pelayan MCP.

Ringkasnya untuk bukan pengatur cara: Serena ibarat tangan pakar bedah: gunakannya apabila anda menyunting bahagian yang sama di seluruh projek dan ketepatan penting. claude-context ialah carian berdasarkan makna: ia menemukan kod melalui huraian, tetapi memerlukan persediaan pangkalan data awan dan kunci.

Bilakah anda patut memilih Serena atau claude-context?

Intipati utama

Serena berguna apabila suntingan yang tepat penting: menamakan semula fungsi di seluruh projek, menggantikan isi fungsinya atau mencari semua lokasi panggilan sebenar. Ia menggunakan enjin yang sama seperti persekitaran pembangunan pintar dan menyunting kod berdasarkan makna, bukannya padanan teks. Pilih claude-context apabila anda perlu mencari kod berdasarkan huraian dan tidak kisah menyediakan pangkalan data luaran serta kunci.

Kedua-dua alat ini tidak bersaing untuk satu tujuan yang sama. Setiap satunya mengingati perkara yang berbeza, jadi pilihan bergantung pada tugasan.

Pilih Serena jika anda kerap melakukan pemfaktoran semula. Ia memberikan navigasi kod seperti persekitaran pembangunan pintar kepada ejen: ia menemukan definisi fungsi dan semua lokasi panggilan sebenarnya, kemudian menamakan semula fungsi itu atau menggantikan isi fungsinya dengan cermat di seluruh projek. Pengarangnya menerangkan manfaatnya begini.

Set alat kod yang berkuasa melalui MCP: carian dan suntingan semantik — persekitaran pembangunan untuk ejen anda.

— Serena, https://github.com/oraios/serena

Serena tidak menerbitkan peratusan penjimatan yang tepat dan saya tidak akan mengaitkannya dengan angka rekaan. Manfaatnya berbeza: carian biasa memulangkan empat puluh padanan termasuk komen dan rentetan teks, kemudian Claude membaca empat fail penuh; Serena pula menjawab melalui beberapa pertanyaan yang tepat. Ini bermakna lebih sedikit panggilan dan padanan palsu, lalu mengurangkan risiko ejen menyunting perkara yang salah.

Pilih claude-context jika anda memerlukan carian berdasarkan makna dan tidak keberatan dengan persediaannya. Alat ini menukarkan kod kepada vektor (cap jari berangka bagi makna) dan mencari berdasarkan huraian: “cari lokasi logik pembayaran kami”, walaupun anda tidak mengetahui nama fungsinya. Harga untuk carian ini ialah persediaan tambahan.

Secara purata, claude-context mengurangkan penggunaan token kira-kira 40% sambil mengekalkan kualiti carian yang sama.

— zilliztech/claude-context, https://github.com/zilliztech/claude-context

claude-context memerlukan pangkalan data vektor luaran, kunci daripada penyedia embedding dan versi Node yang terkini. Antara kedua-duanya, alat ini lebih rumit untuk disediakan, jadi saya mengesyorkan supaya pemula bermula dengan alat lain.

Apakah yang boleh anda lakukan terus dalam Claude Code tanpa alat pihak ketiga?

Intipati utama

Arahan terbina dalam menyelesaikan separuh masalah. /context menunjukkan dengan tepat perkara yang menggunakan konteks. /compact memendekkan sejarah perbualan, /clear menetapkannya semula sebelum tugasan baharu dan /doctor mencari item yang tidak diperlukan serta mencadangkan cara membersihkannya. Fail CLAUDE.md yang ringkas, bukannya terlalu panjang, menjimatkan ribuan token dalam setiap mesej.

Sebelum memasang alat pihak ketiga, manfaatkan sepenuhnya ciri yang sudah tersedia dalam Claude Code. Arahan ini percuma dan boleh terus digunakan.

  1. /context — menunjukkan pecahan langsung perkara yang memenuhi tetingkap konteks: prompt sistem, CLAUDE.md, memori, alat dan fail. Arahan /mcp menunjukkan kos setiap pelayan yang disambungkan, manakala /memory menunjukkan perkara yang dimuatkan semasa permulaan.
  2. /compact — memampatkan sejarah perbualan menjadi ringkasan pendek dan meneruskan tugasan yang sama. Anda boleh mengarahkan fokusnya dengan menambahkan perkara yang perlu dikekalkan pada /compact.
  3. /clear — membuang seluruh sejarah perbualan. Cadangan rasmi ialah menjalankannya apabila beralih kepada tugasan yang tidak berkaitan supaya perbualan lama tidak memenuhi ruang yang diperlukan oleh fail anda.
  4. /doctor (juga dikenali sebagai /checkup, diperkenalkan pada 8 Julai 2026) — mendiagnosis konfigurasi dan mencadangkan pembaikan: membuang pendua dalam CLAUDE.md, menemukan alat dan pelayan yang tidak digunakan serta mengesan pengendali yang perlahan.

Nota berasingan tentang CLAUDE.md. Fail ini dimuatkan ke dalam konteks pada permulaan setiap sesi dan disertakan dalam setiap mesej. Jika terlalu panjang, anda terus membayar untuknya. Cadangan rasmi ialah mengekalkannya di bawah 200 baris dan memindahkan butiran rujukan ke dalam kemahiran yang dimuatkan apabila diperlukan. Saya menghuraikan cara menyediakan CLAUDE.md dengan betul dalam panduan berasingan “Cara mengkonfigurasi CLAUDE.md”.

Satu lagi pilihan terbina dalam ialah subejen. Mereka mempunyai konteks berasingan sendiri, jadi anda boleh menyerahkan tugas pembacaan dan peninjauan yang berat kepada mereka tanpa membesarkan tetingkap utama anda. Anthropic menyatakan prinsip umum ini dalam analisis kejuruteraannya.

Pengurusan konteks yang baik bermaksud mencari set token yang sekecil mungkin tetapi kaya dengan maklumat untuk menghasilkan keputusan yang dikehendaki.

— Anthropic, https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents

Adakah pelayan MCP tambahan akan membesarkan konteks lagi?

Intipati utama

Kebimbangan itu munasabah, tetapi tidak. Sejak 2026, Claude Code tidak memuatkan huraian penuh alat MCP ke dalam konteks secara lalai — ia menangguhkan pemuatan dan hanya memuatkan perkara yang benar-benar diperlukan. Semasa permulaan, hanya nama yang dimasukkan ke dalam konteks. Oleh itu, indeks kod menambah overhed sistem yang boleh diabaikan sambil menjimatkan ribuan token yang sebaliknya akan digunakan untuk membaca semula fail.

Dahulu, logik “satu lagi pelayan bermakna lebih banyak overhed konteks” memang betul, tetapi Claude Code telah berubah. Huraian alat MCP kini ditangguhkan secara lalai: semasa permulaan, hanya nama pelayan dimasukkan ke dalam konteks, manakala huraian penuh dimuatkan apabila alat tertentu diperlukan untuk tugasan. Dokumentasi menyatakannya dengan jelas.

Carian alat memastikan penggunaan konteks MCP kekal rendah dengan menangguhkan huraian alat sehingga Claude memerlukannya. Semasa sesi bermula, hanya nama alat dimuatkan, jadi penambahan pelayan MCP hampir tidak memberi kesan kepada tetingkap konteks.

— Claude Code Docs, https://code.claude.com/docs/en/mcp

Pengiraan untuk memori kod mudah sahaja: sedikit overhed tetap untuk nama alat berbanding ribuan token yang dijimatkan kerana ejen tidak lagi membaca semula fail. Imbangan ini jelas memihak kepada indeks.

Beberapa peringatan yang jujur supaya anda tidak mengharapkan keajaiban. Indeks perlu dibina semula sekali-sekala — peta menggambarkan keadaan kod semasa pengimbasan dan perlu dikemas kini selepas perubahan besar (caranya berbeza mengikut alat: ada yang melakukannya secara automatik, manakala yang lain memerlukan arahan). Dakwaan besar seperti “120 kali lebih sedikit token” pula menggambarkan keadaan terbaik untuk pertanyaan terpilih, bukannya hasil bagi setiap tugasan. Penjimatan sebenar lebih sederhana, tetapi masih ketara. Jika anda mahu mengetahui lebih lanjut tentang cara mengelakkan had penggunaan daripada habis secara umum, saya ada analisis berasingan: “Cara mengelakkan had Claude Code daripada habis”.

Di manakah anda patut bermula hari ini?

Intipati utama

Mulakan dengan perkara yang percuma dan pantas. Jalankan /doctor untuk membersihkan item yang tidak diperlukan. Pendekkan CLAUDE.md kepada 200 baris. Langkah-langkah ini mengurangkan apa yang dibawa Claude ke setiap tugasan dan mula menjimatkan token serta had penggunaan anda.

Jika semua perkara yang tidak perlu dibuang, rancangan untuk hari ini mudah sahaja:

  1. Jalankan /doctor dan bersihkan perkara yang dicadangkannya: pendua dalam CLAUDE.md dan alat yang tidak digunakan.
  2. Pendekkan CLAUDE.md kepada 200 baris dan pindahkan bahan rujukan ke dalam kemahiran.

Kemudian pilih mengikut keperluan anda: jika anda kerap melakukan pemfaktoran semula, tambahkan Serena untuk suntingan tepat; jika anda memerlukan carian berdasarkan makna, sediakan claude-context. Memori kod dan konteks yang bersih sudah menyelesaikan masalah utama hari ini.

Jika anda memerlukan akses kepada model AI melalui Ailoot, kunjungi Ailoot.

Butiran lanjut

Soalan lazim: Mengapa Claude Code membaca semula seluruh projek dan cara mengatasinya

Bilakah saya patut memilih navigasi simbol berbanding carian kod berdasarkan makna?

Pilih navigasi simbol seperti Serena untuk definisi, lokasi panggilan dan refaktor tepat. Carian berdasarkan makna seperti claude-context membantu apabila anda tahu tingkah laku diperlukan tetapi tidak tahu nama simbol; ia memerlukan persediaan pangkalan data dan embedding tambahan.

Bolehkah saya terus mempercayai peta kod selepas membuat perubahan?

Pastikan indeks telah disegarkan. Peta mencerminkan kod yang diimbas, dan tingkah laku kemas kini berbeza mengikut alat. Gunakan peta untuk mencari kod relevan, kemudian sahkan fail semasa sebelum mengubahnya.

Semua artikel