⌂ Kursmaterial
Folkuniversitetet · Tillfälle 1 · Del 2

Hur fungerar
det egentligen?

Språkmodeller, agenter och harness, och hur de tillsammans skriver kod åt dig.

🧠 LLM 🤖 Agent 🐴 Harness
Varför?

Varför förstå hur det fungerar?

Du behöver inte kunna bygga en motor för att köra bil. Men det hjälper att veta var bensinen ska.

Dagens karta

Tre lager

🧠LLMSpråkmodellen. Hjärnan som läser text och skriver text.
🤖AgentEn LLM som får använda verktyg i en loop tills uppgiften är klar.
🐴HarnessProgrammet runt modellen som kör loopen: Claude Code, Codex.
🙋DuGer målet, svarar på frågor och granskar resultatet.
🧠

Vad är en LLM?

Large Language Model, stor språkmodell

LLM

En väldigt bra gissare

En språkmodell gör en enda sak: den gissar nästa bit text. Om och om igen.

Det var en gång en …

prinsessa
31 %
liten
22 %
kung
15 %
gammal
9 %
…
LLM

Text blir tokens

Modellen läser inte bokstäver eller hela ord, utan tokens: små bitar text.

Skapa en webbsida med en blå knapp.
function hej(namn) { return "Hej " + namn; }
LLM

Hur blir den så smart?

📚 FörträningLäser enorma mängder text och kod
→
🎓 FinjusteringLär sig följa instruktioner och föra dialog
→
👍 ÅterkopplingBelönas för hjälpsamma, säkra och korrekta svar

Resultatet: en modell som har sett så mycket kod att den kan skriva ny kod som ofta fungerar på första försöket.

LLM

Kontextfönstret: modellens arbetsminne

  • Allt modellen vet om din uppgift måste finnas i kontexten: instruktioner, filer, tidigare meddelanden
  • Kontexten har en gräns, idag hundratusentals tokens
  • Modellen minns ingenting mellan konversationer
📋

Tänk så här

En supersmart konsult med minnesförlust. Varje morgon måste du ge den en bra överlämning.

LLM

Vad en LLM inte kan på egen hand

🎲

Vara säker

Den kan låta övertygande och ändå ha fel. Det kallas att hallucinera.

📅

Veta det senaste

Kunskapen tar slut vid träningen. Allt efter det måste den få berättat.

🖐️

Göra saker

En ren modell kan bara skriva text. Den kan inte öppna filer eller köra kod.

Den sista punkten är där agenten kommer in. 👇

🤖

Vad är en agent?

Från att prata till att göra

Agent

Chatt eller agent?

💬

Chatt

Du frågar, den svarar med text. Du kopierar koden, klistrar in, provar, kopierar felmeddelandet tillbaka …

🤖

Agent

Du ger ett mål. Den läser filerna, skriver koden, kör den, ser felet och rättar det själv.

Agent = LLM + verktyg + loop

Agent

Verktyg ger modellen händer

📖

Läsa

Öppna och söka i filer

✏️

Skriva

Skapa och ändra filer

⚙️

Köra

Kommandon i terminalen

🌐

Söka

Hämta info från webben

# Modellen skriver inte "jag läser filen", den skriver en begäran:
{ "verktyg": "läs_fil", "sökväg": "index.html" }
# Programmet runt omkring utför det och skickar tillbaka resultatet.
Agent

Agentloopen

🎯
Ditt mål
🧠 TänkVad behöver jag göra?
🛠️ AgeraAnropa ett verktyg
👀 ObserveraLäs resultatet
🔁 Upprepaeller säg att det är klart
  • En uppgift kan ta tiotals varv
  • Varje varv läggs resultatet i kontexten
  • Agenten slutar när målet är nått, eller när den behöver fråga dig
🐴

Vad är ett harness?

Selen som gör kraften användbar

Harness

Hästen och selen

🐎

Modellen är hästen

Massor av kraft, men den vet inte vart den ska eller vad den får göra.

🐴

Harnesset är selen

Kopplar kraften till vagnen och låter dig styra. Engelskans harness betyder just sele.

Claude Code och Codex är harness. Samma modell kan bli bättre eller sämre beroende på harnesset runt den.

Harness

Vad gör harnesset?

🔁

Kör loopen

Skickar kontexten till modellen, utför verktygen, skickar tillbaka svaren.

📜

Systemprompt

Dolda instruktioner om hur agenten ska bete sig och vilka verktyg som finns.

🚦

Behörigheter

Frågar dig innan något riskabelt händer.

🗜️

Kontext

Sammanfattar gamla delar när arbetsminnet blir fullt.

📝

Minne

Läser in CLAUDE.md / AGENTS.md automatiskt.

🔌

Tillägg

Kopplar in fler verktyg via MCP, skills och plugins.

🧩

Hela bilden

Allt tillsammans

Från din idé till fungerande kod

🙋 Du”Lägg till en
kontaktsida”
⇄
🐴 HarnessClaude Code / Codex
på din dator
⇄
🧠 LLMi molnet, hos
Anthropic / OpenAI
⇅
📁 Filer
⌨️ Terminal
🐙 GitHub
🌐 Webben
Ett exempel

”Lägg till en mörkt läge-knapp”

> Lägg till en knapp som växlar till mörkt läge
🧠 Jag behöver se hur sidan är uppbyggd.
● Read(index.html)  ● Read(style.css)
🧠 Jag lägger till en knapp och mörka färger.
● Edit(index.html)  ● Edit(style.css)  ● Write(theme.js)
🧠 Jag testar att sidan fortfarande fungerar.
● Bash(npx playwright test)  ✗ 1 fel: knappen saknar etikett
🧠 Jag rättar felet.
● Edit(index.html)  ● Bash(npx playwright test)  ✓
✓ Klart! Knappen finns uppe till höger.
Vad betyder det för dig?

Fem tumregler

Säkerhet

Agenten jobbar på din dator

  • Den kan läsa, ändra och radera filer i projektmappen
  • Den kan köra kommandon, som du
  • Starta den därför i en projektmapp, aldrig i hela hemmappen
  • Lägg aldrig lösenord eller nycklar i det du ber den om
🚦

Behörighetslägen

Som standard frågar agenten innan den ändrar filer eller kör kommandon. Lås upp mer när du känner dig trygg.

Sammanfattning

Det här tar vi med oss

🧠LLMGissar nästa token. Minns bara det som finns i kontexten.
🤖AgentLLM + verktyg + loop. Tänk, agera, observera, upprepa.
🐴HarnessClaude Code / Codex: kör loopen, ger verktyg, frågar om lov.
🙋DuSätter målet, ger kontext, granskar och committar.
🛠️

Övning 1: Mitt eget lilla verktyg

Bygg en liten app du själv har nytta av · 20–25 minuter

Övning 1

Välj ett projekt

🛒

Inköpslista

eller veckomatsedel

💧

Vanetracker

”drack vatten”, ”gick en promenad”

💰

Budget

för en resa eller ett hushåll

🧠

Quiz

eller flashcards för något du pluggar

Startprompten: mål, funktioner och krav

Bygg en inköpslista som en webbapp i den här mappen.

Funktioner:
- Jag kan lägga till varor, bocka av dem och ta bort dem.
- Avbockade varor hamnar längst ner i listan.
- En knapp rensar alla avbockade varor.
- Allt sparas i webbläsaren (localStorage) så att det finns kvar när jag laddar om sidan.

Krav:
- Använd bara HTML, CSS och JavaScript. Ingen server, inget byggsteg och inga paket som behöver installeras.
- Startsidan ska heta index.html och ligga direkt i mappen. Använd bara relativa sökvägar så att sidan fungerar på GitHub Pages.
- Sidan ska fungera lika bra på mobil som på dator: responsiv layout som anpassar sig efter skärmbredden, rätt viewport-inställning, knappar och fält som är lätta att träffa med fingret och ingen sidledsscroll.
- Använd svenska i hela gränssnittet och sätt lang="sv" på sidan.
- Ge appen en tydlig titel, en favicon och en glad design med varma färger.
- Skapa en kort README.md som beskriver vad appen gör.

Börja med att visa mig en kort plan. Vänta på mitt okej innan du skriver några filer.
Övning 1 · gör så här

Små steg, sedan publicera

  • 📁Ny tom mapp, öppna i appen, välj Manual / Ask for approval
  • 📋Klistra in startprompten, läs planen, svara Kör!
  • 🔁Testa, och be om en sak i taget
  • 🚀Låt agenten publicera, öppna länken i mobilen
🚀

Publicera

”Spara allt med Git och lägg upp projektet på GitHub som ett publikt repo med hjälp av gh. Slå sedan på GitHub Pages för main-grenen och ge mig länken till den publicerade sidan.”

Till nästa gång

Hemuppgift

Allt material och alla guider finns på kurssidan.

🙌

Frågor?

Tack för idag! Vi ses nästa gång.