← Últimos artigos
🤖 AI

Specification Portability Across LLM Development Agents: Cross-Agent Compatibility in Specification-Driven Software Migration

Este artigo demonstra que as especificações geradas por um agente de IA para migração de Oracle para PostgreSQL frequentemente falham ao serem portadas efetivamente para outros agentes, revelando uma degradação significativa dependente do agente na qualidade da implementação e destacando a necessidade de estratégias explícitas, como a ingestão com aumento de recuperação, para garantir a compatibilidade entre agentes em fluxos de trabalho de engenharia de software.

Autores originais: Oleg Grynets, Oleksii Ilchuk, Dariia Zatulna, Vasyl Lyashkevych

Publicado 2026-08-24
📖 5 min de leitura🧠 Leitura aprofundada

Autores originais: Oleg Grynets, Oleksii Ilchuk, Dariia Zatulna, Vasyl Lyashkevych

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

No mundo moderno da criação de software, um novo tipo de trabalhador juntou-se à equipe: o modelo de linguagem de grande escala. Estes são programas de computador poderosos treinados em vastas quantidades de texto e código, capazes de ler uma descrição de uma tarefa e escrever as instruções que o computador precisa para executá-la. À medida que estas ferramentas se tornam mais comuns, os desenvolvedores estão a passar de simplesmente pedir que escrevam código para lhes fornecerem plantas detalhadas, conhecidas como especificações. Estas especificações atuam como guias operacionais, dizendo ao modelo exatamente o que construir, como deve comportar-se e quais as regras que deve seguir. Esta abordagem, chamada desenvolvimento orientado por especificação, promete tornar a criação de software mais fiável e estruturada. No entanto, uma questão crítica surgiu à medida que as equipas começam a utilizar múltiplos modelos diferentes para construir um único sistema: se um modelo escreve uma planta perfeita, será um modelo diferente capaz de ler essa planta e construir a mesma coisa? A suposição tem sido a de que um bom plano é um bom plano, independentemente de quem o lê, mas a realidade de como estas máquinas interpretam a informação é muito mais complexa.

Investigadores da EPAM Systems decidiram testar esta suposição tratando a migração de software como um experimento controlado. Escolheram uma tarefa específica e difícil: mover o código de uma base de dados de um sistema, Oracle, para outro, PostgreSQL. Estes dois sistemas falam linguagens semelhantes, mas possuem dialetos diferentes, exigindo uma tradução precisa de lógica, tipos de dados e funções. A equipa estabeleceu primeiro uma linha de base, fazendo com que um único modelo gerasse uma especificação e, em seguida, utilizasse essa mesma especificação para escrever o novo código. Isto funcionou razoavelmente bem; de mais de mil ficheiros fonte, o sistema regenerou com sucesso mais de 600, e quase 400 desses novos scripts funcionaram corretamente no ambiente de destino. Isto provou que o método de utilizar uma especificação de etapa intermédia era viável. Mas o verdadeiro teste veio quando introduziram um segundo modelo, diferente, na mistura.

Os investigadores criaram um cenário onde um modelo, como o Amazon Kiro, escreveria uma especificação e, em seguida, um modelo completamente diferente, como o Google Gemini ou o GitHub Copiloto, receberia esse documento para gerar o código. Eles queriam ver se o segundo modelo conseguiria compreender o plano do primeiro sem perder qualidade. Os resultados foram impressionantes e surpreendentes. O tamanho da especificação revelou-se irrelevante para o resultado. Um modelo produziu um documento massivo e detalhado com quase 1.600 linhas de texto, enquanto outro produziu uma versão concisa com apenas cerca de 200 linhas. No entanto, a extensão do documento não previu o quão bem o código funcionaria. De facto, a descoberta mais significativa foi que a origem da especificação importava imenso. Quando o Google Gemini recebeu uma especificação escrita pelo Amazon Kiro, a qualidade do código resultante colapsou. Os novos scripts falharam ao executar, continham erros de sintaxe e não se pareciam em nada com o alvo pretendido. Este fracasso não foi uma falha isolada; os investigadores repetiram o experimento e observaram o mesmo declínio dramático de desempenho, confirmando que os dois modelos simplesmente não conseguiam concordar sobre como interpretar o mesmo conjunto de instruções.

Esta incompatibilidade não era, contudo, universal, o que adicionou uma camada de nuance à descoberta. Embora o Gemini tenha tido dificuldades profundas com as especificações do Kiro, o GitHub Copiloto lidou muito melhor com os mesmos documentos estrangeiros, por vezes desempenhando tão bem com eles como o fazia com os seus próprios. Isto sugeriu que o problema não era que os planos estrangeiros fossem inerentemente maus, mas sim que diferentes modelos têm diferentes formas de ler e compreender o texto. Para abordar isto, a equipa testou várias formas de ajudar os modelos a colmatar a lacuna. Tentaram reescrever as especificações estrangeiras num novo formato que o modelo recetor pudesse preferir e tentaram comprimir o texto para o tornar mais curto. A reescrita ajudou o Gemini significativamente, elevando o seu desempenho de volta a um nível utilizável, mas a compressão do texto não ofereceu qualquer benefício real. A estratégia mais promissora envolveu uma técnica chamada geração aumentada por recuperação (RAG). Em vez de alimentar o modelo com toda a especificação de uma só vez, os investigadores deram ao modelo uma ferramenta para pesquisar através do documento e extrair apenas as partes específicas de que necessitava para a tarefa atual. Esta abordagem não venceu em todos os critérios, mas foi o único método que proporcionou um equilíbrio consistentemente forte de desempenho tanto para os modelos que estavam com dificuldades como para os que eram bem-sucedidos.

O estudo conclui que, num mundo onde o software é construído por uma equipa de diferentes agentes de inteligência artificial, uma especificação não pode ser tratada como um documento neutro e universal. Um plano escrito por um agente não é automaticamente um conjunto de instruções válido para outro. A eficácia do código depende fortemente da relação específica entre o modelo que escreveu o plano e o modelo que está a construir o software. Se uma equipa substituir um agente por outro, não pode simplesmente assumir que as plantas existentes funcionarão; podem ser necessários adaptar a linguagem do plano ou mudar a forma como o novo agente acede à informação. A investigação sugere que o futuro da engenharia de software multi-agente exigirá um novo foco em como as especificações são estruturadas e entregues, garantindo que o conhecimento contido num plano possa ser efetivamente compreendido pela máquina encarregue de o construir.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →