Kontekstvinduet er samtalens arbeidsflate

Du har kanskje opplevd at AI-en plutselig glemmer noe du sa tidlig i samtalen. Den har ikke glemt. Det sto bare ikke lenger i vinduet.

Magnus Gribbestad Oppdatert oktober 2026 4 min
Figur · vinduet
Eldre meldinger faller ut av kontekstvinduet En samtale med seks meldinger. Vinduet rommer fire. Når nye meldinger kommer, faller de eldste ut, og modellen kan ikke svare på noe som sto i dem, før et sammendrag legges inn i vinduet. KONTEKSTVINDU Jeg heter Kari. Vi reiser til Bergen. Budsjett: 40 000 kr. Vi trenger hotell. Reisen er på fredag. Hva het jeg igjen? SAMMENDRAG Kari. Bergen. 40 000 kr. Hotell. PLASS 3 av 4 plasser Fullt Eldste faller ut Navnet er tilbake MODELLEN Det ser jeg ikke. Hva heter du? Du heter Kari.
  1. Samtalen har et vindu: en grense for hvor mye modellen ser samtidig. Alt innenfor kan den bruke.
  2. Hver ny melding fyller det opp. Nå er vinduet fullt.
  3. Neste melding kommer, og den eldste faller ut. «Jeg heter Kari» er ikke lenger der.
  4. Så spør du om noe som sto i den første meldingen. Modellen ser den ikke, og kan ikke svare.
  5. Løsningen er et sammendrag, eller å gjenta det viktigste. Da er det tilbake i vinduet.
Kort sagt

Et kontekstvindu er mengden tekst en språkmodell kan ha foran seg samtidig. Alt innenfor kan den bruke. Alt utenfor finnes ikke for den.

Det føles som glemsel, men det er ikke minne som svikter. Modellen har ikke et minne å miste. Den har bare det som står i vinduet akkurat nå.

Et skrivebord, ikke en hjerne

Hver gang du sender en melding, får modellen hele samtalen så langt lagt foran seg på nytt, sammen med dokumentene du har lagt ved. Den svarer ut fra det. Mellom to meldinger husker den ingenting selv. Alt den har å gå på om samtalen, er teksten som ligger på bordet.

Er bordet fullt, må noe av. Hvilket avgjør tjenesten du bruker. Ofte er det det eldste som går først, og noen tjenester lager et sammendrag av det som forsvinner. Noen har dessuten en egen minnefunksjon som legger notater inn i vinduet for deg. Da er det fortsatt vinduet som gjelder.

Et bilde, ikke en fasit

Tenk deg en kollega som bare kan lese det som ligger på bordet foran henne. Du kan legge mye på bordet, men ikke alt. Og det hun ikke ser, finnes ikke for henne.

Hvor stort er vinduet

Vinduet måles i tokens. Størrelsen varierer fra noen titusener til over en million, avhengig av modell og abonnement, og tallene vokser stadig. Sjekk dokumentasjonen til den du bruker.

Et stort vindu er ikke alltid bedre

Mer tekst koster mer, og tar lengre tid. I tillegg viser forskning at språkmodeller ofte bruker det som står først og sist i en lang tekst bedre enn det som står midt i. Nyere modeller er bedre på dette, men det er en grunn til ikke å fylle vinduet bare fordi det finnes plass.

Fem ting du kan gjøre

Prompt · Flytt samtalen
Oppsummer alt vi har snakket om til nå i fem punkter. Ta med navn, tall,
beslutninger og det vi fortsatt ikke har avklart. Skriv det slik at jeg kan lime
det inn i en ny samtale og fortsette der vi slapp.
Bruk den når en samtale har blitt lang, eller når du merker at modellen begynner å miste tråden. Les sammendraget før du limer det inn: det mister detaljer, og modellen har ikke fått vite hva som er viktig for deg.
For deg som bygger

En funksjon som trimmer en samtale til en grense: de nyeste meldingene beholdes, de eldste faller ut, og det som falt ut, blir til ett sammendrag som du setter først. Tokens anslås med 3,2 tegn per token, som i verktøyet på token-siden. Sammendragsfunksjonen er en plassholder. I et ekte oppsett er den et kall til en modell, for eksempel med prompten over.

Python · trim en samtale
def anslag(tekst, tegn_per_token=3.2):
    return round(len(tekst) / tegn_per_token)


def trim(samtale, grense, lag_sammendrag, plass_til_sammendrag=60):
    """Behold de nyeste meldingene som får plass. Resten blir til ett sammendrag."""
    ledig = grense - plass_til_sammendrag
    behold, brukt = [], 0
    for melding in reversed(samtale):                 # fra nyeste og bakover
        kost = anslag(melding["tekst"])
        if brukt + kost > ledig:
            break
        behold.append(melding)
        brukt += kost
    behold.reverse()
    while behold and behold[0]["rolle"] != "bruker":  # samtalen skal ikke begynne midt i et svar
        behold.pop(0)
    falt_ut = samtale[: len(samtale) - len(behold)]
    sammendrag = lag_sammendrag(falt_ut) if falt_ut else ""
    return sammendrag, behold


def falsk_sammendrag(meldinger):
    # Her ville du spurt en modell om et sammendrag. Dette er bare en plassholder.
    return f"[Sammendrag av {len(meldinger)} eldre meldinger]"


samtale = [
    {"rolle": "bruker", "tekst": "Hei, jeg heter Kari og planlegger en tur til Lofoten i juli."},
    {"rolle": "ai", "tekst": "Hei Kari! Hvor mange dager har dere, og kjører dere bil?"},
    {"rolle": "bruker", "tekst": "Seks dager, med bil, og vi er fire voksne. " * 3},
    {"rolle": "ai", "tekst": "Da foreslår jeg to base-steder i stedet for å flytte hver dag. " * 3},
    {"rolle": "bruker", "tekst": "Hva med regn? Hva bør vi ha med av klær og utstyr?"},
    {"rolle": "ai", "tekst": "Regntøy og ullundertøy, selv i juli. " * 3},
    {"rolle": "bruker", "tekst": "Hva het jeg igjen, og hvor skulle vi?"},
]

sammendrag, behold = trim(samtale, grense=150, lag_sammendrag=falsk_sammendrag)
print("Grense: 150 tokens. Hele samtalen:", sum(anslag(m["tekst"]) for m in samtale), "tokens.\n")
print("Sammendrag:", sammendrag or "(ingen)")
for m in behold:
    print(f'{m["rolle"]:7} {anslag(m["tekst"]):3} tokens  {m["tekst"][:50]}')

Utskrift fra en kjøring:

Utskrift
Grense: 150 tokens. Hele samtalen: 199 tokens.

Sammendrag: [Sammendrag av 4 eldre meldinger]
bruker   16 tokens  Hva med regn? Hva bør vi ha med av klær og utstyr?
ai       35 tokens  Regntøy og ullundertøy, selv i juli. Regntøy og ul
bruker   12 tokens  Hva het jeg igjen, og hvor skulle vi?

Utskriften viser feilen fra figuren: spørsmålet «Hva het jeg igjen» kommer etter at navnet falt ut. Plassholderen husker ikke navnet, så et ekte sammendrag må ta det med. Sammendraget tar selv plass, derfor reserverer trim plass til det. Anthropic har også en betafunksjon som gjør dette på serversiden, kalt compaction. Se dokumentasjonen.

Kjørt her med Python 3.13 og bare standardbiblioteket, 8. oktober 2026. Utskriften er limt inn slik den kom. Samtalen er konstruert, tokens er anslag og ikke telt av en tokenizer, og sammendraget er en plassholder. Ikke kjørt mot noe API.

Oppdatert oktober 2026. I figuren tar hver melding like stor plass. I virkeligheten teller tokens, så én lang melding kan skyve ut flere. Størrelsen på kontekstvinduer endres hver måned og varierer mellom modeller og abonnement, så sjekk leverandørens dokumentasjon. Forskningen om at informasjon midt i lange tekster brukes dårligere enn informasjon i starten og slutten: Liu m.fl., «Lost in the Middle: How Language Models Use Long Contexts» (2023). Nyere modeller er bedre på dette, men effekten er ikke borte.