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

Subagenten und Kontext-Isolation

Nach dieser Lektion: Ich kann einer Nebenaufgabe einen eigenen Kontext geben und nur die Antwort zurücknehmen, mit einem Briefing hinein und einem kurzen Ergebnis heraus.

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

Einer Nebenaufgabe ein eigenes Fenster geben

Ein Subagent ist ein zweiter Modellaufruf, der eine Nebenaufgabe übernimmt, in einem frischen Fenster arbeitet und eine kurze Antwort zurückgibt. Der Elternagent sieht die Arbeit nie, nur das Ergebnis.

Darum geht es. Eine Suche, die vierzig Dateien liest, würde das Fenster des Elternagenten füllen. In einem Subagenten erledigt, kostet sie ihn wenige Zeilen.

Am Ende dieser Lektion

Notiz

Ich kann einer Nebenaufgabe einen eigenen Kontext geben und nur die Antwort zurücknehmen, mit einem Briefing hinein und einem kurzen Ergebnis heraus.

Schlüsselwörter

BegriffWas er bedeutet
Subagentein Modellaufruf, der allein eine Nebenaufgabe erledigt
Isolationdie Nebenaufgabe hat ein eigenes Fenster
Briefingdie kurze Nachricht, die einen Subagenten startet
Vertragdie Felder und die Größe, die ein Ergebnis haben muss
Ergebniswas der Subagent zurückgibt
Elternagentder Agent, der die Nebenaufgabe angefordert hat

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

Ein Subagent ist keine Übergabe

Bei einer Übergabe geht die ganze Arbeit an einen anderen Agenten, der weitermacht. Ein Subagent ist anders. Der Elternagent bleibt zuständig und stellt eine einzige Frage.

Der Subagent startet leer. Er sieht den Verlauf des Elternagenten nicht. Er sieht das Briefing und sonst nichts.

Erst ein Briefing, dann ein Vertrag

Ein gutes Briefing nennt das Ziel, die Fakten, die zählen, die Dateien zum Ansehen und die Größe der Antwort. Alles, was der Subagent braucht, steht darin, denn er hat keine andere Quelle.

Ein Vertrag sagt, was zurückkommt: benannte Felder und eine Wortgrenze. Das Harness kürzt das Ergebnis auf den Vertrag, bevor der Elternagent es liest. Eine lange Antwort ist keine bessere Antwort.

Form eines Briefings und eines Ergebnisses

TeilEnthältWarum
ZielEine FrageDer Subagent weiß, wann er fertig ist
FaktenWas schon bekannt istEr wiederholt keine Arbeit
DateienWo er suchen sollEr irrt nicht umher
GrößeEine WortgrenzeDas Ergebnis bleibt kurz
VertragFelder und eine GrenzeDer Elternagent liest eine feste Form

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

Ein häufiger Fehler

Warnung

Viele geben dem Subagenten sicherheitshalber den ganzen Verlauf des Elternagenten. Dann ist nichts isoliert und die Kosten verdoppeln sich. Schreiben Sie ein Briefing mit nur dem, was die Nebenaufgabe braucht.

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

Subagentenlauf schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' '// Wörter stehen für Tokens, wie in Lektion 1.' 'function woerter(text) { return text.split(\" \").length; }' 'const eltern = \"Die Person will den fehlgeschlagenen Test beheben. Wir lasen app.py, ließen die Tests zweimal laufen, prüften das liesmich und sprachen eine Weile über Stil. Sie bat um kleine Änderungen.\";' 'const arbeit = [' '  \"ls: app.py liesmich tests notizen.txt alt.py\",' '  \"grep summe: app.py Zeile 4 def summe posten return sum posten\",' '  \"grep summe: tests Zeile 9 assert summe von 3 posten gleich 12\",' '  \"tests lesen: 40 Zeilen Testcode für den Warenkorb\",' '  \"app.py lesen: 22 Zeilen, die einen Warenkorb berechnen und Steuer addieren\",' '];' > sub4.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.

Subagentenlauf schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function briefingErstellen(ziel, fakten, dateien, max) {' '  const zeilen = [\"Ziel: \" + ziel];' '  for (const f of fakten) zeilen.push(\"Fakt: \" + f);' '  for (const f of dateien) zeilen.push(\"Datei: \" + f);' '  zeilen.push(\"Antworten Sie mit höchstens \" + max + \" Wörtern.\");' '  return zeilen.join(\" | \");' '}' 'function kuerzen(text, max) { return text.split(\" \").slice(0, max).join(\" \"); }' 'function summe(liste) { return liste.reduce(function (a, b) { return a + b; }, 0); }' >> sub4.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.

Subagentenlauf schreiben, Teil 3

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  const briefing = briefingErstellen(\"Finden, wo die Summe des Warenkorbs berechnet wird\", [\"Der Test für 3 Posten ist falsch\"], [\"app.py\", \"tests\"], 20);' '  const probe = \"Die Summe wird in app.py in Zeile 4 berechnet. Sie addiert die Posten ohne Steuer. Siehe tests Zeile 9.\";' '  const eigen = briefing + \" | \" + arbeit.join(\" ; \");' '  const antwort = await fragen([{ role: \"user\", content: eigen }], probe, 60);' '  const ergebnis = kuerzen(antwort.text, 20);' '  console.log(\"Fenster des Elternagenten: \" + woerter(eltern) + \" Wörter\");' '  console.log(\"Fenster der Nebenaufgabe: \" + woerter(eigen) + \" Wörter, davon \" + summe(arbeit.map(woerter)) + \" Werkzeugergebnisse\");' '  console.log(\"Ergebnis behalten: \" + ergebnis);' '  console.log(\"der Elternagent zahlt \" + (woerter(briefing) + woerter(ergebnis)) + \" Wörter\");' '}' 'main();' >> sub4.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 Subagenten ausführen

Befehl
docker exec -w /home/node/project agent node sub4.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 Werkzeugergebnisse sind aufgezeichnet

Die fünf Werkzeugergebnisse sind erfunden und aufgezeichnet, anstelle dessen, was ein echter Subagent läse. Der kurze Modellaufruf bekommt das Briefing und diese Ergebnisse, und der Run kürzt die Antwort auf zwanzig Wörter.

Ohne Modell gibt er eine aufgezeichnete Probe aus und nutzt eine aufgezeichnete Antwort.

Eine mögliche Ausgabe

ZeileWas sie zeigt
Fenster des Elternagenten: 29 WörterWas der Elternagent schon enthält
Fenster der Nebenaufgabe: 84 Wörter, davon 48 WerkzeugergebnisseWo die Arbeit stattfand
Ergebnis behalten: Die Summe wird in ...Höchstens zwanzig Wörter
der Elternagent zahlt 50 WörterBriefing und Ergebnis, nicht die 48 der Werkzeuge

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.