KotlinLLM está se tornando Open Source
TL;DR
KotlinLLM agora é público. É um protótipo de pesquisa para delegar lógica em tempo de execução a um LLM do código Kotlin. Em vez de chamar um LLM em cada solicitação ou executar um agente separado, você pode escrever uma chamada explícita no Kotlin. Seu corpo é código fonte Kotlin gerado, e esse código é atualizado conforme seu aplicativo atinge novos cenários de tempo de execução.
O que é KotlinLLM?
KotlinLLM é um plugin do IntelliJ IDEA para projetos Kotlin/JVM. Ele adiciona uma característica de linguagem chamada Macros Inteligentes. Uma Macro Inteligente é uma chamada regular de função Kotlin cujo corpo é código fonte Kotlin gerado. A API pública tem os seguintes dois Macros Inteligentes:
asLlm<F, T>(from, hint)converte uma entrada do tipo F em um valor tipado T (classe de dados, enum, lista ou primitivo). Use-o para analisar dados não estruturados ou semi-estruturados em valores Kotlin tipados em tempo de execução.mockLlm<T>()gera uma implementação estatal de uma interface T. Seu comportamento depende dos métodos chamados nele, então funciona como um substituto de teste que você não precisa escrever à mão.
// Um nível mais alto de abstração: descreva a intenção, deixe o KotlinLLM preencher a lógica. val issuesApiUrl: String = asLlm(repoInput, hint = "GitHub API URL: get all issues, including closed") val issues: List<Issue> = asLlm(response, hint = "Return all beginner-friendly issues for this repository")
O comportamento vem do uso real em tempo de execução, não é totalmente especificado antes que o programa seja executado. O local da chamada permanece compacto e explícito: uma API clara e semelhante a palavras-chave sobre código gerado.
O problema que ele resolve
Na engenharia de software, os LLMs são usados durante a fase de desenvolvimento, ou seja, conclusão de código, geração de código e compreensão do programa. Usar um LLM no tempo de execução de uma aplicação compilada é menos comum, e as opções existentes têm claramente vantagens e desvantagens:
- Delegação direta em tempo de execução (chamando o modelo em cada invocação) é lenta, não determinística e cara. Também faz com que a aplicação dependa de um serviço LLM em tempo de execução.
- Ciclos de trabalho de agente externo mantêm a lógica gerada fora do repositório de código, onde é mais difícil revisar, testar e enviar.
- A maioria dos trabalhos anteriores (por exemplo, byLLM, nightjar, Healer) visa linguagens interpretadas como Python, não uma linguagem compilada e estática como Kotlin.
O KotlinLLM é construído em torno de três propriedades:
- Espúrio – o local da chamada mostra que uma funcionalidade é baseada em LLM, então é visível na revisão do código.
- Persistente – o comportamento gerado é salvo como um Kotlin fonte ordinário, não mantido apenas na sessão de tempo de execução. Pode ser comprometido, revisado, testado e distribuído como qualquer outro código.
- Portátil – uma vez gerada, o código roda como Kotlin simples sem o plugin. Para cenários que já estão cobertos, não há chamadas adicionais de LLM, então não há latência ou custo adicional e o resultado é reproduzível.
Funciona realmente?
Testamos a abordagem em dois projetos Kotlin/JVM:
- Um Spring Petclinic adaptado em Kotlin – 18 chamadas de
asLlm, 24/24 cenários de aplicação concluídos após evolução inteligente, com uma taxa de sucesso de recarga quente de 100% e adição de compilação/redefinição adicionando ~1% do tempo total de execução. - Um radar sintético “GitHub Beginner Issue” – análise de dados reais de problemas no GitHub em 20 repositórios (mais de 30k problemas), alcançando ~0,89 recall nos rótulos iniciantes.
Esses resultados mostram que a evolução persistente do tempo de execução para Kotlin compilado é viável. A avaliação também documenta os limites atuais.
Estamos tornando isso público
O KotlinLLM está disponível em código aberto sob a Licença Apache 2.0. O repositório contém:
- A versão protótipo do plugin IntelliJ e a API Smart macro estabilizada.
- Projetos executáveis (GitHub Issue Radar, Petclinic adaptada), incluindo códigos gerados comprometidos, para que você possa inspecionar o que foi produzido pelo LLM e executá-lo como Kotlin ordinário.
- A palestra da KotlinConf2026 com a gravação e o relatório teórico com a razão de design completa e avaliação.
Experimente e nos diga o que você pensa
O KotlinLLM é um protótipo de pesquisa, então feedback nessa etapa é útil. Algumas maneiras de ajudar:
- Inicie e explore o repositório
- Tente em seu próprio projeto Kotlin/JVM. Adicione o arquivo
KotlinLLM.kt, execute com o executor Run with KotlinLLM, e deixe as macros inteligentes evoluir. Os passos de configuração estão no README. - Crie problemas para tudo que você encontrar: bordas ásperas, comportamento inesperado do LLM, casos ausentes ou comportamentos que você espera serem diferentes.
- Envie PRs com casos de uso. Cenários reais onde
asLlm/mockLlmfuncionam bem – ou falham – são os mais úteis. Novos exemplos, tipos alvo e ferramentas de agente são todos bem-vindos.
Caso encontre um lugar onde a delegação lógica do tempo de execução se encaixa no seu código, crie um problema. Se você construir algo com isso, envie uma PR.

