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

Eine Prompt-Bibliothek aufbauen

Nach dieser Lektion: Ich kann Prompts in Dateien mit Version und Test halten.

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

Prompts in Dateien mit Versionen und Tests halten

Eine Prompt-Bibliothek ist ein Ordner mit Prompts als Dateien, jede mit einer Version und einem Test. Ein Prompt in einer Chat-Nachricht geht verloren, wird falsch kopiert und von jedem bearbeitet, der ihn findet.

In einer Datei lässt er sich prüfen, testen und zurücknehmen, wie Code.

Am Ende dieser Lektion

Notiz

Ich kann Prompts in Dateien mit Version und Test halten.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Bibliothekein Ordner mit Prompts als Dateien
Variableeine benannte Lücke, die Code füllt{name}
Versioneine Zahl, die sagt, welche Änderung dies ist
Änderungsprotokolleine Liste dessen, was sich warum änderte
Regeleine Wendung, die ein Prompt immer enthalten muss
Prüfungeine Kontrolle aller Prompts auf einmal

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

Was enthält eine Prompt-Datei?

Jeder Prompt ist eine Datei, etwa erstattung-antwort.txt. Lücken sind Variablen in Klammern, wie {name}, damit Code sie füllen kann. Eine Versionsnummer gehört zur Datei, und eine Zeile im Änderungsprotokoll sagt, was sich änderte.

Daneben liegt ein Test. Er enthält die Regeln, die der Prompt immer enthalten muss.

Was eine Versionsnummer Ihnen sagt

ÄnderungStufeVon 1.2.3 zu
Einen Tippfehler behobenfix1.2.4
Eine Grenze oder ein Beispiel ergänztneben1.3.0
Die Variablen geändert, Aufrufer müssen sich anpassenhaupt2.0.0

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

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\";' '// 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.

Modell-Helfer 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.

Bibliotheks-Prüfer schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const ALT = \"Rolle: Sie sind Helfer eines Busunternehmens.\nAufgabe: Antworten Sie {name} zu einer Erstattung.\nGrenzen: Unter 25 Wörter. Nie ein Datum versprechen.\";' 'const REGELN = [\"unter 25 wörter\", \"nie ein datum versprechen\"];' > bib6.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.

Bibliotheks-Prüfer schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function variablen(text) {' '  const namen = [];' '  for (const f of text.match(/\{[a-z_]+\}/g) || []) {' '    if (namen.includes(f.slice(1, -1)) === false) namen.push(f.slice(1, -1));' '  }' '  return namen;' '}' 'function einsetzen(text, werte) {' '  const weg = variablen(text).filter(function (n) { return (n in werte) === false; });' '  if (weg.length > 0) return { ok: false, fehlend: weg };' '  let neu = text;' '  for (const n of Object.keys(werte)) neu = neu.split(\"{\" + n + \"}\").join(werte[n]);' '  return { ok: true, text: neu };' '}' >> bib6.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.

Bibliotheks-Prüfer schreiben, Teil 3

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function verloren(alt, neu) {' '  const a = alt.toLowerCase();' '  const n = neu.toLowerCase();' '  return REGELN.filter(function (r) { return a.includes(r) && n.includes(r) === false; });' '}' 'async function main() {' '  console.log(\"Variablen: \" + variablen(ALT).join(\", \"));' '  const schlecht = einsetzen(ALT, {});' '  console.log(\"Einsetzen ohne Werte: ok \" + schlecht.ok + \", fehlend \" + schlecht.fehlend.join(\", \"));' '  const aenderung = ALT.replace(\"Nie ein Datum versprechen.\", \"\");' '  console.log(\"Änderung verliert: \" + verloren(ALT, aenderung).join(\", \"));' '  const gefuellt = einsetzen(ALT, { name: \"Mina\" });' '  const antwort = await fragen([{ role: \"user\", content: gefuellt.text }], \"Liebe Mina, wir prüfen Ihre Erstattung.\", 50);' '  console.log(\"Modell: \" + antwort.text);' '}' 'main();' >> bib6.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.

Ausführen und eine schlechte Änderung ablehnen

Befehl
docker exec -w /home/node/project agent node bib6.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 druckt

Zuerst steht die Variable. Dann zeigt der Run, dass das Einsetzen ohne Werte abgelehnt wird und die fehlende Variable nennt. Danach ändert er den Prompt so, dass eine Grenze wegfällt, und listet die Regel, die die Änderung verliert. Diese Änderung würde abgelehnt.

Die letzte Zeile ist eine kurze Antwort auf den gefüllten Prompt. Ohne Modell steht zuerst Aufgezeichnete Probe.

Ein häufiger Fehler

Warnung

Viele glauben, eine kleine Änderung an einem gemeinsamen Prompt sei sicher. Schon eine kurze Änderung kann eine Grenze entfernen, auf die anderer Code sich verließ. Lassen Sie den Regeltest vor dem Speichern immer laufen, wie klein die Änderung auch ist.

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