Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Den Verlauf eines KI-Agenten bewerten

Nach dieser Lektion: Ich kann die Schritte eines Agenten gegen einen Referenzpfad bewerten.

Lektion, 65 Min.8 BefehleLab für KI-Coding-Agenten: mit opencode Code erklären und reparieren lassen und die Arbeit prüfen

Die richtige Antwort auf einem schlechten Weg

Eine Trajektorie ist die Liste der Schritte, die ein Agent bis zu seiner Antwort ging. Sie zu bewerten lohnt sich, denn ein Agent kann nach verschwendeten Aufrufen oder durch Glück richtig antworten, und jeder Schritt kostet Geld.

Der Shop hat einen Support-Agenten, der Bestellungen erstattet. Seine Antworten sehen gut aus. Seine Wege weniger.

Am Ende dieser Lektion

Notiz

Ich kann die Schritte eines Agenten gegen einen Referenzpfad bewerten.

Schlüsselwörter

BegriffWas er bedeutet
Trajektoriedie Schritte eines Agenten, der Reihe nach
Referenzpfaddie Schritte, die ein guter Lauf gehen soll
Doppelter Aufrufein Schritt, der einen früheren wiederholt
Schrittbudgetdie höchste Zahl an Schritten eines Laufs
PfadnotePunkte dafür, wie der Lauf ans Ziel kam

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Bewerten Sie den Weg, nicht nur die Antwort

Eine Prüfung der Endantwort stellt eine Frage: Ist die Antwort richtig? Eine Pfadprüfung fragt, wie der Agent dorthin kam. Sie betrachtet die Trajektorie und vergleicht sie mit einem Referenzpfad.

Ein Pfad zeigt vier Fehler. Ein Schritt fehlt. Ein doppelter Aufruf wiederholt einen anderen. Ein Schritt steht an falscher Stelle. Oder es sind zu viele Schritte für das Schrittbudget.

Durchgerechnetes Beispiel: vier aufgezeichnete Läufe

LaufGegangene SchritteAntwortPfadfehler
Asuchen, erstatten, sendenrichtigkeiner
Bsuchen, suchen, Hilfe, erstatten, sendenrichtigeine Wiederholung, über Budget
Cerstatten, suchen, sendenrichtigErstattung vor der Suche
Dsuchen, sendenfalschErstattung fehlt

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Aus den Fehlern eine Note machen

Geben Sie jedem Fehler feste Kosten und ziehen Sie sie von 100 ab. Hier kostet ein fehlender Schritt 25, ein doppelter Aufruf 10, das Überschreiten des Budgets 20 und eine falsche Reihenfolge 15.

Wählen Sie die Kosten, bevor Sie die Läufe ansehen. Die Referenz ist nicht der einzige gute Weg: Bewerten Sie die Reihenfolge nur dort, wo sie zählt.

Modell-Helfer schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const basis = process.env.AI_URL || \"http://ai:4000\";' 'async function fragen(nachrichten, probe, max) {' '  try {' '    const res = await fetch(basis + \"/v1/chat/completions\", {' '      method: \"POST\",' '      headers: { \"content-type\": \"application/json\", authorization: \"Bearer lab\" },' '      body: JSON.stringify({ model: \"lab\", messages: nachrichten, max_tokens: max || 200 }),' '      signal: AbortSignal.timeout(30000),' '    });' '    if (res.ok === false) throw new Error(\"Status \" + res.status);' '    return (await res.json()).choices[0].message.content;' > model.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Modell-Helfer schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' '  } catch (fehler) {' '    console.log(\"Aufgezeichnete Probe: Kein Modell hat geantwortet (\" + fehler.message + \").\");' '    const liste = [].concat(probe);' '    const runde = nachrichten.filter(function (m) { return m.role === \"assistant\"; }).length;' '    return liste[Math.min(runde, liste.length - 1)];' '  }' '}' 'module.exports = { fragen };' >> model.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Aufgezeichnete Läufe schreiben

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const referenz = [\"bestellung_suchen:A17\", \"erstatten:A17\", \"nachricht_senden:A17\"];' '// Aufgezeichnete Läufe eines Support-Agenten. Jeder Schritt ist ein Werkzeug und sein Argument.' 'const laeufe = [' '  { name: \"Lauf A\", antwort: \"ok\", schritte: [\"bestellung_suchen:A17\", \"erstatten:A17\", \"nachricht_senden:A17\"] },' '  { name: \"Lauf B\", antwort: \"ok\", schritte: [\"bestellung_suchen:A17\", \"bestellung_suchen:A17\", \"hilfe_suchen:erstattung\", \"erstatten:A17\", \"nachricht_senden:A17\"] },' '  { name: \"Lauf C\", antwort: \"ok\", schritte: [\"erstatten:A17\", \"bestellung_suchen:A17\", \"nachricht_senden:A17\"] },' '  { name: \"Lauf D\", antwort: \"falsch\", schritte: [\"bestellung_suchen:A17\", \"nachricht_senden:A17\"] },' '];' 'module.exports = { referenz, laeufe };' > pfade.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Pfadbewerter schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { referenz, laeufe } = require(\"./pfade\");' 'const { fragen } = require(\"./model\");' 'const budget = 4;' 'function doppelte(schritte) {' '  const gesehen = [];' '  let anzahl = 0;' '  schritte.forEach(function (schritt) {' '    if (gesehen.includes(schritt)) anzahl = anzahl + 1;' '    else gesehen.push(schritt);' '  });' '  return anzahl;' '}' 'function fehlende(schritte) {' '  return referenz.filter(function (schritt) { return schritte.includes(schritt) === false; });' '}' > bewerten.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Pfadbewerter schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function inReihenfolge(schritte) {' '  let stelle = 0;' '  schritte.forEach(function (schritt) {' '    if (stelle < referenz.length && schritt === referenz[stelle]) stelle = stelle + 1;' '  });' '  return stelle === referenz.length;' '}' 'function punkte(schritte) {' '  let summe = 100 - 25 * fehlende(schritte).length - 10 * doppelte(schritte);' '  if (schritte.length > budget) summe = summe - 20;' '  if (inReihenfolge(schritte) === false) summe = summe - 15;' '  return Math.max(summe, 0);' '}' >> bewerten.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Pfadbewerter schreiben, Teil 3

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const schwach = [];' 'laeufe.forEach(function (lauf) {' '  const note = punkte(lauf.schritte);' '  console.log(lauf.name + \": \" + note + \" Punkte, Schritte \" + lauf.schritte.length + \" von \" + budget + \", fehlend \" + fehlende(lauf.schritte).length + \", doppelt \" + doppelte(lauf.schritte) + \", in Reihenfolge \" + inReihenfolge(lauf.schritte) + \", Antwort \" + lauf.antwort);' '  if (lauf.antwort === \"ok\" && note < 100) schwach.push(lauf.name);' '});' 'console.log(\"Richtige Antwort, schwacher Pfad: \" + schwach.join(\", \"));' >> bewerten.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Pfadbewerter schreiben, Teil 4

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  const frage = \"Ein Kunde möchte die Bestellung A17 erstattet haben. Werkzeuge: bestellung_suchen, erstatten, nachricht_senden, hilfe_suchen. Antworten Sie nur mit dem Namen des Werkzeugs, das Sie zuerst aufrufen würden.\";' '  const text = await fragen([{ role: \"user\", content: frage }], \"bestellung_suchen\", 20);' '  console.log(\"Erster Schritt live: \" + text.trim());' '  console.log(\"Passt zur Referenz: \" + text.includes(\"bestellung_suchen\"));' '}' 'main();' >> bewerten.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die vier Läufe bewerten

Befehl
docker exec -w /home/node/project agent node bewerten.js

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Was der Bewerter ausgibt

ZeileWas sie zeigt
Lauf A100 Punkte, keine Fehler
Lauf B70 Punkte: ein doppelter Aufruf und 5 Schritte von 4
Lauf C85 Punkte: nicht in Reihenfolge
Lauf D60 Punkte: Erstattung fehlt, Antwort falsch
Schwacher PfadLauf B und Lauf C
Erster Schritt liveEine mögliche Ausgabe: bestellung_suchen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Probieren Sie es aus

Tipp

Ändern Sie in bewerten.js das Budget von 4 auf 5 und bewerten Sie erneut. Lauf B sollte 20 Punkte gewinnen. Entscheiden Sie, ob er dadurch ein guter Pfad wird.

Ein häufiger Fehler

Warnung

Viele glauben, der Referenzpfad sei der einzig richtige, und werten jede andere Reihenfolge als Fehler. Ein Agent hat oft zwei gute Wege. Bewerten Sie die Reihenfolge nur, wenn ein Schritt das Ergebnis eines anderen braucht, und erlauben Sie eine zweite Referenz, wenn zwei Reihenfolgen funktionieren.

Über dieses Lab und seinen Quellcode: Lab für KI-Coding-Agenten: mit opencode Code erklären und reparieren lassen und die Arbeit prüfen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.