O AlphaEvolve orienta as operações usando a linha de base de código fornecida e o contexto específico do usuário.
Contexto do usuário
O contexto fornecido pelo usuário é inserido em cada comando de geração. Ele equilibra o espaço de pesquisa, fornecendo ao LLM conhecimento do domínio, formulações matemáticas e restrições do sistema.
- Orçamento de tokens: até 200.000 tokens têm um bom desempenho. Acima de um limite de 200 mil tokens, a janela de contexto fica carregada, a atenção do LLM diminui e a qualidade da mutação é reduzida. Se o contexto combinado (descrição do problema, código e programas anteriores) exceder 200 mil tokens, será necessário reduzi-lo.
O que incluir
Formulação matemática precisa do problema de otimização.
Restrições principais e a lógica clara delas.
Terminologia e definições específicas do domínio.
Abordagens boas conhecidas ou anterioridade para orientar a direção da pesquisa do LLM.
Instruções específicas e explícitas detalhando o que NÃO fazer.
O que NÃO incluir
Tutoriais gerais de programação.
Documentação da biblioteca padrão (o LLM já conhece
numpy,sklearnetc.). No entanto, INCLUA a documentação de bibliotecas de nicho ou específicas do domínio que o LLM talvez não conheça bem (APIs de kernel personalizadas, SDKs proprietários ou DSLs especializadas).Dados brutos arbitrários, planilhas ou grandes despejos de dados. Os dados pertencem ao ambiente de teste do avaliador, não ao contexto do comando.
Contexto não relacionado que consome tokens sem adicionar um indicador de pesquisa.
Cada parte do contexto incluído precisa oferecer valor claro, ajudando ativamente o LLM a produzir mutações melhores e estruturalmente sólidas.
Feedback da avaliação (insights)
Após cada loop de execução, o avaliador pode retornar um texto de feedback de diagnóstico junto com pontuações numéricas. Esse feedback é anexado automaticamente a estruturas de comandos futuras.
Linha de base de qualidade: o feedback forte é específico, prático e conciso. O feedback ruim é genérico (como "a avaliação falhou") ou excessivamente detalhado.
Objetivo operacional: esses insights são mostrados ao LLM em gerações subsequentes, permitindo que ele aprenda explicitamente com falhas de execução e evite bugs repetitivos.
Diversificação de comandos integrada
O AlphaEvolve diversifica automaticamente os comandos transmitidos ao conjunto de LLMs de back-end. Essa operação é processada internamente e não requer configuração manual do usuário.
O sistema varia as instruções principais em gerações sucessivas para incentivar mutações diversas e evitar que o LLM caia em padrões de codificação repetitivos. Esse comportamento serve como um dos principais mecanismos que ajudam o AlphaEvolve a explorar um cenário amplo em vez de ficar preso em ótimos locais estreitos.
Legibilidade do código
A complexidade do código atua como uma métrica auxiliar eficaz. Se a legibilidade do código final for um fator para seu caso de uso de produção, considere adicionar o comprimento do código ou a complexidade cognitiva como uma métrica de destino secundária.
O AlphaEvolve pode alcançar até 50% de compactação de arquivos sem degradar o desempenho funcional. No entanto, o LLM vai explorar métricas de simplicidade ingênuas (como remover todos os comentários inline para reduzir a contagem de caracteres brutos). Para evitar isso, implemente métricas que capturem a complexidade estrutural significativa, como a complexidade ciclomática ou a contagem de nós da árvore de sintaxe abstrata (AST, na sigla em inglês), em vez de avaliar comprimentos de strings brutos.