Pular para o conteúdo
cd /languages
  • Computação estatística
  • Programação
  • Suporte a AST e símbolos

R no Maguyva: grafos de código para análise e pacotes

O Maguyva oferece suporte a R com AST, símbolos e grafo, para que agentes de IA sigam funções, dispatch S3 e S4 e chamadas de ajuste de modelos em scripts e pacotes R.

Onde R derruba ferramentas de IA superficiais

R coloca as funções base, as dos pacotes e as suas em um único namespace plano. Pontos fazem parte dos nomes, não são acesso a membros: is.na, data.frame e print.summary_table são identificadores únicos. Uma ferramenta que lê print.summary_table como um método em print entende a estrutura errado, e uma que registra cada chamada base enterra suas funções embaixo de c() e paste().

O Maguyva mantém os nomes do R inteiros e filtra o ruído das funções base, para que um agente veja as funções das quais sua análise realmente depende.

O que o Maguyva extrai em R

O Maguyva associa arquivos .R, .Rmd e .Rnw a R. Funções atribuídas a um nome, como clean_survey <- function(df), são extraídas com esse nome, e funções anônimas não são tratadas como definições. Nomes com pontos nunca são divididos em receiver e membro.

Algumas chamadas do R base ficam no grafo de propósito, porque mostram como o código de análise está ligado: dispatch S3 e S4 (UseMethod, standardGeneric), a família apply (lapply, sapply, vapply, mapply), ajuste de modelos (lm, predict, anova), carregamento de pacotes (library, require) e tratamento de erros com tryCatch.

O grafo também registra instanciação e leituras e escritas.

Exemplos de prompts para agentes

  • “Quem chama clean_survey, e quais modelos usam a saída dela?” (find_symbol, depois dependency_search incoming)
  • “Quais funções chamam fit_model?” (dependency_search)
  • “Rastreie o caminho de load_raw_data até a regressão final.” (get_task_context)

Limitações conhecidas

  • Cerca de 800 nomes do R base, de stats e de graphics são filtrados das relações, como print, paste, c, data.frame, chamadas de gráficos e geradores de números aleatórios. Use text_pattern_search para encontrá-los.
  • O R cria classes e carrega pacotes com chamadas de função comuns, então os presets classes, imports e variables do structural_search não selecionam nada. Use find_symbol e text_pattern_search.
  • Arquivos .Rmd e .Rnw são lidos inteiros com a gramática do R, e não chunk por chunk, então espere resultados parciais em documentos R Markdown e Sweave.
  • R não tem sintaxe de decorator, então as relações de decorator estão marcadas como não aplicáveis.

Próximos passos

Conecte um repositório pelo início rápido e depois confira a matriz de suporte na página de compatibilidade. Para repositórios mistos de ciência de dados, leia também o guia de Python.

Uso ideal

  • > Pacotes R com muitas funções exportadas, métodos S3 e helpers internos.
  • > Pipelines de análise divididos em scripts que compartilham funções de limpeza de dados e de modelagem.
  • > Times de dados que entregam código R a agentes de IA que precisam ver quais funções alimentam quais modelos.

Fluxos de trabalho de agente

  • > Encontrar todos os chamadores de uma função de limpeza de dados antes de mudar as colunas que ela retorna.
  • > Rastrear quais funções fazem dispatch com `UseMethod` e onde ficam seus métodos.
  • > Mapear o caminho do carregamento dos dados brutos até um modelo ajustado.

Detalhes do motor

  • > O suporte a R associa `.R`, `.Rmd` e `.Rnw` a R. Funções atribuídas a um nome são extraídas com esse nome, e nomes com pontos como `data.frame` ficam inteiros.
  • > Dispatch S3 e S4 (`UseMethod`, `standardGeneric`), a família apply, `lm`, `predict` e `tryCatch` ficam no grafo de propósito.
  • > Cerca de 800 nomes do R base, de `stats` e de `graphics`, como `print`, `paste` e `c`, são filtrados das relações.

Pontos de entrada MCP úteis

  • find_symbol

    Use para o nome de uma função de limpeza, de modelagem ou de um método S3 quando precisar da definição e dos chamadores.

  • dependency_search

    Use a travessia incoming em uma função auxiliar para ver quais análises dependem dela antes de mudar sua saída.

  • get_task_context

    Use para prompts como "rastreie o caminho do carregamento dos dados brutos até a regressão final".