Codificar com IA

Programação com Agente IA

A inteligência artificial (IA) mudou fundamentalmente a forma como programamos. Agentes de IA podem gerar código, otimizar e até auxiliar na depuração. No entanto, existem algumas limitações que os programadores devem ter em mente ao trabalhar com IA.

Problemas de Sequência e Duplicação

Os agentes de IA têm dificuldades com a ordem correta do código. Por exemplo, podem colocar inicializações no final de um ficheiro, o que causa erros de execução. Além disso, a IA pode definir várias versões da mesma classe ou função num projeto sem hesitar, levando a conflitos e confusão.

Uma plataforma de código com memória e estrutura de projeto ajuda

Uma solução para isto é o uso de plataformas de código de IA que conseguem gerir a memória e as estruturas do projeto. Isto ajuda a manter a consistência em projetos complexos. Infelizmente, estas funcionalidades nem sempre são aplicadas de forma consistente. Como resultado, a IA pode perder a coesão do projeto e introduzir duplicações indesejadas ou dependências incorretas durante a programação.

A maioria das plataformas de codificação de IA funciona com as chamadas 'tools' que o modelo de linguagem grande (LLM) pode invocar. Essas ferramentas baseiam-se num protocolo padrão aberto (MCP). É, portanto, possível ligar um agente de codificação de IA a um IDE como o Visual Code. Opcionalmente, pode configurar um LLM localmente com Llama do ollama e escolha um servidor MCP para integrar. Modelos podem ser encontrados em Hugging Face.

Extensões IDE são indispensáveis

Para gerenciar melhor o código gerado por IA, os desenvolvedores podem usar extensões de IDE que monitoram a correção do código. Ferramentas como linters, verificadores de tipo e ferramentas avançadas de análise de código ajudam a detectar e corrigir erros precocemente. Elas são um complemento essencial ao código gerado por IA para garantir qualidade e estabilidade.

A causa de erros recorrentes: contexto e função em APIs

Uma das principais razões pelas quais os agentes de IA continuam a cometer erros reside na forma como a IA interpreta as APIs. Modelos de IA precisam de contexto e de uma descrição clara de função para gerar código eficaz. Isso significa que os prompts devem ser completos: eles devem incluir não apenas os requisitos funcionais, mas também tornar explícito o resultado esperado e as condições de contorno. Para facilitar isso, você pode armazenar os prompts em um formato padrão (MDC) e enviá-los automaticamente para a IA. Isso é especialmente útil para regras de programação genéricas que você usa, bem como para os requisitos funcionais e técnicos e a estrutura do seu projeto.

Ferramentas como FAISS e LangChain ajudam

Produtos como FAISS e LangChain oferecem soluções para ajudar a IA a lidar melhor com o contexto. O FAISS, por exemplo, ajuda na busca e recuperação eficientes de trechos de código relevantes, enquanto o LangChain auxilia na estruturação do código gerado por IA e na manutenção do contexto dentro de um projeto maior. Mas, mesmo aqui, você pode optar por configurar localmente com bancos de dados RAC.

Conclusão: útil, mas ainda não autônomo

A IA é uma ferramenta poderosa para programadores e pode ajudar a acelerar os processos de desenvolvimento. No entanto, ainda não é totalmente capaz de projetar e construir uma base de código mais complexa de forma independente, sem supervisão humana. Os programadores devem encarar a IA como um assistente que pode automatizar tarefas e gerar ideias, mas que ainda necessita de orientação e correção para alcançar um bom resultado.

Entre Contato para ajudar a configurar o ambiente de desenvolvimento, auxiliando as equipas a tirar o máximo proveito do ambiente de desenvolvimento e a dedicarem-se mais à engenharia de requisitos e ao design do que à depuração e escrita de código.

 

Gerard

Gerard atua como consultor e gestor de IA. Com vasta experiência em grandes organizações, ele consegue desvendar problemas e trabalhar em direção a uma solução com grande rapidez. Aliado a uma formação económica, ele garante escolhas comercialmente sólidas.

IA (Inteligência Artificial)