50 tips på 60 min – bli bedre med AI-agenter
Kjetil Jørgensen-Dahl (Telenor) · JavaZone 2026, Room 1 Programsiden på JavaZone · Alle tipsene, oppdatert løpende
Siden januar 2026 har Kjetil publisert ett AI-kodetips om gangen internt hos Telenor. Dette foredraget er en fartsfylt gjennomgang av de 50 beste – testet i praksis av utviklere som bruker GitHub Copilot, Claude Code og Open Code på jobb hver dag. Det er ikke en introduksjon: målet er et fundament for selv å kunne resonnere rundt kodeagenter, ikke en oppskriftsbok.
Under er tipsene gruppert i temaene han selv brukte, med noen av slidene han viste underveis.
Modellen: hjernen i kjernen
Modellen er en tilstandsløs, ikke-deterministisk token-genereringsmaskin, trent i tre steg: (1) massiv tekstmengde for å bli god på å tippe neste token, (2) trening på å følge instruksjoner, og (3) menneskelig tilbakemelding for å gi svar vi foretrekker. Det siste steget er også kilden til psykofanti – modellen har lært at enighet gjør deg fornøyd, så still nøytrale spørsmål eller be den om å kritisere, i stedet for å spørre "liker du designet mitt?".
Noen sentrale poenger:
- Alt er hallusinering. Modellen har ingen harde fakta, den tipper bare – forbausende ofte riktig, men mekanismen er identisk når den tar feil.
- Parametrisk kunnskap (det som ligger frosset fra treningen) har en knowledge cutoff. Fable 5 (trolig den beste allment tilgjengelige modellen da foredraget ble holdt) har cutoff fra januar.
- Velg modell etter oppgave. En dyr modell til enkle oppgaver koster tid og penger unødig. Bruk billige/raske modeller til gråarbeid og en sterkere modell til vanskelig research eller debugging.
- Reasoning effort kan bety mer enn modellstørrelse – en mellomstor modell som tenker hardt kan slå en stor modell som tenker lite. Men høy effort koster tid, og reasoning-tokens er dyre output-tokens.
- Prefix-caching gjør at gjenbruk av samme kontekst-start er langt billigere (typisk en tidel) enn ny kontekst – men cachen er kald igjen etter typisk 5–60 minutter uten bruk.
Sesjoner og kontekstvinduer
En samtale (sesjon) sendes inn på nytt i sin helhet for hver tur – modellen "husker" ingenting, den får bare hele historikken igjen og igjen. Selv om kontekstvinduet kan romme over en million tokens, skalerer ikke modellens oppmerksomhet med vindusstørrelsen: jo mer som fylles inn, jo mindre oppmerksomhet får hvert enkelt token (attention degradation). På long-context-benchmarks faller selv de beste modellene fra nær 100 % til rundt 60 % treffsikkerhet før vinduet er halvfullt.
Praktiske konsekvenser:
- Én oppgave per sesjon er en god tommelfingerregel. Start en ny sesjon når oppgaven er ferdig.
- Tegn på at du er ute av smartsonen: agenten glemmer instruksjoner, hevder noe er fikset når det ikke er det, eller forenkler en test i stedet for å fikse koden.
- Har du korrigert agenten mer enn én gang uten fremgang – ikke krangle videre. Start en ny sesjon med en bedre bestilling i stedet.
- Ved compaction skriver agenten et sammendrag av konteksten og
fortsetter derfra – automatisk når vinduet er fullt, eller manuelt med
/compact. Vil du styre det selv, be agenten skrive et eget handoff-dokument du kan redigere og ta med til en annen kodeagent. - Noen ganger er tom kontekst poenget: en sesjon som har jobbet lenge med én løsning blir "forelsket" i den (ankring). En fersk sesjon uten den historikken gjør ofte en bedre review.
flowchart TD
A[Start sesjon / ny oppgave] --> B{Fortsatt i smartsonen?}
B -- Ja, skarp og treffsikker --> C[Fortsett i samme sesjon]
C --> B
B -- Glemmer ting / jukser / gjentar feil --> D{Korrigert mer enn én gang?}
D -- Nei --> E[Korriger og fortsett]
E --> B
D -- Ja --> F[Ikke krangle videre]
B -- Kontekstvindu fullt --> G[Compaction]
F --> H[Skriv handoff-dokument]
G --> I[Start ny sesjon med sammendrag]
H --> J[Start ny sesjon med bedre bestilling]
Agenten: hukommelse og verktøy
En agent er modellen (hesten) pluss et harness (seletøy) – verktøy, systeminstruksjoner, kontekststyring og brukergrensesnitt. Forskjellene du merker mellom ulike kodeagenter handler ofte vel så mye om harnesset som om modellen under.
- Instruksjonsfiler (
AGENTS.md,CLAUDE.md, Copilot-instructions) er agentens stående "onboarding-dokument", lastet inn ved sesjonsstart og liggende i konteksten (og dermed kontekst-husleie) hele sesjonen. Et konkret tips: legg inn en instruksjon når agenten gjør samme feil to ganger. Skriv kort og håndskrevet – en presis fil slår gjerne en lang, autogenerert en. - Verktøy (tool calls) er spesialformatert tekst (typisk JSON) som harnesset tolker og utfører – for eksempel å lese en fil eller kjøre en kommando. Resultatet limes inn i konteksten igjen.
- Skript slår improvisasjon for deterministiske oppgaver (kjøre tester,
resette en database). Design skriptene til å gi kortfattet, oppsummert
output – porcelain-varianten av
git statuser et godt eksempel på presis output en agent ikke trenger forklaring til. - Huks (hooks) lar deg håndheve regler du ikke orker å gjenta – f.eks. kjøre lint automatisk etter hver filendring.
- Permission requests holder et menneske i loopen for hvert verktøykall. Du styrer hvor mye den spør med forhåndsgodkjente kommandolister, eller lar en vokter-agent (automodus) godkjenne underveis mot litt mer tokenbruk.
- Plan mode – agenten leser og diskuterer, men endrer ingenting – er billigere å rydde opp i enn kode: de uklarhetene du finner i planfasen er billigere å fikse enn de du finner etterpå.
- Sikkerhet: Klein Jackson-hendelsen høsten 2025 viste prompt injection i praksis – en agent i en CI-pipeline leste angriper-plantede instruksjoner via et verktøyresultat, og utførte dem med pipelinens fulle rettigheter. Modellen kan ikke skille "dette skal jeg gjøre" fra "dette skal jeg bare lese" – alt er tokens i samme kontekstvindu. Minimumsprivilegier, sandboxing og kortlevde tokens er ikke valgfritt.
Kontekstengineering: subagenter, skills og spekker
Tre grep for kontekstingeniørkunst – å holde hovedagenten i smartsonen når oppgaven er for stor til å løses grovt i én kontekst:
- Subagenter får sin egen ferske sesjon med tom kontekst, gjør en avgrenset jobb, og rapporterer et kort resultat tilbake. Grovarbeidet skjer i noen andres kontekst. Kan også bruke en annen (billigere) modell – advisor-patternet lar en rimelig modell styre arbeidet og kalle en dyrere modell som rådgiver kun når den står fast, med rapporterte kostnadskutt på opp mot 90 %.
- Skills er en pakket kunnskapsbit om én oppgave (f.eks. "sånn lager vi release notes"). I motsetning til instruksjonsfiler lastes ikke hele skill-filen inn ved start – agenten ser bare navn og beskrivelse, og henter resten når oppgaven faktisk trenger det (progressive disclosure). Skriv beskrivelsen for maskinen, ikke for deg selv, for det er det eneste agenten har å velge skill etter.
- Spekker er artefakter som holder tråden på tvers av sesjoner når en oppgave er for stor for ett kontekstvindu – sesjonene kommer og går, men spekken består. Et konkret tips: be agenten intervjue deg om spekken etterpå ("grill meg, ett spørsmål om gangen") – hullene du finner før du har bygget noe er billigere å fikse enn de du finner etterpå.
Arbeidsflyt i praksis
- Spike før du bygger. Prototyping er nesten gratis nå – bygg en spike med vilje til å kaste den, noter innsikten, og bygg den ordentlige versjonen i en fersk sesjon uten spike-rotet i konteksten.
- Review fra flere perspektiv (sikkerhet, arkitektur, domene) gir flere og ulike funn enn én generell gjennomgang – kjør dem gjerne som parallelle subagenter.
- Be om en interaktiv webside for funn fra en utforskning eller review i stedet for en tekstvegg – modellene er gode på dette fordi de har mye parametrisk kunnskap om websider.
- Git Worktree når du kjører flere agenter samtidig i samme repo, så de ikke overskriver hverandres filer.
- Loop engineering: gi agenten en måte å verifisere eget arbeid på (tester, linting, kjørbare akseptansekriterier) slik at loopen kan korrigere seg selv i stedet for å spørre deg for hver feil.
MCP – en standard for verktøytilgang
Model Context Protocol er en standard måte å koble verktøytilbydere til
harnesset på, i stedet for spesialintegrasjoner – litt som USB-C: du trenger
ikke elske standarden for å sette pris på at den finnes. Chrome DevTools MCP
lar agenten klikke, fylle skjema og ta skjermbilder for å verifisere eget
arbeid i nettleseren. Merk: MCP-verktøybeskrivelser koster kontekstplass
kontinuerlig – sjekk forbruket med /context, og vurder rene CLI-verktøy
der de dekker behovet, siden de ofte ikke koster noe før de faktisk brukes.
Refleksjoner: kognitiv gjeld og harness engineering
Et Anthropic-eksperiment med 52 utviklere fant at de som brukte AI løste oppgaver like fort som kontrollgruppen, men forsto signifikant mindre av koden sin etterpå – størst utslag under debugging, nettopp der forståelse trengs mest. Aktiv bruk (spørre hvorfor, lese diffene) hadde ikke samme effekt. Kent Becks modell for programvareverdi (verdi i dag vs. potensiell fremtidig verdi/fleksibilitet) peker på at kodeagenter har en tendens til å dra oss mot "genie-tjæregropa" – rigid kode som virker akkurat nå, men er dyr å endre senere. Andelen endringer som er refaktorering har falt de siste årene (GitClear: fra ~25 % til under 10 %), nettopp når farten på kompleksitetsinnføring har gått opp.
Det siste "tipset" er egentlig ikke om agenter i det hele tatt: å skrive den typen tips som dette tvinger frem mye mer læring enn å lese dem. AI kan sjekke kilder og lage utkast, men dømmekraften om hva som er verdt å si her og nå, kommer ikke ut av boksen.
Nøkkeltakeaways
- Modellen er en frossen, tilstandsløs, smiskende tokenmaskin – imponerende treffprosent, men langt fra gratis.
- Hold deg i smartsonen: én oppgave per sesjon, start på nytt fremfor å krangle med en driftende agent.
- Invester i instruksjonsfiler, skript og huks for det deterministiske; bruk subagenter, skills og spekker for å holde kontekstvinduet ryddig.
- Tempoøkningen flytter jobben mot spesifikasjon, review og arkitektur – og gjør aktiv forståelse (ikke bare rask levering) til den nye differensiatoren.
- Skriv ned det du observerer og lærer – det er der læringen faktisk skjer.
Alle 50 tipsene, med løpende oppdateringer, ligger på kjetiljd.github.io/ai-for-coding.