Hoppa till innehållet
AI-grafen
F· AI engineeringagenter-verktyg· ca 90 min· volatil — kontrolleras ofta· verifierad 2026-09-20

Kodagenter

Kunna bygga en agent som skriver, kör och rättar kod mot tester.

Förkunskaper

Intuition

Kod har en egenskap som text saknar: den går att köra. Det gör kodagenter till det mest välfungerande agentfallet — testresultatet är en objektiv, automatisk återkoppling i varje varv.

Loopen:

läs uppgift och befintlig kod
→ skriv/ändra kod
→ kör testerna i sandlåda
→ testerna gröna? klart
→ annars: läs felutskriften, ändra, försök igen (max n varv)

Det som avgör kvaliteten är inte modellen utan återkopplingen: hela stack tracen, vilka tester som failade, och vilken kod som kördes. En agent som bara får «testerna failade» famlar.

Kod

def kodagent(uppgift, filer, kor_tester, llm, max_varv=6):
    """kor_tester körs ALLTID i sandlåda utan nät. Returnerar (ok, rapport)."""
    historik = []
    for varv in range(max_varv):
        ok, rapport = kor_tester(filer)
        if ok:
            return {"status": "klar", "varv": varv, "filer": filer, "historik": historik}
        if varv and rapport == historik[-1]["rapport"]:
            historik.append({"varv": varv, "note": "ingen förändring i testresultat"})
            return {"status": "fastnat", "varv": varv, "filer": filer, "historik": historik}

        andring = llm.generera({
            "uppgift": uppgift,
            "filer": filer,
            "testrapport": rapport[:4000],          # hela felutskriften, inte bara "failade"
            "tidigare_forsok": [h.get("sammanfattning") for h in historik[-2:]],
        })
        filer = applicera(filer, andring)            # patch, inte hela filen
        historik.append({"varv": varv, "rapport": rapport, "sammanfattning": andring["motivering"]})
    return {"status": "budget_slut", "filer": filer, "historik": historik}

Fyra saker som gör skillnad i praktiken:

  1. Patchar, inte hela filer — mindre risk att agenten raderar orelaterad kod.
  2. Stoppa vid stagnation — samma testresultat två varv i rad betyder att strategin inte fungerar.
  3. Testerna får inte ändras av agenten — annars «löser» den uppgiften genom att ta bort testet.
  4. Sandlåda utan nät — genererad kod är otillförlitlig per definition.

AI-grafens labbrunner är byggd för exakt detta: filer in, tester körs isolerat, strukturerat resultat ut.

Behärskning innebär

  • Bygger en agent som skriver, kör och rättar kod mot tester
  • Använder testresultatet som styrsignal
  • Kör all genererad kod isolerat

Logga in för att göra övningarna och bygga upp din behärskning.

Källor

Alla källor och licenser