Kodning med AI

Programmering med AI-agent

Kunstig intelligens (AI) har fundamentalt ændret den måde, vi programmerer på. AI-agenter kan generere, optimere og endda hjælpe med fejlfinding af kode. Der er dog visse begrænsninger, som programmører skal være opmærksomme på, når de arbejder med AI.

Rækkefølge- og duplikeringsproblemer

AI-agenter har svært ved at opretholde 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.

Kodeplatform med hukommelse og projektstruktur hjælper

En løsning på dette er brugen af AI-kodeplatforme, der kan administrere 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 overblikket over projektets sammenhæng og introducerer uønskede dubletter eller forkerte afhængigheder under programmeringen.

De fleste AI-kodningsplatforme arbejder med såkaldte værktøjer, som large language-modellen kan kalde. Disse værktøjer er baseret på en åben standardprotokol (MCP). Det er derfor muligt at koble en AI-kodeagent til et IDE som Visual Code. Eventuelt kan du opsætte en LLM lokalt med Llama af Ollama og vælg en MCP-server at integrere med. Modeller kan findes på Hugging Face.

IDE-udvidelser er uundværlige

For bedre at styre AI-genereret kode kan udviklere benytte IDE-udvidelser, der overvåger kodens korrekthed. Værktøjer som linters, type-checkere og avancerede kodeanalyseværktøjer hjælper med at opdage og rette fejl tidligt. De udgør et essentielt supplement til AI-genereret kode for at sikre kvalitet og stabilitet.

Årsagen til gentagne fejl: Kontekst og rolle i API'er

En af hovedårsagerne til, at AI-agenter fortsætter med at gentage fejl, ligger i den måde, AI fortolker API'er på. AI-modeller har brug for kontekst og en klar rollebeskrivelse for at generere effektiv kode. Det 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 prompts i standardformat (MDC) og automatisk inkludere dem i AI-kaldet. Dette er især nyttigt for generiske programmeringsregler, du anvender, samt de funktionelle og tekniske krav og strukturen i dit projekt.

Værktøjer som FAISS og LangChain hjælper

Produkter som FAISS og LangChain tilbyder løsninger til at hjælpe AI med bedre at håndtere kontekst. FAISS hjælper f.eks. 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 også her kan du eventuelt sætte det op lokalt med RAC-databaser.

Konklusion: nyttig, men endnu ikke selvstændig

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 idéer, men som stadig har brug for vejledning og korrektion for at opnå et godt resultat.

Kontakt os for at hjælpe med at opsætte udviklingsmiljøet, så teams kan få mest muligt ud af deres udviklingsmiljø og fokusere mere på kravspecifikation og design end på debugging og kodning.

 

Gerard

Gerard er aktiv som AI-konsulent og leder. Med stor erfaring fra store organisationer kan han usædvanligt hurtigt gennemskue et problem og arbejde hen imod en løsning. Kombineret med en økonomisk baggrund sikrer han forretningsmæssigt forsvarlige valg.

AIR (Kunstig Intelligens Robot)