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.
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 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.
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.
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.
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.
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.