# Penambahbaikan Kendiri Rekursif Bahasa: Menggilap Kecerdasan Kod Merentasi ~280 Bahasa

Canonical source: https://maguyva.ai/ms/blog/autonomous-quality-loops-language-grind

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Date: 2026-05-26 · Author: Maguyva Team

> Kami menyokong kecerdasan kod untuk ~280 bahasa. Tiada manusia yang mampu mengaudit itu secara manual. Jadi kami membina gelung penambahbaikan kendiri rekursif bahasa — semak sampel, LLM-sebagai-penilai, baiki satu perkara, sahkan semula — dan menjalankannya dengan sepasukan ejen terasing sehingga pengekstrakan benar-benar betul, bukan sekadar hijau.

> *Angka dalam penulisan ini mencerminkan sistem pada masa penerbitan (Mei 2026). Lihat [halaman pasukan](/ms/team) kami untuk angka terkini.*

Maguyva mengekstrak simbol, rujukan, dan graf kebergantungan daripada kod sumber dalam lebih kurang 280 bahasa. Setiap bahasa adalah handler tree-sitter tersuai — query, heuristik, kes pinggir — dan setiap handler boleh salah secara halus dengan caranya sendiri. Panggilan method dipancarkan sebagai bacaan. Fungsi diatributkan kepada skop pelingkung yang salah. Hubungan yang sebenarnya tidak wujud.

Anda tidak boleh mengauditnya secara manual. Tiada pasukan yang mampu membaca output pengekstrakan merentasi 280 grammar dan mengesan edge yang buruk. Jadi soalan yang menarik bukanlah "adakah pengekstrakan kami betul" — tetapi "bagaimana anda *ketahui* ia salah, pada skala seluas ini, tanpa manusia dalam setiap gelung." Jawapan kami ialah penambahbaikan kendiri rekursif bahasa: gelung kualiti yang dipacu oleh ejen bahasa, LLM yang bertindak sebagai hakim, dan satu peraturan yang kami terus pelajari semula: hijau tidak sama dengan betul.

## Hijau bukan bermakna betul

Setiap bahasa mempunyai suite fixture, dan gate pelepasan menilainya merentasi lima dimensi — ketepatan, integriti struktur, kelengkapan, kualiti, dan prestasi. Sesuatu bahasa menjadi **GREEN** hanya apabila, pada fixture-nya, precision ≥ 0.95, recall ≥ 0.99, dan F1 ≥ 0.97, dengan sekurang-kurangnya 20 edge yang dijangka untuk keyakinan statistik. Di bawah itu ia menjadi YELLOW atau RED, dan tidak dikeluarkan.

Gate itu perlu tetapi tidak mencukupi. Fixture mengesahkan terhadap fixture yang *kami tulis sendiri*. Ia mengekod kes-kes yang sudah kami fikirkan. Sesuatu handler boleh sempurna pada fixture-nya tetapi masih mengacau-balaukan corak yang hanya muncul dalam kod sebenar — satu idiom macro, method dengan kekangan pada jenis generik, satu ciri bahasa yang tiada siapa menulis fixture untuknya. GREEN bermaksud fixture lulus. Ia tidak bermaksud repositori sebenar diekstrak dengan bersih. Jadi gelung itu perlu meninggalkan fixture dan meneliti kod dalam penggunaan sebenar.

## Gelung dalaman: semak sampel, nilai, baiki, buktikan

Gelung teras berjalan satu bahasa pada satu masa:

```text
        ┌──────────────────────────────────────────────────────────┐
        │                                                          │
        ▼                                                          │
  1. corpus run ── clone real-world repos, extract relationships   │
        │                                                          │
        ▼                                                          │
  2. spot-check 100 edges (seed 42, then seed 123 to cross-check)  │
        │                                                          │
        ▼                                                          │
  3. LLM judge classifies every sampled edge:                      │
        CORRECT · FALSE_POSITIVE · TYPE_ERROR ·                    │
        SCOPE_ERROR · METADATA_ERROR                               │
        │                                                          │
        ▼                                                          │
  4. fix ONE thing — handler .py, .scm query, or config           │
        │                                                          │
        ▼                                                          │
  5. re-validate — F1 + re-classify + manifest diff (no regressions)│
        │                                                          │
   better? ──no──► revert, try a different fix ────────────────────┤
        │ yes                                                       │
        ▼                                                           │
  6. promote the fix into fixtures (a permanent regression guard) ──┘
```

Beberapa perkara menjadikan ini berfungsi berbanding sekadar bergelut tanpa hala tuju.

**Hakimnya adalah ejen itu sendiri, bukan panggilan API.** Apabila kami berkata "LLM-sebagai-hakim," maksud kami ejen bahasa itu sendiri membaca setiap edge yang disampel berbanding sumber sebenar dan mengklasifikasikannya dengan rubrik lima kategori yang tetap: adakah edge ini betul, positif palsu, hubungan yang betul dengan jenis yang salah, terikat pada skop yang salah, atau membawa metadata yang salah? Rubrik itulah asas penilaian ini — "kadar ralat 23%" tidak bermakna sehingga anda tahu sama ada itu kecacatan sebenar atau hakim tersalah kira.

**Baiki satu perkara, kemudian buktikan.** Setiap iterasi menukar tepat satu aset yang boleh disunting, kemudian menjalankan semula terhadap harness tetap dan mengekalkan perubahan itu hanya jika F1 bertambah baik dan pengklasifikasian semula kelihatan lebih baik. Jika tidak, ia dikembalikan. Tiada kelompok suntingan spekulatif, tiada "sepatutnya lebih baik." Sesuatu perubahan mesti membuktikan haknya atau ia dibuang. Dan apabila sesuatu pembaikan kekal, ia dinaikkan taraf ke dalam suite fixture — supaya bug yang dibaikinya tidak dapat kembali secara senyap. Langkah kenaikan taraf itulah yang menjadikan gelung ini *rekursif* dan bukan sekadar berulang: setiap pusingan mengukuhkan rujukan pengesahan yang digunakan oleh pusingan seterusnya.

## Pengajaran yang kami terus pelajari semula: metrik melebih-lebihkan laporan

Inilah perangkapnya, dan kami terus terjerumus ke dalamnya. Metrik korpus sekunder — kekerapan sasaran yang diekstrak tidak mempunyai simbol yang boleh diselesaikan, berapa banyak simbol kelihatan "yatim," dan sebagainya — secara besar-besaran melebih-lebihkan masalah. Kebanyakannya adalah *artifak paradigma*, bukan bug.

Contoh paling jelas: `llvm` pernah menunjukkan kadar "sumber-tanpa-simbol" sebanyak 73% dan dicap sebagai bencana. Kami menyelidik lebih dalam. Ketepatan sebenar ialah **98.5%**. "Simbol yang hilang" itu hampir kesemuanya rujukan luaran yang sah — panggilan ke pustaka piawai, ke framework, ke kod yang berada di luar repositori. Metrik itu mengukur sifat bahasa, bukan kecacatan dalam handler. Bahasa seperti Zig, COBOL, dan Odin menunjukkan kadar "yatim" sebanyak 65–70% dan sepenuhnya betul; COBOL tidak mempunyai sebarang ralat sebenar.

Jika kami membiarkan angka-angka itu memacu kerja ini, kami pasti menghabiskan berminggu-minggu "membaiki" handler yang sudah pun betul dan mengabaikan bahasa yang mempunyai bug sebenar yang senyap. Kesimpulannya tegas: metrik agregat sebaik-baiknya hanyalah isyarat triage yang kasar. **Isyarat kualiti sebenar ialah semakan sampel dengan pengklasifikasian edge** — melihat edge sebenar dalam repositori sebenar dan menilainya satu demi satu. Data mengatasi gerak hati, tetapi hanya sebaik sahaja anda tahu data mana yang bercakap benar.

## Gelung luar: satu pasukan, bukan maraton

Satu bahasa pada satu masa akan mengambil masa yang tidak berkesudahan merentasi kesemua 280 bahasa itu, jadi gelung dalaman dibalut dalam satu gelung luar yang menjalankan banyak secara selari.

```text
   pick a wave of near-GREEN / high-error languages
        │
        ▼
   fan out 10–15 agents, each ISOLATED in its own git worktree,
   each grinding ONE language, committing to its own branch
        │
        ▼
   orchestrator integrates serially: file-scoped apply, then
   `manifest diff` — any cross-language regression blocks the batch
        │
        ▼
   gated push (reviewed and confirmed) ──► rotate to the next wave
```

Setiap ejen bekerja dalam worktree pakai buang supaya mereka tidak dapat mengganggu satu sama lain. Orchestrator mengintegrasikan pembaikan mereka satu demi satu, setiap satu di sebalik semakan regresi manifest-penuh: perubahan yang membantu bahasanya sendiri tetapi secara senyap merosakkan tiga yang lain tidak akan digabungkan. Integrasi mesti lulus semakan dan disahkan sebelum sebarang perubahan dihantar ke repositori jauh — gate regresi menentukan apa yang *selamat*, manusia masih menentukan apa yang *dikeluarkan*. Kemudian kumpulan itu berputar ke set bahasa seterusnya dan keseluruhan proses berjalan semula.

## Apa yang masih tidak sempurna

Hakim boleh tersilap, dan kesilapan itu mempunyai arah: ejen yang berjalan dengan konteks yang terlalu sedikit *melebih-lebihkan laporan*. Dalam satu kelompok, lapan bahasa ditandai pada ralat 5–20%; selepas pemeriksaan hanya satu bahasa yang mempunyai bug sebenar khusus bahasa — selebihnya adalah kesilapan hakim akibat terlepas pandang semantik bahasa itu sendiri (satu baris sumber secara sah memancarkan beberapa edge, ikatan parameter dimodelkan sebagai assignment, bahasa rujukan-per-pengecam). Itulah sebabnya kami mengambil sampel dengan dua seed dan menyilang semak, dan mengapa percanggahan antara hakim dan fixture dianggap sebagai isyarat yang *paling* menarik, bukan keputusan muktamad — kadangkala fixture itulah yang salah.

Kami juga jujur tentang sasaran itu. Matlamatnya ialah sifar ralat sebenar, tanpa kompromi — tetapi "sifar" adalah hala tuju yang kami usahakan secara berterusan, bahasa demi bahasa, bukan kotak yang ditanda. Sentiasa ada repositori lain dengan idiom lain.

## Diperoleh, Bukan Didakwa

Segala yang Maguyva lakukan untuk seorang ejen — mencari simbol, menjejaki kebergantungan, menjawab soalan dengan rujukan kepada kod — bergantung pada ketepatan pengekstrakan yang mendasarinya. Merentasi 280 bahasa, "betul" tidak boleh didakwa sahaja; ia perlu *diperoleh* secara berterusan berbanding kod sebenar. Gelung ini adalah cara kami memperolehnya: kitaran semak-sampel-dan-baiki yang autonomi yang mencurigai metriknya sendiri, membuktikan setiap perubahan, dan mengubah setiap pembaikan menjadi pengawal terhadap regresi seterusnya. Ia tidak glamour. Ia adalah kerja yang membolehkan kami berkata "kami menyokong bahasa anda" dan memaksudkannya dengan sungguh-sungguh. Hijau itu mudah. Betul itu diperoleh.
