Coderen met een AI

Programmering med en AI-agent

Kunstig intelligens (AI) har fundamentalt endret måten vi programmerer på. AI-agenter kan generere, optimalisere og til og med hjelpe til med feilsøking av kode. Likevel er det noen begrensninger som programmerere bør være oppmerksomme på når de arbeider med AI.

Problemer med rekkefølge og duplisering

AI-agenter sliter med riktig rekkefølge i koden. De kan for eksempel plassere initialiseringer på slutten av en fil, noe som forårsaker kjøretidsfeil. I tillegg kan AI uten betenkelighet definere flere versjoner av samme klasse eller funksjon innenfor 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 AI miste sammenhengen i et prosjekt og introdusere uønskede dupliseringer eller feilaktige avhengigheter under programmering.

De fleste AI-kodingsplattformer fungerer med såkalte verktøy som large language-modellen kan kalle på. Disse verktøyene er basert på en åpen standardprotokoll (MCP). Det er derfor mulig å koble en IDE som Visual Studio Code til en AI-kodeagent. Eventuelt kan du sette opp en lokal LLM med llama eller ollama og velge en MCP-server å integrere med. Modeller finner du på huggingface.

IDE-utvidelser er uunnværlige

For å bedre administrere AI-generert kode, kan utviklere bruke IDE-utvidelser som sikrer kodens korrekthet. Verktøy som linters, typesjekkere og avanserte kodeanalyseverktøy bidrar til å oppdage og korrigere feil tidlig. De utgjør et viktig supplement til AI-generert kode for å garantere 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 klar rollebeskrivelse for å generere effektiv kode. Dette betyr at prompter må være fullstendige: de må ikke bare inneholde funksjonelle krav, men også eksplisittgjøre det forventede resultatet og randbetingelsene. For å forenkle dette kan du lagre promptene i standardformat (MDC) og sende dem med til AI-en. Dette er spesielt nyttig for generiske 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 å hjelpe AI med å håndtere kontekst bedre. FAISS hjelper for eksempel med effektiv søking og henting av relevante kodestykker, mens LangChain hjelper med å strukturere AI-generert kode og opprettholde kontekst innenfor et større prosjekt. Men også her kan du eventuelt sette det opp lokalt med RAC-databaser.

Konklusjon: Nyttig, men ennå ikke selvstendig

AI er et kraftig verktøy for programmerere og kan bidra til å akselerere utviklingsprosesser. Likevel er det ennå ikke i stand til å selvstendig designe og bygge en mer kompleks kodebase uten menneskelig kontroll. Programmerere bør se på 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 å få hjelp til å sette opp utviklingsmiljøet for å hjelpe team med å få mest mulig ut av utviklingsmiljøet og bruke mer tid på kravspesifikasjon og design enn på feilsøking og kodeskriving.

 

Gerard

Gerard er aktiv som AI-konsulent og leder. Med mye erfaring fra store organisasjoner kan han svært raskt analysere et problem og jobbe mot en løsning. Kombinert med en økonomisk bakgrunn sikrer han forretningsmessig forsvarlige valg.

AIR (Artificial Intelligence Robot)