A inteligência artificial (IA) mudou fundamentalmente a forma como programamos. Os agentes de IA podem gerar e otimizar código, e até ajudar na depuração (debugging). No entanto, existem algumas limitações que os programadores devem ter em mente ao trabalhar com IA.
Os agentes de IA têm dificuldade com a ordem correta do código. Por exemplo, podem colocar inicializações no final de um ficheiro, o que causa erros em tempo de execução. Além disso, a IA pode definir sem hesitação várias versões da mesma classe ou função dentro de um projeto, levando a conflitos e confusão.
Uma solução para isto é a utilização 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, pode acontecer que a IA perca a coesão de um projeto e introduza duplicações indesejadas ou dependências incorretas durante a programação.
A maioria das plataformas de programação com IA funciona com as chamadas ferramentas que o modelo linguístico de grande escala (large language model) pode acionar. Essas ferramentas baseiam-se num protocolo de padrão aberto (MCP). Por isso, também é possível ligar um agente de programação de IA a um IDE como o Visual Studio Code. Opcionalmente, pode configurar um LLM localmente com Llama ou o Ollama e escolher um servidor MCP para integrar. A NetCare criou um Servidor MCP criado para ajudar na depuração e na gestão do sistema (Linux) subjacente. Útil para quando pretende colocar o código em produção (live) imediatamente.
Os modelos podem ser encontrados em Hugging Face.
Para gerir melhor o código gerado por IA, os programadores podem utilizar extensões de IDE que monitorizam a correção do código. Ferramentas como linters, verificadores de tipos (type checkers) e ferramentas avançadas de análise de código ajudam a detetar e corrigir erros precocemente. Constituem um complemento essencial ao código gerado por IA para garantir a qualidade e a estabilidade.
Uma das principais razões pelas quais os agentes de IA continuam a repetir erros reside na forma como a IA interpreta as APIs. Os modelos de IA precisam de contexto e de uma descrição clara do papel para gerar código eficaz. Isto significa que os prompts devem ser completos: devem conter não só os requisitos funcionais, mas também explicitar o resultado esperado e as condições prévias. Para facilitar isto, pode guardar os prompts num formato padrão (MDC) e enviá-los sempre juntamente com a IA. Isto é especialmente útil para regras de programação genéricas que utiliza, bem como para os requisitos funcionais e técnicos e a estrutura do seu projeto.
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 ajuda a estruturar o código gerado por IA e a manter o contexto dentro de um projeto maior. Mas também aqui é possível, se preferir, configurá-lo localmente por conta própria com bases de dados RAC.
A IA é uma ferramenta poderosa para programadores e pode ajudar a acelerar os processos de desenvolvimento. No entanto, ainda não é verdadeiramente capaz de desenhar e construir uma base de código mais complexa de forma autónoma sem controlo humano. 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 contacto em contacto para ajudar a configurar o ambiente de desenvolvimento, apoiar as equipas a tirar o máximo partido do mesmo e focar mais a atenção na engenharia de requisitos e no design do que na depuração e escrita de código.