O projeto Rust decidiu colocar regras sobre o uso de inteligência artificial em contribuições ao seu principal repositório. A nova política, adotada por equipes responsáveis por áreas como compilador, bibliotecas, tipos, rustdoc e bootstrap, estabelece limites para o uso de grandes modelos de linguagem (LLMs) no rust-lang/rust.
A decisão não representa uma posição de todo o ecossistema Rust sobre inteligência artificial, valendo apenas para o repositório rust-lang/rust e para as equipes que a ratificaram. Outros projetos, crates e equipes continuam livres para estabelecer suas próprias regras.
A ideia central pode ser resumida em: LLMs podem ajudar a pensar, mas não devem substituir quem contribui.
IA pode ajudar, mas não pode assumir o trabalho
O uso privado de ferramentas de IA continua permitido. Um desenvolvedor pode pedir ajuda para entender uma parte do código, analisar uma discussão, encontrar possíveis soluções, revisar seu próprio trabalho ou investigar um possível bug.
O limite aparece quando o resultado passa a ser apresentado como contribuição pública. Comentários, descrições de issues e pull requests, documentação e diagnósticos originalmente escritos por um LLM são proibidos, mesmo que tenham recebido edições posteriores. Para a política, o que importa é a origem do conteúdo.
Também não é permitido tratar uma revisão feita por IA como substituta da avaliação humana. Ferramentas automatizadas podem apontar problemas, mas a decisão de aprovar ou rejeitar uma mudança continua sendo responsabilidade de pessoas.
A preocupação do projeto vai além da possibilidade de código incorreto. O problema envolve o próprio processo de desenvolvimento de software. Uma contribuição polida e bem escrita costumava ser um sinal de que alguém havia investido tempo para entender o código. Com LLMs, esse sinal ficou menos confiável.
Ao mesmo tempo, gerar código ficou muito mais barato, enquanto a capacidade de revisão dos mantenedores continua limitada. O resultado pode ser uma enxurrada de pull requests que exigem tempo humano para serem analisadas, mesmo quando o código gerado parece correto.
Existe uma exceção para código gerado por IA
O Rust não proibiu completamente código produzido por LLMs. A política cria uma espécie de experimento controlado para esse tipo de contribuição.
Pull requests geradas originalmente por IA podem ser aceitas, desde que sejam previamente combinadas com um revisor disposto a analisá-las, tenham seu uso de LLM explicitamente declarado e atendam a padrões elevados de qualidade, testes e revisão.
Há ainda restrições sobre o tipo de código. Mudanças não críticas, como algumas ferramentas internas, podem se encaixar nesse modelo. Alterações relacionadas a partes sensíveis do compilador, como o sistema de traits, MIR ou query system, são consideradas inadequadas para esse experimento. Mesmo quando tecnicamente permitidas para especialistas, contribuições desse tipo são fortemente desencorajadas.
Outro detalhe importante é que um PR gerado por IA precisa ter testes. A política estabelece um padrão mais alto para esse tipo de mudança justamente porque a facilidade de geração de código também facilita produzir grandes quantidades de testes e alterações rapidamente.
Essas contribuições recebem a etiqueta ai-assisted, permitindo que o projeto acompanhe os resultados do experimento e descubra se o uso de LLMs realmente produz benefícios sustentáveis.
Um “freio de emergência”
A política prevê até mesmo um mecanismo para impedir que contribuições geradas por IA dominem o projeto.
Se mais de 50% dos pull requests mesclados em uma janela de seis semanas forem criados com auxílio de LLMs dentro das condições do experimento, novas contribuições desse tipo poderão deixar de ser aceitas temporariamente. A pausa deve durar pelo menos dez dias e só termina quando a proporção voltar para menos de 50%.
O objetivo é evitar que o uso de IA se transforme em um requisito informal para contribuir com o Rust ou que o volume de código gerado ultrapasse a capacidade da comunidade de revisá-lo.
No fundo, a política não tenta resolver a discussão sobre se IA é boa ou ruim para programação. O projeto reconhece que não existe consenso entre seus participantes. A tentativa é estabelecer uma regra que preserve duas coisas consideradas essenciais: a qualidade técnica do código e uma comunidade formada por pessoas que realmente entendem aquilo que estão construindo.
Fique por dentro das principais novidades da semana sobre tecnologia e Linux: receba nossa newsletter!