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

Budgets, Abbruchregeln und was man behält

Nach dieser Lektion: Ich kann einem Coding-Agenten ein Budget und eine Abbruchregel geben und entscheiden, ob sich eine Aufgabe für ihn lohnt.

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

Grenzen und Kosten von Coding-Agenten

Ein Coding-Agent arbeitet in Schritten, und jeder Schritt kostet Zeit und Geld. Ohne Budget und Abbruchregel kann ein Agent eine Stunde an einer Aufgabe kreisen, die Sie in zehn Minuten erledigen.

Jede seiner Änderungen braucht trotzdem Ihre Prüfung. Man kann nach Gefühl entscheiden, was man delegiert; diese Lektion fügt die Zahlen hinzu.

Am Ende dieser Lektion

Notiz

Ich kann einem Coding-Agenten ein Budget und eine Abbruchregel geben und entscheiden, ob sich eine Aufgabe für ihn lohnt.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Schritteine Handlung eines Agenten: lesen, bearbeiten oder ausführen
Budgetdie meisten Schritte oder das meiste Geld, das ein Lauf nutzen darf
Abbruchregeleine Prüfung, die einen Lauf früh beendet
Gedulderlaubte Schritte ohne Fortschritt3
Netto-Minutengesparte Minuten nach Auftrag und Prüfung

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

Ein Budget und eine Abbruchregel

Geben Sie jedem Lauf ein Budget: höchstens 10 Schritte und höchstens 40 Cent. Geben Sie ihm auch Geduld: Ist die Zahl der bestandenen Tests 3 Schritte lang nicht gestiegen, hört er auf.

Prüfen Sie nach jedem Schritt in fester Reihenfolge: fertig, über Budget, kein Fortschritt, keine Schritte mehr. Die erste Prüfung, die zutrifft, beendet den Lauf.

Durchgerechnetes Beispiel: der festgefahrene Lauf

SchrittKostenAusgegebenBestanden von 6Schritte seit dem letzten Anstieg
14420
25930
361531
452032
562633, also Stopp: kein Fortschritt

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

Gesparte Zeit gegen verbrauchte Zeit

Ein Agent spart nicht die ganzen Minuten, die eine Aufgabe von Hand dauert. Sie brauchen weiter Minuten, um den Auftrag zu schreiben und die Änderung zu prüfen. Netto-Minuten sind die Minuten von Hand minus beides.

Behalten Sie eine Aufgabe, wenn das Netto 0 oder weniger ist. Behalten Sie sie auch bei hohem Risiko, etwa eine Zahlungsprüfung oder das Löschen von Daten, egal was die Minuten sagen.

Durchgerechnetes Beispiel: vier Aufgaben

AufgabeVon HandAuftrag plus PrüfungNettoEntscheidung
Eine Funktion in 12 Dateien umbenennen401525Delegieren
Eine Doku-Seite ergänzen301515Delegieren
Einen Tippfehler in einer Zeile beheben25-3Behalten
Die Zahlungsprüfung ändern604020Behalten: hohes Risiko

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

Ein häufiger Fehler

Warnung

Viele denken, die Zeit eines Agenten sei kostenlos, weil er arbeitet, während sie etwas anderes tun. Ihre eigene Zeit geht in Auftrag, Prüfung und Korrekturen. Zählen Sie diese Minuten, bevor Sie delegieren, und behalten Sie riskante Arbeit, egal was die Zählung sagt.

Die Modellhilfe 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\";' '// Die Token einer Antwort oder null, wenn sie keine nennt.' 'function zaehlen(daten, name) {' '  return daten.usage && typeof daten.usage[name] === \"number\" ? daten.usage[name] : null;' '}' > 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.

Die Modellhilfe schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' '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 || 100 }),' '      signal: AbortSignal.timeout(30000),' '    });' '    if (res.ok === false) throw new Error(\"Status \" + res.status);' '    const d = await res.json();' '    return { text: d.choices[0].message.content, eingabe: zaehlen(d, \"prompt_tokens\"), ausgabe: zaehlen(d, \"completion_tokens\"), aufgezeichnet: false };' '  } catch (fehler) {' '    console.log(\"Aufgezeichnete Probe: Kein Modell hat geantwortet (\" + fehler.message + \").\");' '    return { text: probe, eingabe: null, ausgabe: null, aufgezeichnet: true };' '  }' '}' '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.

Das Budgetskript schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const GRENZE = { schritte: 10, cent: 40, geduld: 3 };' 'const laeufe = {' '  \"stetig\": { gesamt: 6, kosten: [3, 4, 3, 5, 4, 3], bestanden: [1, 2, 3, 4, 5, 6] },' '  \"festgefahren\": { gesamt: 6, kosten: [4, 5, 6, 5, 6, 7, 6, 5], bestanden: [2, 3, 3, 3, 3, 3, 3, 3] },' '  \"teuer\": { gesamt: 8, kosten: [9, 12, 10, 11, 9], bestanden: [1, 2, 3, 4, 5] },' '};' > budget.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.

Das Budgetskript schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function stopp(l) {' '  let ausgegeben = 0;' '  let beste = 0;' '  let gestiegen = 0;' '  for (let i = 0; i < l.kosten.length; i += 1) {' '    const schritt = i + 1;' '    ausgegeben += l.kosten[i];' '    if (l.bestanden[i] > beste) { beste = l.bestanden[i]; gestiegen = schritt; }' '    if (beste === l.gesamt) return \"fertig bei Schritt \" + schritt + \", \" + ausgegeben + \" Cent\";' '    if (ausgegeben > GRENZE.cent) return \"über Budget bei Schritt \" + schritt + \", \" + ausgegeben + \" Cent\";' '    if (schritt - gestiegen >= GRENZE.geduld) return \"kein Fortschritt bei Schritt \" + schritt + \", \" + ausgegeben + \" Cent\";' '    if (schritt >= GRENZE.schritte) return \"keine Schritte mehr bei Schritt \" + schritt + \", \" + ausgegeben + \" Cent\";' '  }' '  return \"Aufzeichnung endet, \" + ausgegeben + \" Cent\";' '}' >> budget.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.

Das Budgetskript schreiben, Teil 3

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const aufgaben = [' '  { name: \"eine Funktion in 12 Dateien umbenennen\", vonHand: 40, auftrag: 5, pruefung: 10, risiko: \"niedrig\" },' '  { name: \"eine Doku-Seite ergänzen\", vonHand: 30, auftrag: 5, pruefung: 10, risiko: \"niedrig\" },' '  { name: \"einen Tippfehler in einer Zeile beheben\", vonHand: 2, auftrag: 3, pruefung: 2, risiko: \"niedrig\" },' '  { name: \"die Zahlungsprüfung ändern\", vonHand: 60, auftrag: 10, pruefung: 30, risiko: \"hoch\" },' '];' 'function entscheiden(a) {' '  if (a.risiko === \"hoch\") return \"behalten: hohes Risiko\";' '  const netto = a.vonHand - a.auftrag - a.pruefung;' '  return netto > 0 ? \"delegieren, spart \" + netto + \" Minuten\" : \"behalten: spart nichts\";' '}' >> budget.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.

Das Budgetskript schreiben, Teil 4

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  Object.keys(laeufe).forEach(function (name) { console.log(name + \": \" + stopp(laeufe[name])); });' '  aufgaben.forEach(function (a) { console.log(a.name + \": \" + entscheiden(a)); });' '  const f = \"Schreiben Sie in einem kurzen Satz, warum ein Coding-Agent ohne Fortschritt aufhören soll.\";' '  const probe = \"Ein Lauf, der nicht näher kommt, kostet nur mehr Geld und gibt Ihnen mehr zu prüfen.\";' '  const antwort = await fragen([{ role: \"user\", content: f }], probe, 60);' '  console.log(\"Das Modell sagte: \" + antwort.text);' '}' 'main();' >> budget.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.

Das Budgetskript ausführen

Befehl
docker exec -w /home/node/project agent node budget.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 Run ausgibt

ZeileWas sie zeigt
stetig: fertig bei Schritt 6, 22 CentAlle Tests bestehen innerhalb des Budgets
festgefahren: kein Fortschritt bei Schritt 5, 26 CentDrei Schritte ohne Anstieg
teuer: über Budget bei Schritt 4, 42 CentEr hat 40 Cent überschritten
eine Funktion in 12 Dateien umbenennen: delegieren, spart 25 MinutenLohnt sich für einen Agenten
einen Tippfehler in einer Zeile beheben: behalten: spart nichtsVon Hand schneller
die Zahlungsprüfung ändern: behalten: hohes RisikoBehalten, egal was die Minuten sagen
Das Modell sagte: ...Ein Satz aus dem Labor. Eine Aufgezeichnete Probe, wenn kein Modell antwortet

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

Ü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.