Kode med en AI

Programmering med en AI-agent

Artificiell intelligens (AI) har fundamentalt endret måten vi programmerer på. AI-agenter kan generere og optimalisere kode, og til og med hjelpe til med feilsøking. Likevel er det enkelte begrensninger som programmerere bør huske på når de jobber med AI.

Problemer med rekkefølge og duplisering

AI-agenter sliter med riktig rekkefølge på koden. For eksempel kan de plassere initialiseringer på slutten av en fil, noe som forårsaker kjøretidsfeil. I tillegg kan AI uten å blinke definere flere versjoner av samme klasse eller funksjon i et prosjekt, noe som fører til konflikter og forvirring.

En kodeplattform med minne og prosjektstruktur hjelper

En løsning på dette er å bruke AI-kodeplattformer som kan administrere minne og prosjektstrukturer. Dette bidrar til å opprettholde konsistens i komplekse prosjekter. Dessverre blir disse funksjonene ikke alltid brukt konsekvent. Som et resultat kan det hende at AI-en mister oversikten over prosjektets helhet og introduserer uønskede dupliseringer eller ukorrekte avhengigheter under programmeringen.

De fleste AI-kodeplattformer fungerer med såkalte verktøy som språkmodellen (LLM) kan kalle opp. Disse verktøyet er basert på en åpen standardprotokoll (MCP). Det er derfor også mulig å koble en AI-kodeagent til et IDE som Visual Studio Code. Eventuelt kan du sette opp en LLM lokalt med llama eller ollama, og velge en MCP-server å integrere med. NetCare har laget en MCP-server for å hjelpe med feilsøking og administrasjon av det underliggende (Linux-)systemet. Praktisk hvis du vil publisere koden live med en gang.
Modeller finnes på huggingface.

IDE-utvidelser er uunnværlige

For å bedre administrere AI-generert kode kan utviklere bruke IDE-utvidelser som overvåker koderiktigheten. Verktøy som linters, type-sjekkere og avanserte kodenalyse-verktøy bidrar til å oppdage og rette opp feil på et tidlig tidspunkt. De utgjør et essensielt supplement til AI-generert kode for å sikre kvalitet og stabilitet.

Årsaken til gjentatte feil: kontekst og rolle i API-er

En av hovedårsakene til at AI-agenter fortsetter å gjenta feil, ligger i måten AI tolker API-er på. AI-modeller trenger kontekst og en tydelig rollebeskrivelse for å generere effektiv kode. Dette betyr at ledetekstene (prompts) må være fullstendige: de må ikke bare inneholde de funksjonelle kravene, men også gjøre det forventede resultatet og forutsetningene eksplisitte. For å gjøre dette enklere kan du lagre ledetekstene i et standardformat (MDC) og sende dem med til AI-en som standard. Dette er spesielt nyttig for generelle programmeringsregler du følger, samt de funksjonelle og tekniske kravene og strukturen i prosjektet ditt.

Verktøy som FAISS og LangChain hjelper

Produkter som FAISS og LangChain tilbyr løsninger for å la AI håndtere kontekst bedre. For eksempel hjelper FAISS med effektivt søk og henting av relevante kodefragmenter, mens LangChain bidrar til å strukturere AI-generert kode og opprettholde konteksten i et større prosjekt. Men også her kan du eventuelt sette det opp lokalt selv med RAG-databaser.

Konklusjon: nyttig, men ennå ikke selvstendig

AI er et kraftig verktøy for programmerere og kan bidra til å akselerere utviklingsprosesser. Likevel er teknologien ennå ikke i stand til å på egen hånd designe og bygge en mer kompleks kodebase uten menneskelig kontroll. Programmerere bør betrakte AI som en assistent som kan automatisere oppgaver og generere ideer, men som fortsatt trenger veiledning og korrigering for å oppnå et godt resultat.

Ta kontakt for å hjelpe til med å sette opp utviklingsmiljøet, hjelpe teamene med å få mest mulig ut av det, og bruke mer tid på kravspesifikasjon og design enn på feilsøking og koding.

 

Gerard

Gerard er aktiv som KI-konsulent og leder. Med bred erfaring fra store organisasjoner kan han raskt nøste opp i et problem og arbeide seg frem mot en løsning. Kombinert med en økonomisk bakgrunn sørger han for forretningsmessig forsvarlige valg.