Kod Sumber Claude Code v2.1.88 yang bocor mengungkapkan Arkitektur Kejuruteraan Agen AI Lanjutan

iconMetaEra
Kongsi
Share IconShare IconShare IconShare IconShare IconShare IconCopy
AI summary iconRingkasan

expand icon
Pada 31 Mac 2026, Anthropic secara tidak sengaja memaparkan kod sumber penuh frontend dan sisi klien Claude Code (v2.1.88) dalam repositori npm. Fail cli.js.map yang bocor memulihkan sekitar 1900 fail dan lebih daripada 510,000 baris kod TypeScript, mengungkap arsitektur agen AI tersebut. Kod sumber memberikan wawasan mengenai penjadualan, sistem memori, dan strategi keselamatan. Pembangun dan penyelidik sedang menganalisis kod tersebut sebagai rujukan teknikal. Di tengah perubahan perasaan pasaran, indeks takut dan serakah tetap menjadi petunjuk utama untuk altcoin teratas.
Artikel ini memberikan analisis teknikal mendalam terhadap kod sumber Claude Code (v2.1.88) yang bocor pada 31 Mac 2026, menganggapnya sebagai kes berharga yang mengungkap arsitektur kejuruteraan AI Agent terkini.

Penulis artikel, sumber: Max

Pada hari ini (31 Mac 2026), Anthropic sekali lagi memaparkan kod sumber frontend dan klien lengkap versi terbaru Claude Code (v2.1.88) di repositori npm akibat kesilapan proses pengemasan yang rendah.

Seorang pengguna internet memuat fail cli.js.map yang tidak dibuang, yang secara langsung memulihkan sebanyak 1,900 fail dan lebih daripada 510,000 baris kod TypeScript asli.

Bagi Anthropic, ini adalah insiden OpSec serius setelah kebocoran dokumen model Mythos beberapa hari yang lalu.

Namun, bagi pembangun dan penyelidik industri di lapisan aplikasi model besar, kod sumber ini adalah sebuah buku putih arsitektur kejuruteraan AI Agent terkini yang diberikan sepenuhnya dengan nilai yang sangat tinggi.

Tanpa mempertimbangkan kontroversi mengenai kepatuhan dan insiden kebocoran, saya telah menghabiskan masa untuk mengkaji secara mendalam kod sumber ini secara tempatan.

Jika ia tidak dilihat sebagai gosip, tetapi sebagai kesan arsitektur pembantu pengaturan AI peringkat produksi, ia mengandungi banyak keputusan kejuruteraan yang melanggar pemikiran biasa.

Berikut adalah analisis teknikal terperinci mengenai arsitektur asas, mekanisme penjadualan, sistem ingatan, dan strategi keselamatan Claude Code dari sudut pandang objektif.

Artikel ini panjang, sesuai untuk profesional yang bergerak di bidang AI Infra, pengembangan Agent, serta yang tertarik pada arsitektur lapisan aplikasi model besar.

BAHAGIAN.01 Bukan sekadar alat CLI

Daripada struktur direktori (sekitar 40 modul peringkat pertama di bawah src/), kekompleksan Claude Code jauh melebihi agen monolitik biasa yang tersedia secara sumber terbuka di pasaran saat ini.

Pemilihan teknologi staknya sangat praktikal dan menekankan pengalaman interaksi pengguna akhir:

Bahasa adalah TypeScript, runtime memilih Bun yang lebih agresif dari segi prestasi, kerangka CLI menggunakan Commander, dan lapisan render terminal secara mengejutkan menggunakan React + Ink.

Mengapa alat baris perintah menggunakan React?

Jawapannya diberikan dalam screens/REPL.tsx dalam kod sumber (sehingga 5005 baris).

Dalam skenario aliran keluaran model besar (Streaming) dan pelaksanaan berbilang alat secara serentak, pengurusan status UI terminal menjadi sangat kompleks (contohnya, merender proses pemikiran, bar kemajuan panggilan alat, pratontonan Diff kod, dll.).

Menggunakan React deklaratif bersama dengan Store khusus bergaya Zustand yang minimum (state/store.ts) adalah amalan kejuruteraan terbaik untuk mengatasi pembaruan tempatan frekuensi tinggi ini.

Dalam mod operasi, sistem dibahagikan dengan ketat kepada dua bentuk:

Mod REPL interaktif: Antaramuka terminal bersepadu Ink, terutama untuk pembangun manusia.

Modus tanpa antaramuka/SDK (kelas QueryEngine): UI sepenuhnya dikeluarkan, menyokong output aliran JSON. Ini membuka jalan untuk menyematkannya sebagai enjin bawah tanah ke dalam IDE (seperti bentuk Cursor) atau proses CI/CD.

Proses pemasangan sistem juga telah dioptimasi secara sejajar secara maksimum.

Dalam main.tsx, operasi intensif I/O seperti pembacaan konfigurasi (MDM Settings) dan pra-pengambilan kunci Keychain dijalankan dalam proses anak, secara selari dengan proses pemuatan modul utama yang mengambil ~135ms. Ketepatan milisaat terhadap latensi permulaan ini meresap sepanjang seluruh kod.

PART.02 Kejuruteraan Prompt Cache

Ini adalah bahagian paling teknikal dalam keseluruhan kod sumber, serta penghalang utama yang membezakan pengalaman Claude Code daripada aplikasi berpura-pura biasa.

Sekarang, alat Agent sering kali hanya menyambungkan System Prompt dan sejarah perbualan secara sederhana dan kasar apabila menangani konteks panjang.

Di dalam services/api/claude.ts (modul interaksi utama sepanjang 3419 baris) Claude Code, penyusunan prompt dilakukan dengan pengoptimuman hingga per byte.

Seperti yang diketahui umum, mekanisme Prompt Cache Anthropic menggunakan pencocokan awalan (Prefix Matching).

Untuk memaksimumkan kadar kejayaan cache, Claude Code direka dengan arsitektur cache bersegi yang ketat:

Bahagian statik (dapat disimpan dalam cache secara global): Dihasilkan melalui systemPromptSection(), mengandungi pengenalan identiti model ("You are Claude Code..."), peraturan keselamatan peringkat sistem, sekatan gaya kod, panduan asas penggunaan alat, dll. Bahagian ini hampir tidak berubah sepanjang hayat sesi.

Garis dinamik: Tanda khas SYSTEM_PROMPT_DYNAMIC_BOUNDARY dihardcode dalam kod sumber.

Bahagian dinamik (cache per sesi/tidak dicache): mengandungi maklumat direktori kerja semasa (CWD), status Git, arahan MCP (Model Context Protocol), konfigurasi pengguna, dan data lain yang sering berubah.

Dan untuk mencegah keruntuhan cache akibat perubahan kecil pada Prompt, sistem telah melakukan banyak tindakan penjagaan yang kelihatan rumit:

  • Pengurutan deterministik: Perihal alat (Tools Description) yang diberikan kepada model besar disusun secara alfabetik mengikut imbuhan alat binaan + akhiran alat MCP.
  • Pemetaan laluan hash: Laluan profil tidak menggunakan UUID rawak, tetapi menggunakan nilai hash berdasarkan kandungan, untuk mengelakkan penghancuran cache akibat laluan yang berbeza setiap kali disuntik.
  • Status eksternal: Senarai Agent yang tersedia semasa pun telah dipindahkan daripada huraian alat ke dalam lampiran mesej (Attachments). Menurut komen sumber kod, perubahan ini sahaja mengurangkan penggunaan Cache Creation Tokens sebanyak kira-kira 10.2%.

Semuanya menunjukkan keadaan industri semasa: pembangunan lapisan aplikasi AI yang cemerlang pada peringkat ini pada dasarnya adalah mengekstrak nilai sistem cache API dengan rakus dan teliti.

BAHAGIAN.03 Alat dan pelaksanaan selari aliran

Claude Code dilengkapi dengan lebih dari 40 alat (mencakup pembacaan dan penulisan fail, pelaksanaan Bash, pengambilan data web, dll.), dan arsitektur sistem alatnya menggunakan corak pabrik (Factory Pattern) yang sangat modular.

Setiap alat mewarisi antaramuka Tool asas dan mesti melaksanakan kaedah seperti checkPermissions(), validateInput(), dan isConcurrencySafe() (adakah selamat secara serentak).

Mekanisme ToolSearch yang dimuat secara atas permintaan: Apabila bilangan alat melebihi ambang tertentu, memasukkan semua perihal alat ke dalam Prompt akan menimbulkan kos Token yang tidak boleh diterima.

Kod sumber menunjukkan strategi elegan bernama ToolSearch: alat bukan inti (seperti beberapa plugin analisis tertentu) ditandai sebagai defer_loading: true.

Model tidak dapat melihat definisi spesifik alat-alat ini dalam Prompt semasa ini, hanya mengetahui bahawa terdapat alat ToolSearch. Apabila model percaya ia memerlukan kemampuan tambahan, ia mesti memanggil ToolSearch terlebih dahulu untuk memuatkan konfigurasi alat yang berkaitan secara dinamik.

StreamingToolExecutor: Untuk meningkatkan kecekapan pelaksanaan, sistem menyokong panggilan berparalel untuk alat.

Coordinator (toolOrchestration.ts) akan membahagikan permintaan panggilan alat yang dikembalikan oleh model besar kepada pesanan secara serentak dan pesanan secara berurutan.

Alat yang selamat secara serentak (seperti membaca beberapa fail yang tidak berkaitan secara serentak atau menjalankan carian rangkaian secara serentak) akan dipicu secara selari, manakala alat yang tidak selamat secara serentak (seperti mengubah fail kod yang sama secara berturut-turut) akan dijalankan secara siri.

Alat untuk set hasil besar (seperti cari Grep penuh) mempunyai anggaran maxResultSizeChars; kandungan yang melebihi anggaran akan dipotong secara langsung dan disimpan ke fail sementara tempatan, hanya mengembalikan ringkasan pra-pandangan kepada LLM untuk mengelakkan jendela konteks diluaskan terlalu besar.

Mekanisme Fork untuk Menyelesaikan Pencemaran Konteks

Agen monolitik semasa mempunyai satu kelemahan maut:

Semasa menjalankan tugas kompleks (seperti mengesan ralat merentas fail), model mungkin membaca fail yang salah berulang kali dan mencuba arahan yang salah; proses percubaan dan kesilapan ini menghasilkan banyak konteks sampah yang dengan cepat mencemarkan perbualan utama, menyebabkan model mengalami gangguan mental atau melupakan matlamat awal dalam penalaran seterusnya.

Claude Code memperkenalkan mekanisme Modus Koordinator yang kompleks dan Fork Subagent untuk menyelesaikan masalah ini.

Selepas membenarkan mod koordinator melalui pemboleh ubah persekitaran, sistem akan dibina semula menjadi arsitektur Coordinator-Workers:

  • Pengkoordinasi: Kehilangan kebenaran untuk mengendalikan fail secara langsung, hanya mempertahankan tiga alat iaitu Agent (agen turunan), SendMessage, dan TaskStop. Tugas tunggalnya ialah merancang aliran kerja (Penyelidikan → Sintesis → Pelaksanaan → Pengesahan).
  • Pekerja (Executor): Diturunkan dengan penghuraian alat yang spesifik.

Yang paling patut dipuji ialah mekanisme warisan Fork-nya.

Apabila diperlukan penggalian kod yang meluas, Coordinator akan Fork seorang Explore Agent.

Sub-Agent ini akan mewarisi cache perbualan induk (mengongsi Prompt Cache untuk mengurangkan kos), tetapi tindakan eksplorasi seterusnya dan fail sisa yang dibaca sepenuhnya dilakukan dalam konteks terpisahnya.

Selepas penggalian selesai, Sub-Agent hanya perlu menghantar kesimpulan utama yang telah diringkaskan (Synthesis) semula ke konteks utama Coordinator melalui format XML tertentu .

Reka bentuk yang habis digunakan dan hanya meninggalkan kesimpulan ini merupakan salah satu amalan terbaik semasa ini dalam industri untuk mengendalikan kerjasama teks panjang yang kompleks dan berbilang agen.

Reka bentuk yang habis digunakan dan hanya meninggalkan kesimpulan ini merupakan salah satu amalan terbaik semasa ini dalam industri untuk mengendalikan kerjasama teks panjang yang kompleks dan berbilang agen.

BAGIAN.05 Menerobos Mekanisme Paralel Agent Swarm Monolitik

Selain mekanisme Fork siri yang digunakan untuk menyelesaikan pencemaran konteks, kod sumber juga menunjukkan arsitektur agen berbilang secara serentak yang lebih ambisius—kluster Swarm (Teammate).

Logik bahagian ini terutamanya tersembunyi dalam direktori utils/swarm/ dan tasks/.

Sistem menyokong jenis tugas bernama in_process_teammate.

Dalam arsitektur ini, proses utama boleh membangunkan beberapa Agen (dikenali sebagai Teammate) secara serentak untuk menjalankan tugas yang berbeza.

Namun, dalam persekitaran CLI terminal, menjalankan banyak agen secara serentak akan menghadapi dua cabaran kejuruteraan yang mematikan: konflik tetingkap kebenaran dan kekacauan pengrenderan UI.

Penyelesaian Anthropic sangat elegan:

  • Pemegang kuasa Leader (permissionSync.ts): Semua proses anak Teammate tidak dibenarkan untuk secara langsung meminta kebenaran melalui tetingkap kepada pengguna. Mereka akan menghantar permintaan kebenaran melalui saluran dalaman ke Leader Agent proses utama, yang akan mengendalikan penghalang keselamatan dan pengesahan pengguna secara seragam di terminal utama.
  • Automasi susunan terminal: Untuk membolehkan pengguna memantau status kerja beberapa Agent serentak dengan jelas, kod sumber secara langsung mengintegrasikan arahan AppleScript untuk iTerm2 dan Terminal.app. Semasa seorang Teammate baru dihasilkan, sistem akan secara automatik memisahkan panel (Split Pane) di terminal dan memberikan tampilan output tersendiri kepada setiap Agent anak.

Ini menandakan bahawa AI sedang bergerak secara rasmi dari "pemikiran monolitik" kepada "kerjasama serentak berkelompok".

PART.06 Dream (Mimpi) Arsitektur Memori

Pada masa kini, di mana RAG (Retrieval-Augmented Generation) sangat popular, hampir semua produk AI mengintegrasikan pangkalan data vektor (Vector DB).

Namun, secara mengejutkan, sistem memori Claude Code (memdir/ modul) sangat klasik dan praktikal, kerana ia sepenuhnya berdasarkan sistem fail tempatan.

Arsitekturnya terdiri daripada MEMORY.md utama (sebagai indeks tingkat tinggi, dibatasi kepada maksimum 200 baris/25KB) dan beberapa fail topik berformat Frontmatter.

Ingatan dibahagikan dengan tepat kepada empat kategori: User, Feedback, Project, Reference.

Yang lebih menarik ialah mod pembantu KAIROS yang tersembunyi dalam kod sumber.

Ini adalah modus daemon yang belum dirilis secara rasmi.

Dalam mod KAIROS, sistem memori bukan lagi sekadar kemas kini indeks, tetapi menggunakan corak tambahan serupa log manusia (menulis ke logs/YYYY/MM/YYYY-MM-DD.md).

Pada waktu malam atau masa rehat, tugas latar belakang bernama Dream (bermimpi) akan diaktifkan.

Tugas Agen ini adalah meringkas dan memadatkan log arus harian, kemudian mengekstrak dan mengukuhkannya ke dalam fail topik jangka panjang yang terstruktur.

Mekanisme integrasi asinkron dari log jangka pendek ke memori jangka panjang ini tidak hanya mengelakkan masalah kadar pemulihan pencarian vektor, tetapi juga menandakan arah yang jelas menuju asisten AI sisi hujung yang sentiasa aktif dan terus belajar.

BAHAGIAN.07 Pengumpulan Kebenaran dan Keselamatan

Memberikan kebenaran kepada AI untuk menjalankan arahan Shell tempatan dan mengubah fail adalah pedang bermata dua.

Pop-up yang sering meminta pengesahan pengguna akan menghancurkan pengalaman automatik sepenuhnya, manakala pelaksanaan automatik tanpa sekatan boleh menyebabkan sistem gagal (seperti pelaksanaan salah rm -rf).

Claude Code menggunakan arsitektur konvergensi keizinan berlapis:

Dari sandbox fail/jaringan berasaskan @anthropic-ai/sandbox-runtime, hingga penghalang keras untuk operasi berbahaya tertentu (seperti git push --force), hingga pengesahan pada peringkat alat.

Namun, yang paling menarik ialah komponennya yang bernama Auto Mode Classifier (yoloClassifier.ts).

Apabila pengguna menghidupkan mod automatik, sistem tidak menggunakan ekspresi reguler yang kaku untuk menilai bahaya perintah, tetapi menggunakan mekanisme Side Query.

Sistem akan secara senyap memanggil LLM yang lebih kecil dan lebih murah di latar belakang untuk menghantar transkrip ringkas percakapan semasa dan arahan Bash yang akan dilaksanakan kepadanya, supaya model sampingan ini mengeluarkan keputusan Benarkan atau Tolak.

Selain itu, terdapat juga Denial Tracking berdasarkan ambang batas di dalam sistem, di mana sistem akan menurunkan prestasi dengan elegan dan kembali ke modus Prompting untuk meminta campur tangan manusia apabila alat automatik ditolak secara kerap.

Sistem kuasa dinamik yang menggunakan AI kecil untuk mengawal AI besar jauh lebih fleksibel berbanding peraturan penghalang statik tradisional.

BAHAGIAN.08 Beberapa kejutan kecil

Akhirnya, flag ciri yang banyak terdapat dalam kod sumber (seperti VOICE_MODE, SSH_REMOTE, dll.) dan pemeriksaan pemboleh ubah persekitaran process.env.USER_TYPE === 'ant' menunjukkan piawaian ganda yang digunakan oleh syarikat besar semasa ujian dalaman dan pelancaran luaran.

Untuk kakitangan dalaman Anthropic (Ant-only), peraturan kod yang disuntikkan sistem sangat ketat bahkan cenderung obsesif:

Jangan menambahkan fungsi secara sewenang-wenang, jika tidak diminta jangan merestructurisasi, tiga baris kod yang serupa lebih baik daripada abstraksi yang terlalu awal, secara lalai jangan tulis sebarang komen kecuali jika WHY sangat tidak jelas, kegagalan ujian mesti dilaporkan secara jujur.

Sementara itu, untuk pembinaan awam luaran, arahan sistem jauh lebih lembut: terus kepada inti perkara, cuba kaedah paling mudah, dan usahakan sejelas dan sepadat mungkin.

Perbezaan ini menunjukkan bahawa sempadan tingkah laku model besar sebahagian besar bergantung kepada kecenderungan arahan yang dihardcode.

Perlu diperhatikan bahawa kod tersebut mengandungi dua modul yang menarik.

Mod penyamaran (Undercover Mode):

Ini adalah ciri yang kontroversial dalam komuniti keselamatan.

Untuk skenario di mana pekerja berkerja di repositori sumber terbuka atau awam, sistem secara lalai diaktifkan dan mod ini tidak boleh dimatikan secara paksa. Mod ini akan secara jelas meminta model dalam Prompt untuk "Do not blow your cover" (jangan ungkapkan identiti), serta memaksa menghapus semua penafian atau jejak kod yang dihasilkan oleh AI.

Dari sudut perspektif perhubungan awam, ini mungkin kelihatan kurang telus, tetapi ia secara tidak langsung membuktikan kekuasaan mutlak pengeluar terhadap peranan model dan pengawalan output.

Buddy System (E-Pet) Easter Egg:

Kod sumber mengandungi sistem haiwan peliharaan tersembunyi (menghasilkan itik, burung hantu, dll.).

Untuk menjamin kerawakan dan ketentuan penghasilan haiwan peliharaan, jurutera menggunakan ID pengguna bersama algoritma penghasil nombor rawak palsu Mulberry32.

typescript

18 spesies: itik, angsa, blob, kucing, naga, gurita, burung hantu, penguin, ...

5 tahap kelangkaan: biasa (60%), tidak biasa (25%), jarang (10%), epik (4%), legenda (1%)

// Atribut: DEBUGGING, PATIENCE, CHAOS, WISDOM, SNARK

// Aksesori: mahkota, topi tinggi, baling-baling, sinar, penyihir, topi bean, itik kecil

// Khas: 1% kemungkinan shiny

Butir paling lucu ialah, nama bahasa Inggeris bagi satu spesies haiwan secara kebetulan sama dengan kod dalaman yang sangat sulit Anthropic (mungkin model Claude Capybara terkuat yang bocor dua hari lalu).

Untuk mengelakkan pengesanan perkataan terlarang oleh pemindai kod kepatuhan, jurutera telah menggunakan String.fromCharCode() untuk menyusun perkataan itu secara dinamik.

Pendekatan geek yang penuh humor ini memberikan ciri khas tersendiri dalam kod infrastruktur yang sangat serius.

BAHAGIAN.09 Apa yang boleh kita pelajari?

Dalam tempoh yang singkat, Anthropic mengalami kebocoran dokumen teknikal model utama dan kod sumber aplikasi utama, dan memang perlu melakukan tinjauan mendalam terhadap pengurusan proses dalaman. Namun, teknologi itu tidak bersalah; kod sebanyak 510,000 baris ini merupakan bahan pengajaran yang sangat baik untuk industri.

Dari reka bentuk asas Claude Code, era di mana perniagaan aplikasi model besar hanya bergantung pada penyusunan Prompt, menimbun pangkalan data vektor, dan membungkusnya dengan cangkang kitaran ringkas telah berakhir.

Rintangan sejati dibina berdasarkan kecekapan ekstrem dalam kos Token (pengoptimuman Prompt Cache), penjadualan aliran koordinasi mesin keadaan ganda (mekanisme Coordinator dan Fork), keseimbangan antara kesalahan maksud pengguna dan intervensi keselamatan (YOLO Classifier), serta integrasi mendalam aliran fail dengan sistem pengendali induk.

Sekarang, repositori yang memfork kod sumber ini di GitHub sedang menghadapi risiko penarikan segera melalui permintaan DMCA.

Namun bagaimanapun, tahap kejuruteraan yang ditunjukkan oleh Claude Code telah menetapkan tolok ukur teknologi baharu untuk produk pembantu AI pada tahun 2026.

Pemain industri sepatutnya memanfaatkan peluang ini untuk meninjau dan mengambil amal amalan terbaik yang berteraskan kejuruteraan.

Penafian: Maklumat yang terdapat pada halaman ini mungkin telah diperoleh daripada pihak ketiga dan tidak semestinya menggambarkan pandangan atau pendapat KuCoin. Kandungan ini adalah disediakan bagi tujuan maklumat umum sahaja, tanpa sebarang perwakilan atau waranti dalam apa jua bentuk, dan juga tidak boleh ditafsirkan sebagai nasihat kewangan atau pelaburan. KuCoin tidak akan bertanggungjawab untuk sebarang kesilapan atau pengabaian, atau untuk sebarang akibat yang terhasil daripada penggunaan maklumat ini. Pelaburan dalam aset digital boleh membawa risiko. Sila menilai risiko produk dan toleransi risiko anda dengan teliti berdasarkan keadaan kewangan anda sendiri. Untuk maklumat lanjut, sila rujuk kepada Terma Penggunaan dan Pendedahan Risiko kami.