Programmering med en AI-agent

Kunstig intelligens (AI) har fundamentalt endret måten vi programmerer på. AI-agenter kan generere kode, optimalisere og til og med hjelpe med debugging. Likevel er det noen begrensninger programmerere må ha i bakhodet når de jobber med AI.

Problemer med rekkefølge og duplisering

AI-agenter har problemer med riktig rekkefølge på koden. De kan for eksempel plassere initialiseringer på slutten av en fil, noe som forårsaker runtime-feil. I tillegg kan AI uten betenkeligheter 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 håndtere minne og prosjektstrukturer. Dette hjelper med å bevare konsistens i komplekse prosjekter. Dessverre blir disse funksjonene ikke alltid brukt konsekvent. Det kan derfor skje at AI mister sammenhengen i et prosjekt og introduserer uønskede duplikasjoner eller feilaktige avhengigheter under programmeringen.

De fleste AI-kodeplattformer fungerer med såkalte verktøy som kan kalles opp av det store språkmodellen. Disse verktøyene er basert på en åpen standardprotokoll (MCP). Det er derfor mulig å koble en AI-kodeagent til en IDE som Visual Code. Eventuelt kan du sette opp en lokal LLM med llama eller ollama og velge en MCP-server for integrasjon. Modeller finnes på huggingface.

IDE-utvidelser er uunnværlige

For å bedre håndtere AI-generert kode kan utviklere bruke IDE-utvidelser som overvåker kodekvalitet. Verktøy som linters, typekontrollere og avanserte kodeanalyseverktøy hjelper med å oppdage og rette feil tidlig. De utgjør et viktig supplement til AI-generert kode for å sikre kvalitet og stabilitet.

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

En av hovedgrunnene til at AI-agenter fortsetter å gjøre feil, ligger i hvordan AI tolker API-er. AI-modeller trenger kontekst og en tydelig rollebeskrivelse for å generere effektiv kode. Dette betyr at prompts må være fullstendige: de må ikke bare inneholde funksjonelle krav, men også gjøre forventet resultat og rammebetingelser eksplisitte. For å gjøre dette enklere kan du lagre prompts i standardformat (MDC) og alltid sende dem med til AI. 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 å hjelpe AI med å håndtere kontekst bedre. FAISS hjelper for eksempel med effektiv søking og henting av relevante kodefragmenter, mens LangChain hjelper med å strukturere AI-generert kode og bevare kontekst i et større prosjekt. Men også her kan du eventuelt sette det opp lokalt med RAC-databaser.

Konklusjon: nyttig, men ikke selvstendig ennå

AI er et kraftig verktøy for programmerere og kan hjelpe med å 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 korreksjon for å oppnå et godt resultat.

Ta kontakt for hjelp til å sette opp utviklingsmiljøet slik at team kan få mest mulig ut av utviklingsmiljøet og bruke mer tid på kravspesifikasjon og design enn på debugging og kodeskriving.

 

Gerard

Gerard

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

AIR (Artificial Intelligence Robot)