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

Einen Auftrag für einen Coding-Agenten schreiben

Nach dieser Lektion: Ich kann einen Auftrag schreiben, den ein Coding-Agent erledigen und ich prüfen kann.

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

Ein Auftrag für einen Coding-Agenten

Ein Coding-Agent ist ein Programm, das mit einem Sprachmodell ein Repository liest, Dateien ändert und Befehle ausführt. Er arbeitet nach einem Auftrag, den Sie schreiben. Der Auftrag entscheidet also, was Sie zurückbekommen.

„Den Kiosk besser machen“ kann als vierzig geänderte Dateien zurückkommen. Ein klarer Auftrag kommt als kleine Änderung zurück, die Sie prüfen können. Die Lektion über gute Fragen an einen Assistenten stellt eine Frage; diese Lektion schreibt einen ganzen Auftrag.

Am Ende dieser Lektion

Notiz

Ich kann einen Auftrag schreiben, den ein Coding-Agent erledigen und ich prüfen kann.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Coding-Agentein Programm, das mit einem Modell Code liest, Dateien ändert und Befehle ausführt
Auftragschriftliche Anweisungen für ein Stück Arbeit
Umfangder Teil der Arbeit, der dazugehört
Fertig wenneine Prüfung, die zeigt, dass die Arbeit erledigt istnode --test läuft durch
Nicht im Umfangwas die Arbeit nicht berühren darf

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

Ein Auftrag hat fünf Teile

Das Ziel sagt in einem Satz, was sich ändert. Der Umfang sagt, welcher Teil der Arbeit dazugehört. Die Liste der Dateien sagt, wo der Agent schreiben darf.

Fertig wenn nennt eine Prüfung, die Sie ausführen können, etwa einen Testbefehl. Nicht im Umfang sagt, was bleiben muss, wie es ist. Ein Agent hält selten an, um zu fragen. Jeder Teil beantwortet also eine Frage, bei der er sonst raten würde.

Durchgerechnetes Beispiel: vager und klarer Auftrag

TeilVager AuftragKlarer Auftrag
ZielDen Kiosk besser machenIn gesamt 10 Prozent Rabatt für Studierende einbauen
UmfangNicht gesagtnur gesamt
DateienNicht gesagtkiosk.js und kiosk.test.js
Fertig wennNicht gesagtnode --test läuft mit 2 neuen Tests durch
Nicht im UmfangNicht gesagtdie Preise und inEuro

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

Ein häufiger Fehler

Warnung

Viele denken, ein Agent frage nach, wenn ein Auftrag unklar ist. Die meisten Agenten raten und machen weiter. Eine Lücke wird so zu einer Entscheidung, die Sie nicht getroffen haben. Schreiben Sie „nicht im Umfang“ und die Prüfung, bevor Sie den Agenten starten.

Ein Skript prüft zuerst den Auftrag

Eine Checkliste findet die üblichen Lücken in einer Sekunde. Dieses Skript enthält drei aufgezeichnete Aufträge, A, B und C. Es sucht fehlende Teile, vage Wörter wie „besser“, mehr als drei Dateien und ein Fertig-wenn ohne Test.

Nichts hier startet den Agenten. Der Run prüft nur die Wörter, seine ersten drei Zeilen sind also für alle gleich.

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.

Die Auftragsprüfung schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const VAGE = [\"besser\", \"verbessern\", \"sauber\", \"ordentlich\", \"schöner\", \"irgendwie\"];' 'const TEILE = [\"ziel\", \"umfang\", \"dateien\", \"fertig_wenn\", \"nicht_im_umfang\"];' 'const auftraege = {' '  \"A\": { ziel: \"Den Code des Kiosks besser und ordentlich machen\" },' '  \"B\": { ziel: \"In gesamt 10 Prozent Rabatt für Studierende einbauen\", umfang: \"nur gesamt\",' '    dateien: [\"kiosk.js\", \"kiosk.test.js\", \"preise.js\", \"README.md\"], fertig_wenn: \"node --test läuft durch\",' '    nicht_im_umfang: \"die Preise\" },' '  \"C\": { ziel: \"In gesamt 10 Prozent Rabatt für Studierende einbauen\", umfang: \"nur gesamt\",' '    dateien: [\"kiosk.js\", \"kiosk.test.js\"], fertig_wenn: \"node --test läuft mit 2 neuen Tests durch\",' '    nicht_im_umfang: \"die Preise und inEuro\" },' '};' > auftrag.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 Auftragsprüfung schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function probleme(a) {' '  const aus = TEILE.filter(function (t) { return a[t] === undefined || a[t].length === 0; })' '    .map(function (t) { return t + \" fehlt\"; });' '  if (a.ziel) {' '    const woerter = a.ziel.toLowerCase().split(\" \");' '    VAGE.forEach(function (v) { if (woerter.indexOf(v) >= 0) aus.push(\"vage: \" + v); });' '  }' '  if (a.dateien && a.dateien.length > 3) aus.push(\"zu viele Dateien\");' '  if (a.fertig_wenn && a.fertig_wenn.toLowerCase().indexOf(\"test\") < 0) aus.push(\"fertig_wenn ohne Test\");' '  return aus;' '}' >> auftrag.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 Auftragsprüfung schreiben, Teil 3

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  Object.keys(auftraege).forEach(function (name) {' '    const gefunden = probleme(auftraege[name]);' '    console.log(\"Auftrag \" + name + \": \" + (gefunden.length === 0 ? \"bereit\" : \"braucht Arbeit \" + JSON.stringify(gefunden)));' '  });' '  const f = \"Schreiben Sie in einem kurzen Satz, warum ein Auftrag für einen Coding-Agenten eine Fertig-wenn-Prüfung braucht.\";' '  const probe = \"Ohne Prüfung weiß der Agent nicht, wann er aufhören soll, und Sie wissen nicht, ob es geklappt hat.\";' '  const antwort = await fragen([{ role: \"user\", content: f }], probe, 60);' '  console.log(\"Das Modell sagte: \" + antwort.text);' '}' 'main();' >> auftrag.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 Auftragsprüfung ausführen

Befehl
docker exec -w /home/node/project agent node auftrag.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
Auftrag A: braucht Arbeit [...]Vier Teile fehlen, dazu zwei vage Wörter
Auftrag B: braucht Arbeit ["zu viele Dateien"]Vier Dateien sind zu breit für einen Auftrag
Auftrag C: bereitAlle Teile sind da, und die Prüfung ist ein Test
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.