Fra skakmotor til LLM-agent

AI-agenter: 22 spørgsmål og svar

Hvordan begrebet agent har udviklet sig fra 1912 til i dag, hvad der faktisk er nyt, hvor hurtigt det går — og hvilke dilemmaer autonomi skaber. Alle svar har kilder nederst.

Siden bygger på mit oplæg om samme emne. Klik på et spørgsmål for at læse svaret.

1 · Hvad er en agent?

Definition, bestanddele og et lille eksempel.

Hvad gør noget til en agent — og ikke bare et program?

En agent observerer sit miljø og handler for at nå et mål. Det afgørende er løkken: efter hvert skridt vurderer den selv, om målet er nået. Er det nået, leverer den resultatet. Er det ikke nået, vælger den næste skridt ud fra resultatet af det forrige.

Det er selvstændigheden i vejvalget — ikke intelligensen — der gør den til en agent. Rammerne bestemmer, hvor langt den må gå.

Agentens løkke Mål Beslut næste skridt Handl via værktøj Lever resultat Observér resultat Mål nået? Ja Nej

Træk diagrammet til siden for at se det hele.

Rammer: rettigheder, værktøjer, sikkerhedsgrænser og godkendelse. Løkken stopper også ved maks. antal skridt, ved en fejl, eller hvis et skridt kræver godkendelse.

Kilde: Russell og Norvig (1995); Yao m.fl. (2022)

Hvilke dele består en AI-agent af?
Model
Sprogmodellen, der ræsonnerer og vælger næste skridt.
Instruktioner
Systemprompt og opgave: rolle, mål og regler.
Værktøjer
Funktioner med navn, beskrivelse og inputformat.
Løkken
Koden, der kalder modellen, kører værktøjer og sender svar tilbage.
Hukommelse
Samtalehistorik i konteksten og eventuelt lager mellem opgaver.
Rammer
Rettigheder, sandkasse, stopbetingelser og godkendelse.

Kilde: Anthropic, Claude API-dokumentation: Tool use

Hvor meget af en agent er egentlig ny teknologi?

Kun modellen. Løkken, værktøjerne, rettighederne og logningen er almindelig software.

Det er godt nyt, for det er netop i den almindelige software, man styrer agenten. Pålidelighed kommer ikke fra en bedre model alene, men fra at rammerne er bygget rigtigt.

Hvad stopper en agent?

Rammerne gør. En agent stopper, når målet er nået — men også ved et maksimalt antal gennemløb af løkken, ved en fejl eller ved et krav om menneskelig godkendelse før en bestemt handling.

Uden eksplicitte stopbetingelser kan en agent blive ved. Det er en af de billigste sikkerhedsforanstaltninger, man kan bygge ind.

Hvordan ser en simpel agent ud i praksis?

Tag en lille driftsagent. Opskriften er den samme hver gang:

  1. Beskriv et værktøj for modellen — en almindelig funktion med navn, beskrivelse og inputformat.
  2. Giv målet i almindeligt sprog.
  3. Sæt en stopbetingelse, for eksempel højst ti gennemløb af løkken.
  4. Lad løkken køre: modellen vælger et værktøj eller svarer.
  5. Kør værktøjet og send resultatet tilbage til modellen.
  6. Når modellen ikke beder om flere værktøjer, er målet nået, og den leverer svaret.
driftsagent.pyPython
import anthropic, requests
client = anthropic.Anthropic()

# 1 · Værktøjet: en helt almindelig funktion
def hent_status(url):
    try: return str(requests.get(url, timeout=5).status_code)
    except Exception as e: return f"Fejl: {e}"

# ... beskrevet for modellen: navn, forklaring, inputformat
tools = [{"name": "hent_status",
          "description": "Henter HTTP-status for en URL",
          "input_schema": {"type": "object", "required": ["url"],
            "properties": {"url": {"type": "string"}}}}]

# 2 · Målet, i almindeligt sprog
messages = [{"role": "user",
             "content": "Tjek om https://example.dk svarer."}]

# 3 · Stopbetingelsen: højst 10 gennemløb af løkken
for skridt in range(10):
    # 4 · Beslut: modellen vælger et værktøj eller svarer
    svar = client.messages.create(model="claude-opus-5",
        max_tokens=1024, tools=tools, messages=messages)
    messages.append({"role": "assistant", "content": svar.content})

    # 5 · Mål nået: den beder ikke om flere værktøjer
    if svar.stop_reason != "tool_use":
        print(svar.content[0].text)
        break

    # 6 · Handl og observér: kør værktøjet, send resultatet tilbage
    resultater = [{"type": "tool_result", "tool_use_id": b.id,
                   "content": hent_status(**b.input)}
                  for b in svar.content if b.type == "tool_use"]
    messages.append({"role": "user", "content": resultater})
import anthropic, requests
client = anthropic.Anthropic()

# 1 · The tool: an ordinary function
def get_status(url):
    try: return str(requests.get(url, timeout=5).status_code)
    except Exception as e: return f"Error: {e}"

# ... described for the model: name, explanation, input format
tools = [{"name": "get_status",
          "description": "Fetches the HTTP status of a URL",
          "input_schema": {"type": "object", "required": ["url"],
            "properties": {"url": {"type": "string"}}}}]

# 2 · The goal, in plain language
messages = [{"role": "user",
             "content": "Check whether https://example.dk responds."}]

# 3 · The stop condition: at most 10 passes through the loop
for step in range(10):
    # 4 · Decide: the model picks a tool, or answers
    reply = client.messages.create(model="claude-opus-5",
        max_tokens=1024, tools=tools, messages=messages)
    messages.append({"role": "assistant", "content": reply.content})

    # 5 · Goal met: it stops asking for tools
    if reply.stop_reason != "tool_use":
        print(reply.content[0].text)
        break

    # 6 · Act and observe: run the tool, send the result back
    results = [{"type": "tool_result", "tool_use_id": b.id,
                "content": get_status(**b.input)}
               for b in reply.content if b.type == "tool_use"]
    messages.append({"role": "user", "content": results})

Kilde: Anthropic, Claude API-dokumentation: Tool use · forenklet eksempel

2 · Fra skakmotor til sprogmodel

Tidslinjen fra 1912 til i dag — og hvad der var nyt ved hvert skridt.

  1. 1912El Ajedrecista
  2. 1950–97Skakprogrammer
  3. 1966–72Shakey-robotten
  4. 1995Agent som begreb
  5. 2013–17Dyb forstærkningslæring
  6. 2017Transformer
  7. 2022ChatGPT
  8. 2022–23ReAct og værktøjskald
  9. 2024Computerbrug og MCP
  10. 2025–Kode- og arbejdsagenter

Tre epoker: håndkodet af mennesker → lærer selv → sprogmodel som hjerne.

Hvornår kom den første maskine, der tog sine egne valg?

I 1912. Leonardo Torres Quevedos elektromekaniske automat El Ajedrecista spillede skakslutspillet konge og tårn mod konge.

Det nye var ikke intelligens, men at en maskine selv tog valg efter faste regler — uden en person til at vælge trækket.

El Ajedrecista, Leonardo Torres Quevedos elektromekaniske skakautomat fra 1912
1912 El Ajedrecista. Foto: Wikimedia Commons

Kilde: Torres Quevedo (1912)

Hvad kunne Deep Blue, der slog Kasparov i 1997?

IBM's supercomputer gennemsøgte i gennemsnit omkring 100 millioner stillinger i sekundet og slog den regerende verdensmester. Det nye var, at råkraft kombineret med en håndkodet evalueringsfunktion kunne slå det bedste menneske.

Men al viden om skak var lagt ind af eksperter. Maskinen havde ikke lært noget selv.

IBM's Deep Blue — det skabsformede supercomputer-kabinet, udstillet på museum
1997 Deep Blue. Foto: Wikimedia Commons

Kilde: Campbell m.fl. (2002)

Hvornår blev »agent« et fagbegreb i AI?

To skridt gjorde det. Fra 1966 til 1972 byggede SRI robotten Shakey — en mobil robot med kamera og berøringssensorer, styret af en fjern computer. Den sansede, planlagde og handlede i den virkelige verden.

I 1995 byggede Russell og Norvig hele AI-faget op omkring den intelligente agent i deres lærebog. Dermed fik faget en fælles definition: noget, der opfatter sit miljø og handler mod et mål.

SRI's robot Shakey, 1969 — en mobil robot med kamera og sensorer, udstillet på Computer History Museum
1966–72 Shakey. Foto: Wikimedia Commons
Forsiden af Artificial Intelligence: A Modern Approach af Stuart Russell og Peter Norvig
1995 Russell og Norvig, Prentice Hall. Ophavsretligt beskyttet.

Kilder: Nilsson (1984); Russell og Norvig (1995)

Hvad var nyt ved DQN — agenten, der lærte selv?

DeepMinds Deep Q-Network fra 2013 lærte at spille 49 Atari-spil med samme program, kun ud fra skærmens pixels og spillets point. Det nåede menneskeligt niveau i cirka halvdelen af dem.

Q står for quality: et skøn over den samlede belønning, en handling vil give i en given situation. Netværket ser skærmen, giver hver mulig handling en Q-værdi og vælger den højeste. Spillet svarer med point, som netværket lærer af. Strategien er altså lært, ikke kodet.

DQN's kredsløb Skærmbillede rå pixels Neuralt netværk lærer mønstre Q-værdier ← 0,2 → 0,7 Handling vælg højeste: → Spillet reagerer. Point = belønning, som netværket lærer af.

Træk diagrammet til siden for at se det hele.

Betydning

  • Startede dyb forstærkningslæring.
  • Banede vej for AlphaGo og AlphaZero.
  • Strategien er lært, ikke kodet.

Begrænsninger

  • Trænes forfra for hvert spil.
  • Kræver enorme mængder træning.
  • Svag til langsigtet planlægning.

Kilder: Watkins (1989); Mnih m.fl. (2013, 2015)

Hvordan blev sprogmodellen agentens hjerne?
2017 · Transformer-arkitekturen
En ny type netværk gør det muligt at træne modeller på enorme mængder tekst.
2022 · ChatGPT
Generel sprogforståelse. Men en chatbot svarer kun — den handler ikke.
2022–23 · ReAct og værktøjskald
Løkken lukkes: modellen tænker, kalder et værktøj, læser resultatet og fortsætter.
2024 – i dag · Computerbrug og kodeagenter
Agenten betjener hele computeren og arbejder i timevis på én opgave.

Kilder: Vaswani m.fl. (2017); Yao m.fl. (2022); Anthropic (2024)

3 · Hvad er nyt, og hvor hurtigt går det?

Forskellene, hvor lange opgaver agenter klarer, og væksten på GitHub.

Hvad adskiller en LLM-agent fra Deep Blue og AlphaZero?
Deep Blue, 1997 AlphaZero, 2017 LLM-agent, i dag
Viden Håndkodet af eksperter Lært ved selvspil Lært fra tekst og kode
Miljø Lukket bræt, kendte regler Lukket spil, kendte regler Åben verden: computer og net
Mål Altid det samme: vind Altid det samme: vind Nyt mål hver gang, i sprog
Bredde Én opgave Én type opgave Næsten alle opgaver
Forudsigelighed Laver aldrig ulovlige træk Høj inden for spillet Kan fejle på uforudsete måder

Træk tabellen til siden for at se alle kolonner.

Fremhævet: væsentlig ændring fra forrige kolonne.

Generalitet er købt med lavere forudsigelighed. Det er roden til dagens dilemmaer.

Kilder: Campbell m.fl. (2002); Silver m.fl. (2018)

Hvor lange opgaver kan AI-agenter klare?

2 sek → 16 t

METR-kurven 10000 1000 100 10 1 0,1 2019 2021 2023 2025 2026 Minutter, logaritmisk skala GPT-2: 2 sek GPT-4: 5 min Claude 3.7: 59 min GPT-5: 2,3 t Opus 4.5: 4,8 t Mythos Preview: 16+ t

Træk diagrammet til siden for at se det hele.

Hvert punkt er den opgavelængde, en model klarer med 50 % sikkerhed. Bemærk, at y-aksen er logaritmisk: hvert trin er ti gange længere.

METR måler agenters tidshorisont på softwareopgaver: hvor lang en opgave de kan gennemføre med 50 procents sikkerhed. Den er vokset fra sekunder til omkring 16 timer og er fordoblet cirka hver syvende måned siden 2019 — hurtigere siden 2024.

To forbehold er vigtige: kræver man 80 procents sikkerhed i stedet for 50, er horisonten 5 til 10 gange kortere. Og METR kan ikke længere måle sikkert over cirka 16 timer.

Kilder: Kwa m.fl. (2025); METR, Time Horizon 1.0 og 1.1 · afrundede værdier

Hvor er udviklingen på vej hen?

Holder tendensen, er opgaver på længden af en arbejdsuge — omkring 40 timer — inden for rækkevidde i 2026 til 2027.

Men det er en fremskrivning af en kurve, ikke en forudsigelse. Netop hvor hurtigt evnerne vil vokse, er et af de punkter, hvor der er reel faglig uenighed.

Kilder: Kwa m.fl. (2025); METR (2026), Time Horizon 1.1

Kan man se udviklingen andre steder end i modellerne selv?

Ja, i aktiviteten på GitHub:

  • 180 mio.udviklere i 2025, 60 gange flere end i 2013.
  • 1 pr. sekundOver 36 mio. nye udviklere kom til i 2025 alene.
  • × 19.000flere projekter: fra ca. 33.000 i 2008 til 630 mio. i 2025.
  • 121 mio.nye projekter i 2025 — den årlige tilvækst er fordoblet siden 2020.

AI-værktøjer sænker tærsklen for at skrive kode. GitHub kobler selv springet i nye brugere sammen med Copilot Free, der kom i slutningen af 2024.

Kilder: GitHub Octoverse 2017–2025; GitHub-blog (2013, 2018)

4 · Dagens dilemmaer

Pålidelighed, kontrol, sikkerhed, ansvar og frygt.

Hvorfor er lange opgaver meget sværere end korte?

Fordi små fejl forstærkes. En opgave på 50 skridt, hvor hvert skridt lykkes med 99 procents sikkerhed, er kun fejlfri i 61 procent af tilfældene. Hæver man skridt-sikkerheden til 99,9 procent, stiger det til 95 procent.

Jo længere opgaver agenter klarer, jo flere skridt tager de — og jo flere chancer er der for, at noget går skævt. Derfor flytter man mere ved at hæve pålideligheden pr. skridt end ved at bede om længere opgaver.

Fejlkurven 100 80 60 40 20 0 1 10 20 50 100 200 Antal skridt (ikke lineær skala) 90,481,8 60,536,613,4 99,998,0 95,190,581,9 99 % pr. skridt 99,9 % pr. skridt

Træk diagrammet til siden for at se det hele.

Forskellen mellem 99 % og 99,9 % pr. skridt ser lille ud. Over 200 skridt er den forskellen på 13 % og 82 % fejlfrie opgaver.

Kilde: egen beregning, 0,99^50 ≈ 0,61 og 0,999^50 ≈ 0,95. Antager uafhængige skridt.

Hvor kommer en agents fejl fra?
  • Hallucination: modellen finder på noget.
  • Et værktøjsresultat bliver misforstået.
  • Forkert værktøj eller forkert input til det rigtige værktøj.
  • Selve målet bliver misforstået.
  • Manipulation via det indhold, agenten læser.
  • Opgaven erklæres løst for tidligt.
Hvor meget kontrol beholder mennesket?
1

Human in the loop

Mennesket godkender hver handling, før den udføres.

2

Human on the loop

Agenten handler selv. Mennesket overvåger og kan gribe ind.

3

Human out of the loop

Agenten handler uden løbende tilsyn.

Begreberne kommer fra styringssystemer og debatten om autonome våben. Valget afhænger typisk af, hvor kritisk og hvor reversibel handlingen er.

Kilde: Scharre, P. (2018). Army of None

Hvad er prompt injection?

En agent læser websider, mails og dokumenter. Det indhold kan rumme skjulte instruktioner, der forsøger at overtage agentens opgave. Det kaldes prompt injection og står som nummer ét på OWASP's liste over risici ved LLM-applikationer.

Problemet er bredt anerkendt og ikke løst. I praksis håndteres det ikke ved at gøre modellen klogere, men ved at begrænse rettigheder og køre agenten i en sandkasse, så en overtagelse ikke kan nå noget vigtigt.

Kilde: OWASP Top 10 for LLM Applications, LLM01: Prompt Injection

Hvem bærer ansvaret, når en agent handler forkert?

Ansvaret er delt mellem udvikler, udbyder og bruger, og fordelingen afhænger af konteksten. EU's AI-forordning (forordning 2024/1689) indfases gradvist og stiller krav efter risiko, men mange konkrete agent-spørgsmål er endnu uafklarede.

Derfor er logning og sporbarhed ikke kun en teknisk detalje. Det er dokumentationen af, hvad der faktisk skete.

Kilde: Forordning (EU) 2024/1689 om kunstig intelligens

Hvad er der faglig enighed om, og hvad er reelt omdiskuteret?

Bred enighed

  • Agenter kan fejle på måder, ingen har forudset.
  • Manipulation via indhold er et reelt problem.
  • Irreversible handlinger bør kræve godkendelse.
  • Mere autonomi kræver test, logning og sporbarhed.

Reel uenighed

  • Hvor hurtigt evnerne vil vokse.
  • Om avancerede systemer kan blive svære at kontrollere.
  • Hvor stor betydningen bliver for arbejdsmarkedet.
  • Om regulering bremser udviklingen eller er en forudsætning for den.

5 · Konklusion og praksis

Hvad er den korte konklusion?

Autonomi er en skala, ikke et enten-eller.

Jo mere kritisk og irreversibel en handling er, jo tættere bør den menneskelige kontrol være. Frygt og begejstring handler ofte om forskellige tidshorisonter: de nære risici er konkrete og kan håndteres med kendte principper, mens de langsigtede er reelt omdiskuterede.

Hvad betyder det, hvis man vil sætte en agent i drift?
  • Start med opgaver, der er reversible, så en fejl kan rulles tilbage.
  • Giv agenten de mindst mulige rettigheder, og kør den i en sandkasse.
  • Sæt stopbetingelser, så den ikke kan køre i ring.
  • Log hvert skridt, så man bagefter kan se, hvad der skete, og hvorfor.
  • Kræv godkendelse før irreversible handlinger.
  • Mål fejl pr. skridt frem for at vurdere agenten på en god demo.

Det er præcis den slags arbejde, jeg laver: ikke prototypen, men det lag af rammer, logning og integration, der gør, at en agent kan stå i drift.

Tal med mig om en opgave Se Vision Lab

Forkortelser

AIArtificial Intelligencekunstig intelligens
APIApplication Programming Interfacegrænseflade mellem programmer og tjenester
DQNDeep Q-NetworkDeepMinds selvlærende spilagent fra 2013
GPTGenerative Pre-trained TransformerOpenAIs familie af sprogmodeller
LLMLarge Language Modelstor sprogmodel, fx GPT eller Claude
MCPModel Context Protocolfælles standard for at koble værktøjer til AI-modeller
METRModel Evaluation and Threat Researchnonprofitorganisation, der måler AI-modellers evner
OWASPOpen Worldwide Application Security Projectnonprofitorganisation for softwaresikkerhed
ReActReasoning and Actingmetode, hvor modellen skiftevis tænker og handler
SRIStanford Research Institutenu SRI International, byggede Shakey

Kilder

Alle tal og påstande på siden kan føres tilbage hertil.

Historie

  • Torres Quevedo, L. (1912). El Ajedrecista. en.wikipedia.org
  • Shannon, C. E. (1950). Programming a Computer for Playing Chess. Philosophical Magazine, 41(314). doi.org
  • Nilsson, N. J. (red.) (1984). Shakey the Robot. SRI International, Technical Note 323. ai.stanford.edu
  • Russell, S. og Norvig, P. (1995). Artificial Intelligence: A Modern Approach. Prentice Hall. aima.cs.berkeley.edu
  • Campbell, M., Hoane, A. J. og Hsu, F. (2002). Deep Blue. Artificial Intelligence, 134(1–2). doi.org

Lærende AI

  • Watkins, C. J. C. H. (1989). Learning from Delayed Rewards. Ph.d.-afhandling, University of Cambridge. cs.rhul.ac.uk
  • Mnih, V. m.fl. (2013). Playing Atari with Deep Reinforcement Learning. arXiv:1312.5602. arxiv.org
  • Mnih, V. m.fl. (2015). Human-level control through deep reinforcement learning. Nature, 518. doi.org
  • Silver, D. m.fl. (2016). Mastering the game of Go with deep neural networks and tree search. Nature, 529. doi.org
  • Silver, D. m.fl. (2018). A general reinforcement learning algorithm that masters chess, shogi and Go through self-play. Science, 362. doi.org

Sprogmodeller og agenter

  • Vaswani, A. m.fl. (2017). Attention Is All You Need. arxiv.org
  • Yao, S. m.fl. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arxiv.org
  • Anthropic (2024). Introducing computer use. anthropic.com
  • Anthropic (2024). Introducing the Model Context Protocol. anthropic.com
  • Anthropic. Tool use with Claude. platform.claude.com
  • Kwa, T. m.fl. (2025). Measuring AI Ability to Complete Long Tasks. METR. arxiv.org
  • METR (2026). Time Horizon 1.1. metr.org

GitHub

Billeder

Dilemmaer og regulering

  • Scharre, P. (2018). Army of None: Autonomous Weapons and the Future of War. W. W. Norton. publishersweekly.com
  • OWASP (2025). Top 10 for LLM Applications, LLM01: Prompt Injection. genai.owasp.org
  • Forordning (EU) 2024/1689 af 13. juni 2024 om kunstig intelligens. eur-lex.europa.eu