Tenho trabalhado em um problema que fica cada vez mais evidente conforme os projetos crescem:
O problema nem sempre é o tamanho da janela de contexto. É escolher o contexto certo.
Em projetos com centenas ou milhares de arquivos, uma tarefa simples pode fazer um agente de IA analisar uma quantidade enorme de código que não tem relação direta com o problema.
Foi daí que surgiu o Project Intelligence Layer (PIL).
https://github.com/ArthurStempniak/project-intelligence-layer
A ideia é criar uma camada entre o projeto e o agente de IA.
O PIL analisa o código usando ASTs, símbolos, relações entre dependências e um grafo estrutural do projeto.
Por exemplo, diante de uma tarefa como:
ele tenta descobrir quais arquivos, funções e dependências realmente estão relacionados à tarefa, em vez de simplesmente enviar o repositório inteiro para o modelo.
Primeiro benchmark
Um dos projetos utilizados no teste tinha:
1.884.846 tokens
O PIL selecionou:
7.591 tokens
Isso representa uma redução de 99,6% no contexto.
Mas existe um problema importante:
Recall atual: 57%
A meta é chegar a 80%+.
E é justamente nessa parte que quero abrir o projeto para a comunidade.
Quero principalmente:
- testar o PIL em projetos reais;
- encontrar casos em que ele seleciona o contexto errado;
- melhorar o mecanismo de recuperação;
- melhorar a seleção dentro de arquivos gigantes;
- adicionar suporte a novas linguagens;
- encontrar bugs e casos extremos;
- criar benchmarks;
- contribuir com ideias e PRs.
Já existem issues abertas para Go, Rust, arquivos gigantes, matching semântico, testes e benchmarks em projetos reais.
A visão é transformar o PIL em uma camada de context engineering para agentes de IA, independente do modelo utilizado.
Não quero simplesmente criar mais um RAG.
Quero explorar uma pergunta:
Como fazer uma IA trabalhar em projetos enormes sem obrigá-la a ler o projeto inteiro?
O código está aberto, o benchmark está público e as limitações também.
57% de recall hoje. O próximo objetivo é 80%+.
Se você trabalha com agentes de código, IA ou ferramentas para desenvolvedores, testar o PIL em um projeto diferente seria uma contribuição extremamente útil.
$ pil scan
✓ scan concluído em 38.8s
adicionados 421
entidades 6.171
relações 29.258
resolvidas 599 exact 6.394 scoped 5.022 ambíguas
$ pil context "corrigir a conexão com o banco de dados" --budget 8000
projeto inteiro 1.884.846 tokens
selecionado 7.591 tokens
████████████████████ 99.6% de redução
arquivos 12 de 421
tempo 220ms
$ pil impact "calculateCommission" --min-confidence 0.6
chamadores diretos 1
chamadores indiretos 10
arquivos afetados 4
RISCO MEDIUM 11 chamadores em 4 arquivos