Ein Entscheidungsprotokoll für eine KI-Funktion
Ein Entscheidungsprotokoll ist eine kurze Liste der Entscheidungen hinter einer Funktion, jede mit ihren Optionen, ihrer Wahl und ihrem Beleg. Es zählt, weil sich in sechs Monaten niemand erinnert, warum das Team beim kleinen Modell blieb.
Das Team der Bibliothek hat in vier Wochen fünf Entscheidungen getroffen. Ein Skript prüft jetzt, dass jede auf eine Aufzeichnung zeigt, die es gibt.
Am Ende dieser Lektion
Notiz
Ich kann die Entscheidungen hinter einer Funktion festhalten, damit andere ihnen folgen können.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Entscheidungsprotokoll | eine datierte Liste von Entscheidungen und ihren Gründen | |
| Option | einer der Wege, die Sie hätten gehen können | |
| Wahl | die Option, die Sie genommen haben | |
| Beleg | eine Aufzeichnung, die zeigt, warum Sie wählten | lauf:v4 |
| Überdenken | neu hinsehen, wenn sich die Belege ändern |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Optionen, Wahl und Beleg einer Entscheidung
Ein Eintrag sagt, was entschieden wurde, welche Optionen offen waren, welche genommen wurde und was zeigte, dass sie richtig war. Er hat ein Datum und eine Kennung.
Die Optionen zählen am meisten. Eine Entscheidung mit nur einer Option war keine Entscheidung. Die Leser müssen sehen, worauf Sie verzichtet haben.
Beispiel: Entscheidung D4
| Feld | Wert |
|---|---|
| Entscheidung | Die Versuche auf 2 begrenzen |
| Optionen | Grenze 2, oder bei 5 bleiben |
| Wahl | Grenze 2 |
| Beleg | ereignis:ursache_gefunden und stunde:11 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Beleg ist ein prüfbarer Verweis
Schreiben Sie den Beleg als Kennung: lauf:v4 für einen Lauf, stunde:11 für eine Stunde, ereignis:ursache_gefunden für ein Ereignis. Ein Skript kann dann prüfen, dass jede existiert.
Es findet auch einen Eintrag ohne Beleg, eine Wahl außerhalb der Optionen und eine doppelt benutzte Kennung.
Neuen Eintrag anfügen, nie umschreiben
Überdenken Sie eine Entscheidung, wenn sich die Belege ändern. Ändern Sie den alten Eintrag nicht. Fügen Sie einen neuen hinzu, der sagt, was er ersetzt.
Das Protokoll zeigt dann, was Sie glaubten und wann. Das brauchen Leser.
Ein häufiger Fehler
Warnung
Viele glauben, ein Entscheidungsprotokoll sei Papierkram, den man hinterher schreibt. Hinterher geschrieben wird es zu einer Geschichte, die zum Ergebnis passt. Schreiben Sie jeden Eintrag am selben Tag, mit den Belegen dieses Tages.
Das Entscheidungsprotokoll schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const fs = require(\"fs\");' 'const ENTSCHEIDUNGEN = [' ' { id: \"D1\", datum: \"2026-03-02\", entscheidung: \"Das Faktenblatt in den Prompt legen\", optionen: [\"in den Prompt\", \"erst suchen\"], wahl: \"in den Prompt\", belege: [\"lauf:v1\"] },' ' { id: \"D2\", datum: \"2026-03-09\", entscheidung: \"Zahlen verbieten, die nicht auf dem Blatt stehen\", optionen: [\"eine Regel ergänzen\", \"nichts tun\"], wahl: \"die Regel ergänzen\", belege: [\"lauf:v2\"] },' ' { id: \"D3\", datum: \"2026-03-16\", entscheidung: \"Beim kleinen Modell bleiben\", optionen: [\"kleines Modell\", \"größeres Modell\"], wahl: \"kleines Modell\", belege: [\"lauf:v5\", \"kosten:v5\"] },' > entscheidungen.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 Entscheidungsprotokoll schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' ' { id: \"D4\", datum: \"2026-03-24\", entscheidung: \"Die Versuche auf 2 begrenzen\", optionen: [\"Grenze 2\", \"bei 5 bleiben\"], wahl: \"Grenze 2\", belege: [\"ereignis:ursache_gefunden\", \"stunde:11\"] },' ' { id: \"D5\", datum: \"2026-03-25\", entscheidung: \"Lange Antworten zum Drucken hinnehmen\", optionen: [\"hinnehmen\", \"kürzen\"], wahl: \"hinnehmen\", belege: [] },' '];' 'fs.writeFileSync(\"entscheidungen.json\", JSON.stringify(ENTSCHEIDUNGEN, null, 1));' >> entscheidungen.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.
entscheidungen.json anlegen
docker exec -w /home/node/project agent node entscheidungen.jsHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Den Protokollprüfer schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const fs = require(\"fs\");' 'function bekannt() {' ' const ids = [];' ' [\"v1\", \"v2\", \"v3\", \"v4\", \"v5\"].forEach(function (v) { ids.push(\"lauf:\" + v); });' ' [\"08\", \"09\", \"10\", \"11\", \"12\", \"13\", \"14\"].forEach(function (h) { ids.push(\"stunde:\" + h); });' ' [\"blatt_veroeffentlicht\", \"alarm_ausgeloest\", \"ursache_gefunden\", \"versuche_begrenzt\", \"kosten_normal\"].forEach(function (c) { ids.push(\"ereignis:\" + c); });' ' return ids;' '}' > pruefe-protokoll.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.
Den Protokollprüfer schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function ausfuehren() {' ' const eintraege = JSON.parse(fs.readFileSync(\"entscheidungen.json\", \"utf8\"));' ' const ids = bekannt();' ' const gesehen = [];' ' let schlecht = 0;' ' for (const e of eintraege) {' ' const probleme = [];' ' if (e.belege.length === 0) probleme.push(\"ohne_beleg\");' ' else if (e.belege.some(function (id) { return ids.includes(id) === false; })) probleme.push(\"unbekannter_beleg\");' ' if (e.optionen.includes(e.wahl) === false) probleme.push(\"falsche_wahl\");' ' if (gesehen.includes(e.id)) probleme.push(\"doppelte_id\");' ' gesehen.push(e.id);' ' if (probleme.length > 0) { schlecht = schlecht + 1; console.log(e.id, probleme.join(\" \")); }' ' }' ' console.log(eintraege.length + \" Entscheidungen, \" + schlecht + \" mit Problemen\");' '}' 'module.exports = { ausfuehren };' 'if (require.main === module) ausfuehren();' >> pruefe-protokoll.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 Protokoll prüfen
docker exec -w /home/node/project agent node pruefe-protokoll.jsHier 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 Prüfer ausgibt
| Zeile | Was sie sagt |
|---|---|
| D2 | falsche_wahl |
| D3 | unbekannter_beleg |
| D5 | ohne_beleg |
| Letzte Zeile | 5 Entscheidungen, 3 mit Problemen |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Die Korrektur schreiben
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const fs = require(\"fs\");' 'const eintraege = JSON.parse(fs.readFileSync(\"entscheidungen.json\", \"utf8\"));' 'eintraege[1].wahl = \"eine Regel ergänzen\"; // die Wahl ist eine der Optionen' 'eintraege[2].belege = [\"lauf:v5\"]; // kosten:v5 ist keine Aufzeichnung' 'eintraege[4].belege = [\"lauf:v4\"]; // v4 hat noch die lange Antwort, c9' 'fs.writeFileSync(\"entscheidungen.json\", JSON.stringify(eintraege, null, 1));' 'require(\"./pruefe-protokoll\").ausfuehren();' > behebe-protokoll.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 Protokoll beheben und neu prüfen
docker exec -w /home/node/project agent node behebe-protokoll.jsHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.