Перейти до вмісту
cd /languages
  • Статистичні обчислення
  • Програмування
  • Підтримка AST і символів

R у Maguyva: графи коду для аналітики й пакетів

Maguyva підтримує R з AST, символами та графом, щоб ШІ-агенти могли простежувати функції, диспетчеризацію S3 і S4 та виклики підгонки моделей у скриптах і пакетах R.

Де R збиває з пантелику поверхові ШІ-інструменти

R розміщує базові функції, функції пакетів і ваші функції в одному пласкому просторі імен. Крапки є частиною імені, а не доступом до члена: is.na, data.frame і print.summary_table є цілісними ідентифікаторами. Інструмент, що читає print.summary_table як метод у print, неправильно розуміє структуру, а інструмент, що записує кожен базовий виклик, ховає ваші функції під c() і paste().

Maguyva зберігає імена R цілими й відфільтровує шум базових функцій, щоб агент бачив функції, від яких справді залежить ваш аналіз.

Що Maguyva витягує з R

Maguyva зіставляє файли .R, .Rmd і .Rnw з R. Функції, присвоєні імені, як-от clean_survey <- function(df), витягуються під цим ім’ям; анонімні функції не вважаються визначеннями. Імена з крапками ніколи не розбиваються на отримувача й член.

Деякі базові виклики R навмисно лишено в графі, бо вони показують, як пов’язаний аналітичний код: диспетчеризація S3 і S4 (UseMethod, standardGeneric), сімейство apply (lapply, sapply, vapply, mapply), підгонка моделей (lm, predict, anova), завантаження пакетів (library, require) та обробка помилок через tryCatch.

Граф також фіксує створення екземплярів, читання й запис.

Приклади промптів для агентів

  • «Хто викликає clean_survey і які моделі використовують її результат?» (find_symbol, потім dependency_search за вхідними зв’язками)
  • «Які функції викликають fit_model?» (dependency_search)
  • «Простеж шлях від load_raw_data до підсумкової регресії.» (get_task_context)

Відомі обмеження

  • Близько 800 імен із базового R, stats і graphics відфільтровано зі зв’язків, наприклад print, paste, c, data.frame, виклики побудови графіків і генератори випадкових чисел. Для них використовуйте text_pattern_search.
  • R створює класи й завантажує пакети звичайними викликами функцій, тому пресети classes, imports і variables у structural_search нічого не вибирають. Використовуйте find_symbol і text_pattern_search.
  • Файли .Rmd і .Rnw читаються повністю граматикою R, а не за фрагментами; для документів R Markdown і Sweave результати можуть бути неповними.
  • У R немає синтаксису декораторів, тому зв’язки декораторів позначено як незастосовні.

Наступні кроки

Під’єднайте репозиторій за швидким стартом, потім перегляньте матрицю підтримки на сторінці сумісності. Для змішаних репозиторіїв з науки про дані прочитайте також посібник із мови Python.

Найкраще підходить

  • > Пакети R з багатьма експортованими функціями, методами S3 і внутрішніми допоміжними функціями.
  • > Аналітичні конвеєри, розбиті на скрипти, що спільно використовують функції очищення даних і моделювання.
  • > Команди даних, які передають код на R ШІ-агентам, що мають бачити, які функції живлять які моделі.

Робочі процеси агента

  • > Знайти всі виклики функції очищення даних, перш ніж змінювати стовпці, які вона повертає.
  • > Простежити, які функції диспетчеризують через `UseMethod` і де розташовані їхні методи.
  • > Скласти карту шляху від завантаження сирих даних до підігнаної моделі.

Деталі рушія

  • > Підтримка R зіставляє файли `.R`, `.Rmd` і `.Rnw` з R. Функції, присвоєні імені, витягуються під цим ім'ям, а імена з крапками на кшталт `data.frame` лишаються цілими.
  • > Диспетчеризацію S3 і S4 (`UseMethod`, `standardGeneric`), сімейство apply, `lm`, `predict` і `tryCatch` навмисно лишено в графі.
  • > Близько 800 імен із базового R, `stats` і `graphics`, як-от `print`, `paste` і `c`, відфільтровано зі зв'язків.

Корисні точки входу MCP

  • find_symbol

    Використовуйте для імені функції очищення, моделювання чи методу S3, коли потрібні визначення й виклики.

  • dependency_search

    Використовуйте обхід вхідних зв'язків, щоб побачити, які аналізи залежать від допоміжної функції, перш ніж змінювати її результат.

  • get_task_context

    Використовуйте для промптів на кшталт «простеж шлях від завантаження сирих даних до підсумкової регресії».