Lompat ke konten
cd /languages
  • Komputasi statistik
  • Pemrograman
  • Dukungan AST dan simbol

R di Maguyva: graf kode untuk analisis dan paket

Maguyva mendukung R dengan AST, simbol, dan graf, sehingga agen AI dapat menelusuri fungsi, dispatch S3 dan S4, serta panggilan penyesuaian model di seluruh skrip dan paket R.

Di mana R menjebak alat AI yang dangkal

R menaruh fungsi dasar, fungsi paket, dan fungsi Anda dalam satu namespace datar. Titik adalah bagian dari nama, bukan akses anggota: is.na, data.frame, dan print.summary_table adalah pengenal tunggal. Alat yang membaca print.summary_table sebagai metode pada print salah memahami strukturnya, dan alat yang mencatat setiap panggilan dasar mengubur fungsi Anda di bawah c() dan paste().

Maguyva menjaga nama R tetap utuh dan memfilter kebisingan fungsi dasar, sehingga agen melihat fungsi yang benar-benar menjadi sandaran analisis Anda.

Apa yang diekstrak Maguyva dari R

Maguyva memetakan berkas .R, .Rmd, dan .Rnw ke R. Fungsi yang ditetapkan ke sebuah nama, seperti clean_survey <- function(df), diekstrak dengan nama itu; fungsi anonim tidak dianggap sebagai definisi. Nama bertitik tidak pernah dipecah menjadi penerima dan anggota.

Beberapa panggilan R dasar sengaja dibiarkan di graf karena menunjukkan bagaimana kode analisis saling terhubung: dispatch S3 dan S4 (UseMethod, standardGeneric), keluarga apply (lapply, sapply, vapply, mapply), penyesuaian model (lm, predict, anova), pemuatan paket (library, require), dan penanganan kesalahan dengan tryCatch.

Graf juga mencatat instansiasi serta pembacaan dan penulisan.

Contoh prompt agen

  • “Siapa yang memanggil clean_survey, dan model mana yang memakai keluarannya?” (find_symbol, lalu dependency_search incoming)
  • “Fungsi mana saja yang memanggil fit_model?” (dependency_search)
  • “Telusuri jalur dari load_raw_data sampai regresi akhir.” (get_task_context)

Batasan yang diketahui

  • Sekitar 800 nama dari R dasar, stats, dan graphics difilter dari relasi, seperti print, paste, c, data.frame, panggilan plotting, dan pembangkit bilangan acak. Gunakan text_pattern_search untuk itu.
  • R membuat kelas dan memuat paket dengan panggilan fungsi biasa, sehingga preset classes, imports, dan variables di structural_search tidak memilih apa pun. Gunakan find_symbol dan text_pattern_search.
  • Berkas .Rmd dan .Rnw dibaca utuh dengan tata bahasa R, bukan per potongan; harapkan hasil parsial pada dokumen R Markdown dan Sweave.
  • R tidak memiliki sintaksis dekorator, sehingga relasi dekorator ditandai tidak berlaku.

Langkah berikutnya

Hubungkan repositori dengan panduan memulai cepat, lalu periksa matriks dukungan di halaman kompatibilitas. Untuk repositori sains data campuran, baca juga panduan Python.

Paling cocok untuk

  • > Paket R dengan banyak fungsi yang diekspor, metode S3, dan pembantu internal.
  • > Pipeline analisis yang dipecah ke skrip-skrip yang berbagi fungsi pembersihan data dan pemodelan.
  • > Tim data yang menyerahkan kode R kepada agen AI yang perlu melihat fungsi mana memasok model mana.

Workflow agent

  • > Menemukan semua pemanggil fungsi pembersihan data sebelum mengubah kolom yang dikembalikannya.
  • > Menelusuri fungsi mana yang melakukan dispatch dengan `UseMethod` dan di mana metodenya berada.
  • > Memetakan jalur dari pemuatan data mentah sampai model yang sudah disesuaikan.

Detail engine

  • > Dukungan R memetakan berkas `.R`, `.Rmd`, dan `.Rnw` ke R. Fungsi yang ditetapkan ke sebuah nama diekstrak dengan nama itu, dan nama bertitik seperti `data.frame` tetap utuh.
  • > Dispatch S3 dan S4 (`UseMethod`, `standardGeneric`), keluarga apply, `lm`, `predict`, dan `tryCatch` sengaja dibiarkan di graf.
  • > Sekitar 800 nama dari R dasar, `stats`, dan `graphics`, seperti `print`, `paste`, dan `c`, difilter dari relasi.

Titik masuk MCP yang berguna

  • find_symbol

    Gunakan untuk nama fungsi pembersihan, pemodelan, atau metode S3 saat Anda membutuhkan definisi dan pemanggilnya.

  • dependency_search

    Gunakan penelusuran incoming untuk melihat analisis mana yang bergantung pada fungsi pembantu sebelum mengubah keluarannya.

  • get_task_context

    Gunakan untuk prompt seperti "telusuri jalur dari pemuatan data mentah sampai regresi akhir".