AI-guider och tutorials

Bygg din första AI-kodagent med Learn Claude Code – steg för steg

Lär dig installera Learn Claude Code, starta den första agentloopen och förstå hur en AI-agent använder terminalverktyg.

Hero-bild med texten Claude Code och Build an AI Agent, laptop med kod samt ikoner för prompt, reasoning, tools, terminal, files och memory

En språkmodell kan föreslå ett terminalkommando, men den kör normalt inte kommandot själv. En AI-kodagent lägger därför ett programlager runt modellen som kan ta emot verktygsanrop, utföra dem och skicka resultatet tillbaka till modellen.

Det öppna GitHub-projektet Learn Claude Code visar hur detta agentlager, ofta kallat ett agent harness, kan byggas från grunden. Projektet är pedagogiskt och är inte Anthropic eller Claude Codes officiella källkod. Den nuvarande huvudlinjen består av 20 stegvisa kapitel, från en enkel agentloop till bland annat behörigheter, minne, subagenter, bakgrundsuppgifter, MCP och agentteam.

Slutresultat

Efter guiden kan du klona projektet, installera beroendena, konfigurera en modell, starta den första agenten och förstå varför agentloopen fortsätter tills modellen inte längre behöver använda ett verktyg.

Det här behöver du

  • En dator med macOS, Linux eller Windows.
  • Git installerat.
  • Python och pip installerat.
  • En API-nyckel till en modell/provider som stöds av projektets konfiguration.
  • Grundläggande vana vid Terminal eller PowerShell.

Kontrollera installationen innan du börjar.

macOS eller Linux

Kör detta kommando i Terminalen:

python3 --version
git --version

Windows

Kör detta kommando i PowerShell:

py --version
git --version

Det ska fungera så här: båda kommandona ska skriva ut ett versionsnummer. Om ett kommando inte hittas behöver motsvarande program installeras innan du går vidare.

Viktigt innan du kör agenten

Den första lektionen ger modellen tillgång till ett Bash-verktyg. Det betyder att modellen kan be programmet köra kommandon på datorn.

Kör därför endast guiden i en separat testmapp eller i en ny klon av projektet. Använd inte ett viktigt produktionsprojekt och börja med ofarliga, läsande uppgifter. Projektets demonstrationskod har ett enkelt filter för vissa farliga kommandon, men det är inte en fullständig sandbox eller ett komplett produktionsskydd.

Steg 1: Klona projektet

Öppna Terminal eller PowerShell och välj en plats där testprojektet får ligga.

macOS eller Linux

Kör detta kommando i Terminalen:

git clone https://github.com/shareAI-lab/learn-claude-code.git
cd learn-claude-code

Windows PowerShell

Kör detta kommando i PowerShell:

git clone https://github.com/shareAI-lab/learn-claude-code.git
cd learn-claude-code

Vad kommandona gör: git clone laddar ner en lokal kopia av projektet. cd flyttar terminalen till projektmappen.

Kontrollera resultatet: kör detta kommando i Terminalen:

ls

På Windows PowerShell kan du använda:

Get-ChildItem

Du ska bland annat se mappar med namn som börjar på s01_, s02_ och fortsätter upp till s20_.

Steg 2: Skapa en isolerad Python-miljö

En virtuell miljö hindrar projektets Python-paket från att blandas med andra projekt på datorn.

macOS eller Linux

Kör detta kommando i Terminalen:

python3 -m venv .venv
source .venv/bin/activate

Windows PowerShell

Kör detta kommando i PowerShell:

py -m venv .venv
.\.venv\Scripts\Activate.ps1

Kontrollera resultatet: terminalraden ska normalt börja med (.venv).

Om PowerShell blockerar aktiveringsskriptet kan du tillfälligt tillåta det i det aktuella terminalfönstret:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\.venv\Scripts\Activate.ps1

Steg 3: Installera projektets beroenden

Kör kommandot från projektets rotmapp, där filen requirements.txt ligger.

python -m pip install --upgrade pip
python -m pip install -r requirements.txt

På vissa macOS- och Linux-installationer behöver du använda python3 i stället för python.

Vad installeras: projektets requirements-fil innehåller bland annat Anthropic SDK, python-dotenv för miljövariabler och PyYAML för YAML-konfiguration.

Kontrollera resultatet: kör detta kommando i Terminalen:

python -c "import anthropic, dotenv, yaml; print('Beroenden OK')"

Du ska se:

Beroenden OK

Steg 4: Skapa konfigurationsfilen

Projektet levereras med en exempelfil som ska kopieras till .env.

macOS eller Linux

Kör detta kommando i Terminalen:

cp .env.example .env

Windows PowerShell

Kör detta kommando i PowerShell:

Copy-Item .env.example .env

Öppna sedan .env i din kodeditor.

Lägg den här koden i filen .env:

ANTHROPIC_API_KEY=DIN_API_NYCKEL
MODEL_ID=MODELLENS_ID

Ersätt platshållarna med riktiga värden från din provider. Lägg aldrig in citationstecken runt nyckeln om inte providerns dokumentation uttryckligen kräver det.

Projektets exempelfil innehåller även stöd för Anthropic-kompatibla endpoints genom variabeln ANTHROPIC_BASE_URL.

Om du använder en kompatibel provider kan .env se ut så här:

ANTHROPIC_API_KEY=DIN_API_NYCKEL
ANTHROPIC_BASE_URL=https://DIN-PROVIDER.example/anthropic
MODEL_ID=MODELLENS_ID

Viktigt: lägg aldrig upp .env på GitHub och publicera aldrig en riktig API-nyckel i en artikel, skärmbild eller logg.

Kontrollera att filen finns:

macOS eller Linux

Kör detta kommando i Terminalen:

ls -la .env

Windows PowerShell

Kör detta kommando i PowerShell:

Get-Item .env

Steg 5: Starta den första agentloopen

Kör den första lektionen från projektets rotmapp:

python s01_agent_loop/code.py

På vissa system används:

python3 s01_agent_loop/code.py

Du ska få en interaktiv prompt som liknar:

s01: Agent Loop
s01 >>

Agenten väntar nu på en uppgift.

Steg 6: Börja med ett säkert test

Skriv följande instruktion i agentens prompt:

List the files in the current directory. Do not create, edit, move or delete anything.

Vad som ska hända: modellen bör begära att få använda Bash, programmet kör ett läsande kommando och resultatet skickas tillbaka till modellen. Modellen kan därefter sammanfatta filerna.

Avsluta agenten genom att skriva detta i agentens prompt:

q

Steg 7: Testa en uppgift i flera delar

Starta agenten igen och skriv den här uppgiften i agentens prompt:

Create a file named hello.py that prints "Hello from my first AI agent". Then run the file and verify the output. Do not modify any other file.

Kontrollera filen efteråt genom att köra detta i Terminalen:

cat hello.py
python hello.py

På Windows PowerShell kontrollerar du filen med detta kommando:

Get-Content hello.py
py hello.py

Förväntat resultat:

Hello from my first AI agent

Det viktiga är inte själva Python-filen. Det viktiga är att agenten kan utföra en kedja:

1. Skapa filen. 2. Köra filen. 3. Läsa terminalresultatet. 4. Avgöra om uppgiften är klar.

Så fungerar agentloopen

Diagram över agentloopen

Lägg inte denna pseudokod i projektet. Den visar bara principen bakom loopen:

while True:
    reply = call_model(history, available_tools)
    history.append(reply)

    if not reply.requests_a_tool:
        break

    tool_result = execute_requested_tool(reply)
    history.append(tool_result)

Vad varje del gör

history innehåller användarens instruktioner, modellens tidigare svar och resultaten från körda verktyg.

available_tools beskriver vilka handlingar modellen får begära. I första lektionen finns i huvudsak ett Bash-verktyg.

call_model(...) skickar historiken och verktygsbeskrivningen till språkmodellen.

execute_requested_tool(...) kör den handling som modellen har valt och samlar in resultatet.

Loopen avslutas först när modellen lämnar ett vanligt slutsvar utan att begära ytterligare verktygsanrop.

Modell och agent harness är inte samma sak

Det är användbart att skilja på två lager:

Språkmodellen

  • Ansvarar för att tolka målet, resonera och välja nästa handling.

Agent harness

  • Ansvarar för verktyg, terminalkörning, historik, behörigheter, minne och fel.

En starkare modell kan fatta bättre beslut, men utan ett harness kan den inte automatiskt läsa filer, köra tester eller arbeta vidare utifrån terminalresultatet. Ett bra harness gör samtidigt modellen säkrare och mer praktiskt användbar genom tydliga verktyg och begränsningar.

Projektets 20 kapitel

Den nuvarande rekommenderade utbildningslinjen går från s01_agent_loop till s20_comprehensive.

Grunder: s01–s04

  • Här lär du dig agentloop, verktyg, behörigheter och hooks.

Planering: s05–s07

  • Här lär du dig todo-listor, subagenter och skills som laddas vid behov.

Kontext: s08–s11

  • Här lär du dig kontextkomprimering, minne, dynamiska systemprompter och felåterställning.

Långa jobb: s12–s14

  • Här lär du dig beständiga uppgifter, bakgrundskörning och schemaläggning.

Flera agenter: s15–s18

  • Här lär du dig agentteam, kommunikationsprotokoll, självorganisering och Git-worktrees.

Integration: s19–s20

  • Här lär du dig MCP-verktyg och en sammansatt agent med mekanismerna runt samma loop.

Läs kapitlen i ordning. Varje nytt steg bygger vidare på tidigare begrepp.

Vanliga fel och lösningar

ModuleNotFoundError: No module named 'anthropic'

Den virtuella miljön är inte aktiverad eller så har beroendena inte installerats.

python -m pip install -r requirements.txt

Kontrollera därefter:

python -c "import anthropic; print('OK')"

KeyError: 'MODEL_ID'

Variabeln MODEL_ID saknas i .env, är felstavad eller så körs programmet utan att konfigurationsfilen hittas.

Kontrollera att .env innehåller:

MODEL_ID=MODELLENS_ID

Autentiseringsfel, exempelvis 401 eller 403

Kontrollera att:

  • API-nyckeln är giltig.
  • Rätt endpoint används.
  • Modellnamnet finns hos providern.
  • Kontot har tillgång till modellen.

Skapa inte en ny nyckel innan du har kontrollerat att problemet inte är ett felaktigt modell-ID eller en felaktig base URL.

Modellen svarar men använder inget verktyg

Alla modeller och kompatibilitetslager hanterar inte verktygsanrop på samma sätt. Kontrollera att vald modell och endpoint stöder tool use enligt providerns dokumentation.

Testa också en konkret uppgift genom att skriva detta i agentens prompt:

Run pwd and then list the files in the current directory. Do not modify anything.

Kommandot stoppas som farligt

Demokoden blockerar vissa tydligt farliga kommandon. Det är förväntat. Försök inte kringgå filtret i ett riktigt projekt. Gå i stället vidare till projektets kapitel om behörigheter och bygg ett explicit godkännandeflöde.

Agenten fastnar eller når timeout

Börja med en mindre uppgift och undvik kommandon som väntar på interaktiv inmatning. Kontrollera även nätverksanslutningen och providerns status.

Säker checklista

Innan du låter en kodagent arbeta i ett riktigt projekt:

  • Lägg projektet under Git och gör en ren commit.
  • Kör agenten i en isolerad mapp, container eller worktree.
  • Kräv godkännande för radering, installationer och externa nätverksanrop.
  • Begränsa vilka kataloger agenten kan nå.
  • Sätt tids-, kostnads- och antal-varvgränser.
  • Spara loggar över verktygsanrop och resultat.
  • Kör automatiska tester innan ändringar accepteras.

Sammanfattning och nästa steg

Learn Claude Code visar att kärnan i en kodagent är förvånansvärt liten: modellen väljer ett verktyg, harness-lagret kör verktyget och resultatet går tillbaka till modellen. Projektets värde ligger i hur det steg för steg bygger säkerhet, planering, minne, parallellism och integrationer runt denna loop.

Börja med s01_agent_loop, kör endast säkra testuppgifter och gå sedan vidare i ordning. Nästa steg är att läsa kapitlen om behörigheter, minne och MCP när du förstår den första loopen. När grunderna sitter blir det betydligt enklare att förstå hur mer avancerade agenter som Claude Code, Codex och Hermes är organiserade.

Källor

  • Projekt: https://github.com/shareAI-lab/learn-claude-code
  • Första kapitlet: https://github.com/shareAI-lab/learn-claude-code/tree/main/s01_agent_loop
  • Konfiguration: https://github.com/shareAI-lab/learn-claude-code/blob/main/.env.example
  • Beroenden: https://github.com/shareAI-lab/learn-claude-code/blob/main/requirements.txt
  • Licens: https://github.com/shareAI-lab/learn-claude-code/blob/main/LICENSE
AI-agent Claude Code Python GitHub tutorial kodagent

Källor