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

Utvärdering av agenter

Kunna bygga uppgiftsbaserade evals för agenter med succeskriterier och kostnad.

Förkunskaper

Intuition

Agenter kan inte utvärderas som chattsvar. Frågan är inte «lät svaret bra?» utan «blev uppgiften löst?».

Bygg evals med verifierbart sluttillstånd:

UppgiftVerifiering
«boka mötet»finns posten i kalendern med rätt tid?
«fixa buggen»går testsviten igenom?
«hitta priset»matchar svaret facit?
«städa datafilen»uppfyller filen schemat?

Kör i sandlåda med ett kontrollerat starttillstånd, låt agenten arbeta, inspektera sluttillståndet med kod. Ingen domare behövs — det är binärt.

Rapportera alltid tre tal tillsammans: lösningsgrad, kostnad per lyckad uppgift, och andel avbrutna.

Kod

from dataclasses import dataclass
from typing import Callable

@dataclass
class AgentFall:
    id: str
    uppgift: str
    starttillstand: Callable[[], object]     # bygger sandlådan
    verifiera: Callable[[object], bool]      # inspekterar sluttillståndet

def kor_evalsvit(agent, fall: list[AgentFall], forsok: int = 3):
    rader = []
    for f in fall:
        for k in range(forsok):                       # flera försök: agenter är stokastiska
            varld = f.starttillstand()
            res = agent.kor(f.uppgift, varld)
            rader.append({"fall": f.id, "forsok": k, "lyckades": bool(f.verifiera(varld)),
                          "steg": res["steg"], "tokens": res["tokens"], "sek": res["sek"],
                          "status": res["status"]})
    n = len(rader); ok = [r for r in rader if r["lyckades"]]
    return {
        "losningsgrad": len(ok) / n,
        "pass_at_1": sum(r["lyckades"] for r in rader if r["forsok"] == 0) / len(fall),
        "kostnad_per_lyckad": sum(r["tokens"] for r in rader) / max(len(ok), 1),
        "medelsteg_lyckade": sum(r["steg"] for r in ok) / max(len(ok), 1),
        "avbrutna": sum(r["status"] != "klar" for r in rader) / n,
    }

Två fällor:

  • Mäta processen. «Använde agenten rätt verktyg i rätt ordning?» låter rimligt men straffar smartare lösningar. Mät sluttillståndet.
  • Ett försök per fall. Agenter är stokastiska; pass@1 och pass@3 säger olika saker och båda är relevanta.

Behärskning innebär

  • Bygger uppgiftsbaserade evals med verifierbart sluttillstånd
  • Mäter kostnad och steg, inte bara framgång
  • Undviker att mäta processen i stället för resultatet

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

Källor

Alla källor och licenser