Programmeren 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 må huske på når de arbeider med AI.

Problemer med rekkefølge og duplisering

AI-agenter har vanskelig for å håndtere riktig rekkefølge av kode. De kan for eksempel plassere initialiseringer på slutten av en fil, noe som forårsaker kjøretidsfeil. I tillegg kan AI uten å nøle 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 konsekvent brukt. Dette kan føre til at AI mister sammenhengen i et prosjekt og introduserer uønskede duplikater eller feilaktige avhengigheter under programmeringen.

De fleste AI-kodingsplattformer arbeider med såkalte verktøy som det store språkmodellen kan kalle. Disse verktøyene er basert på en åpen standardprotokoll (MCP). Det er derfor mulig å koble en IDE som Visual Code til en AI-kodingsagent. Eventuelt kan du sette opp en LLM lokalt med llama eller ollama og velge en MCP-server å integrere med. Modeller kan finnes på huggingface.

IDE-utvidelser er uunnværlige

For å bedre administrere AI-generert kode kan utviklere bruke IDE-utvidelser som overvåker kodekorrekthet. Verktøy som linters, type checkers og avanserte kodeanalyse-verktøy hjelper til med å oppdage og korrigere feil tidlig. De utgjør et viktig supplement til AI-generert kode for å sikre kvalitet og stabilitet.

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

En av hovedgrunnene 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 spørsmålene må være fullstendige: de må ikke bare inneholde de funksjonelle kravene, men også eksplisitt angi det forventede resultatet og randbetingelsene. For å forenkle dette kan du lagre spørsmålene i standardformat (MDC) og sende dem med til AI-en som standard. Dette er spesielt nyttig for generiske programmeringsregler du bruker, samt funksjonelle og tekniske krav og prosjektets struktur.

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 effektivt å søke og hente relevante kodefragmenter, 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 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 for å hjelpe team med å få mest mulig ut av utviklingsmiljøet og være mer opptatt av kravspesifikasjon og design enn med feilsøking og kodeskriving.

 

Gerard

Gerard

Gerard er aktiv som AI-konsulent og manager. Med mye erfaring fra store organisasjoner kan han raskt avdekke et problem og jobbe mot en løsning. Kombinert med en økonomisk bakgrunn sørger han for forretningsmessig forsvarlige valg.

AIR (Artificial Intelligence Robot)