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

Observability för agenter

Kunna logga, spåra och felsöka agentkörningar steg för steg.

Förkunskaper

Intuition

En agent som misslyckas utan spår är omöjlig att felsöka. Du ser bara «det blev fel» — inte var.

Logga per körning: ett run_id, uppgiften, modell- och promptversion, sluttillstånd, total kostnad och tid.

Logga per steg: stegnummer, modellens utdata, verktyg och argument, resultatet (trunkerat), tokens, latens, och eventuellt fel.

Det ger en trace — en tidslinje som går att läsa uppifrån och ner. Standarden för det är OpenTelemetry-spans, men en JSONL-fil per körning räcker långt och kan läsas med jq.

Kod

import json, time, uuid
from contextlib import contextmanager

class Trace:
    def __init__(self, uppgift, modell, prompt_id, path="traces"):
        self.run_id = uuid.uuid4().hex[:12]
        self.f = open(f"{path}/{self.run_id}.jsonl", "w", encoding="utf-8")
        self.t0 = time.perf_counter()
        self._skriv("start", {"uppgift": uppgift, "modell": modell, "prompt_id": prompt_id})

    def _skriv(self, typ, data):
        self.f.write(json.dumps({"run_id": self.run_id, "typ": typ,
                                 "t_ms": round((time.perf_counter() - self.t0) * 1000), **data},
                                ensure_ascii=False) + "\n")
        self.f.flush()

    @contextmanager
    def steg(self, n, verktyg=None, args=None):
        t = time.perf_counter()
        post = {"steg": n, "verktyg": verktyg, "args": str(args)[:200]}
        try:
            yield post
            post["fel"] = None
        except Exception as e:
            post["fel"] = f"{type(e).__name__}: {e}"[:200]
            raise
        finally:
            post["latens_ms"] = round((time.perf_counter() - t) * 1000)
            self._skriv("steg", post)

    def slut(self, status, tokens):
        self._skriv("slut", {"status": status, "tokens": tokens}); self.f.close()

Tre frågor spåret ska kunna besvara på tio sekunder: Vilket steg gick sönder? Vad matade vi in i det? Hur mycket kostade körningen och var gick tiden?

Integritet: logga verktygsargument och resultat trunkerade, och maskera fält som kan innehålla personuppgifter. Ett agentspår är annars en av de känsligaste loggarna i systemet.

Behärskning innebär

  • Loggar varje agentsteg spårbart
  • Felsöker en misslyckad körning ur spåret
  • Mäter kostnad och latens per steg

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

Källor

Alla källor och licenser