Kunstig intelligens (AI) har fundamentalt ændret måden, vi programmerer på. AI-agenter kan generere kode, optimere og endda assistere med fejlfinding. Ikke desto mindre er der visse begrænsninger, som programmører bør huske på, når de arbejder med AI.
AI-agenter har besværligheder med den korrekte rækkefølge i koden. De kan for eksempel placere initialiseringer i slutningen af en fil, hvilket forårsager runtime-fejl. Derudover kan AI uden tøven definere flere versioner af den samme klasse eller funktion inden for et projekt, hvilket fører til konflikter og forvirring.
En løsning på dette er brugen af AI-kodeplatforme, der kan håndtere hukommelse og projektstrukturer. Dette hjælper med at bevare konsistens i komplekse projekter. Desværre anvendes disse funktioner ikke altid konsekvent. Dette kan resultere i, at AI'en mister projektets sammenhæng og introducerer uønskede duplikater eller ukorrekte afhængigheder under programmeringen.
De fleste AI-kodningsplatforme arbejder med såkaldte værktøjer, som large language model'en kan tilkalde. Disse værktøjer er baseret på en åben standardprotokol (MCP). Det er derfor også muligt at koble et AI-kodeagent til en IDE som Visual Code. Eventuelt kan du opsætte en LLM lokalt med llama af Ollama og vælger en MCP-server til integration. NetCare har lavet en MCP-server for at hjælpe med debugging og administration af det underliggende (linux) system. Praktisk, hvis du vil sætte koden live med det samme.
Modeller kan findes på huggingface.
For bedre at styre AI-genereret kode kan udviklere bruge IDE-udvidelser, der overvåger kodens korrekthed. Værktøjer som linters, type-checkere og avancerede kodeanalyse-værktøjer hjælper med tidligt at opdage og rette fejl. De udgør et essentielt supplement til AI-genereret kode for at sikre kvalitet og stabilitet.
En af de primære årsager til, at AI-agenter fortsætter med at gentage fejl, ligger i måden, AI fortolker API'er på. AI-modeller har brug for kontekst og en klar rollebeskrivelse for at generere effektiv kode. Dette betyder, at prompts skal være komplette: de skal ikke kun indeholde de funktionelle krav, men også eksplicit angive det forventede resultat og randbetingelserne. For at lette dette kan du gemme prompterne i standardformat (MDC) og automatisk sende dem med til AI'en. Dette er især nyttigt for generiske programmeringsregler, du anvender, samt de funktionelle og tekniske krav og strukturen i dit projekt.
Produkter som FAISS og LangChain tilbyder løsninger til at lade AI bedre håndtere kontekst. FAISS hjælper for eksempel med effektivt at søge og hente relevante kodefragmenter, mens LangChain hjælper med at strukturere AI-genereret kode og bevare konteksten inden for et større projekt. Men her kan du også eventuelt opsætte det lokalt med RAC-databaser.
AI er et kraftfuldt værktøj for programmører og kan hjælpe med at accelerere udviklingsprocesser. Ikke desto mindre er det endnu ikke i stand til selvstændigt at designe og bygge en mere kompleks kodebase uden menneskelig kontrol. Programmører bør betragte AI som en assistent, der kan automatisere opgaver og generere ideer, men som stadig har brug for vejledning og korrektion for at opnå et godt resultat.
Kontakt os til at hjælpe med at opsætte udviklingsmiljøet for at hjælpe teams med at få mest muligt ud af udviklingsmiljøet og fokusere mere på kravspecifikation og design end på debugging og kodning.