Agent mod chat: mål → plan → handling-loopet
En chat svarer og stopper. En agent tager et mål — og arbejder: planlægger trin, kalder værktøjer, tjekker resultater og fortsætter, indtil det er færdigt. Vi dissekerer agent-loopet trin for trin, sporer en reel opgave og ser, hvorfor der ikke er nogen ny magi inde i en agent — samme model, men i et loop.
Alt, du hidtil har studeret, har været en dialog: du spørger → den svarer → du bestemmer, hvad der er det næste. En agent tager selv hånd om »hvad der er det næste«. I den forrige lektion blev vi enige om en arbejdsdefinition af en agent; lad os nu skille den mekanisme ad, som hele kurset bygger på — loopet.
Agent-loopet
- Mål: »find 10 egnede annonceringssteder og indsaml deres priser i en tabel«
- Plan: agenten opdeler målet i trin: søg efter steder → åbn hver → find prislisten → skriv det ned.
- Handling: den kalder et værktøj — en ekstern operation, der er tilgængelig for modellen: søg, læs en side, skriv til et regneark. Værktøjer er de »hænder«, som 2022-chatten manglede.
- Observation: den får handlingens resultat og evaluerer: virkede det? er der nok data? Resultatet af hver handling kaldes bogstaveligt talt en observation.
- Gentag — fra trin 2, indtil målet er nået (eller turgrænsen overskrides — en sikkerhedsforanstaltning mod uendelige loops, dækket i pålidelighedsmodulet).
Den vigtigste forskel fra chat: modellen træffer beslutningerne inde i loopet, ikke dig. Du sætter målet, grænserne og værktøjerne — agenten bygger selv ruten.
En mini-sporing: tre ture gennem agentens øjne
Her er, hvordan loopet ser ud indefra — på vores opgave med steder:
- Tur 1. Tanke: Jeg har brug for en liste over steder. Handling: søg »annoncering i madlavningsblogs«. Observation: 12 links, 7 ligner blogs.
- Tur 2. Tanke: åbn den første. Handling: åbn link #1. Observation: siden kunne ikke indlæses — fejl.
- Tur 3. Tanke: dødt link — marker det, tag det næste. Handling: åbn link #2. Observation: der er en »Advertise«-side med en pris. Skriver det til tabellen.
Se på tur 2: værktøjet returnerede en fejl — og agenten reviderede planen i stedet for stædigt at fortsætte. Observation er det, der holder loopet i live. Husker du AutoGPT fra den forrige lektion? Den fejlede præcis her: den overbeviste sig selv om, at trinnet lykkedes, og slæbte den opfundne »succes« med ind i de næste ture.
En agent er ikke en ny model
Lad os fjerne magien: inde i en agent kører den samme sprogmodel som i chat. Forskellen er den ramme, der omgiver den: loopet, værktøjerne og hukommelsen (hvad agenten husker mellem ture — en separat lektion venter forude). Så agenten arver alle modellens svagheder: den kan fejle, den kan »se« ting, der ikke er der. Og loopet forstærker både færdigheder og fejl: en forkert observation på tur 2 bliver input til tur 3.
Hvis det er den samme model indeni, hvorfor håndterer en agent så opgaver, en chat ikke kan? Tænk, før du læser videre.
Svaret: en chat skal levere alt på én gang, mens en agent kan prøve, se på resultatet og rette sig selv. Ikke mere intelligens — flere forsøg, og hvert næste forsøg bygger på virkeligheden (observationer), ikke på et gæt.
Du har allerede set agenter
- Dybdegående research — en søgeagent: den planlægger forespørgsler, læser kilder, samler en rapport. Dens loop: forespørgsel → læs → »hvad mangler?« → ny forespørgsel.
- Kodeagenter (Claude Code, Replit og andre) — de skriver kode, kører den, ser fejlen, retter den. At køre koden er deres »observation«.
- Agent-noden i n8n — automatiseringsbyggeren, som vores platform dækker i et separat kursus: noden selv beslutter, om den skal tjekke regnearket eller køre en søgning.
Samme mønster hver gang — nu kender du dets navn og kan se dets loop.
Hvornår du har brug for en agent, og hvornår en chat eller en workflow er nok
- Et et-trins svar → en chat.
- En fast kæde af trin → en workflow (pile i n8n): et menneske skrev ruten på forhånd — billigere og mere forudsigeligt.
- Trin ukendte på forhånd, afhængigt af fund → en agent.
Den klassiske nybegynderfejl er en agent, hvor en workflow ville være nok. En agent er ikke »federe« — den er »mere fleksibel til en pris«: hver tur er et separat modelkald, så den er dyrere, langsommere, mindre forudsigelig. En hel lektion er dedikeret til dette valg — lige efter kortet over applikationer.
Sandbox: mærk forskellen med dine hænder
Send to prompts efter hinanden og sammenlign. Først en almindelig chat:
Answer in one paragraph: how do I plan a new product launch?
Få nu modellen til at agere som en agent:
Act as an autonomous agent. GOAL: plan a new product launch. Work in a loop: Thought → Action (tool call) → Observation. Tools are imaginary only: search(query), calendar_add(event), send_email(to, text). Show 5 turns of the loop, invent plausible observations. After turn 5 — STOP and a brief summary: done vs remaining.
Kontrasten mellem det første og det andet svar er definitionen af en agent: ikke »et svar«, men »arbejde i et loop«.
Gør det nu
Kør begge sandbox-prompts. Find i det andet svar en tur, hvor en observation ændrede planen. Hvis der ikke er en — tilføj linjen »on turn 3 the tool returns an error« til prompten og se modellen omdirigere.
Short questions on the lesson — with an explanation for every answer.