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

Multi-Agenten-Systeme und Übergaben

Nach dieser Lektion: Ich kann Arbeit auf Agenten verteilen und sagen, wann ein Agent genügt.

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

Zwei Agenten schieben ein Ticket hin und her

Ein Multi-Agenten-System verteilt die Arbeit auf Agenten, die jeweils eine Rolle haben. Sie reichen die Arbeit mit Übergabenachrichten weiter. Das ist wichtig, weil jede Übergabe einen Aufruf kostet und Kontext verlieren kann.

Ein Abrechnungsagent schickt ein Ticket an einen Bestandsagenten. Der schickt es sofort zurück. Das Ticket sprang die ganze Nacht hin und her.

Am Ende dieser Lektion

Notiz

Ich kann Arbeit auf Agenten verteilen und sagen, wann ein Agent genügt.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Rolledie eine Aufgabe eines Agentenpreis
Übergabeeine Nachricht, die Arbeit an einen anderen Agenten gibt
Verteilerder Teil, der die Rolle für eine Aufgabe wählt
Gemeinsames Protokollein Log, das alle Agenten lesen und ergänzen
Schleifenschutzeine Prüfung, die endloses Hin und Her stoppt

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

Wann ein Agent genügt

Beginnen Sie mit einem Agenten und einer Aufforderung. Fügen Sie einen zweiten nur hinzu, wenn Sie den Gewinn nennen können. Das kann eine kürzere Aufforderung sein, weniger Werkzeuge im Blick, ein anderes Modell oder ein Schritt, den ein Mensch freigeben muss.

Jeder weitere Agent bringt Aufrufe, Verzögerung und eine Stelle, an der Kontext verloren geht. Schafft ein Agent mit drei Werkzeugen die Arbeit, hören Sie dort auf.

Ausgearbeitetes Beispiel: ein Agent oder mehrere

SituationWahlGrund
Einen Preis nachschlagen und nennenEin AgentEin Werkzeug, eine Aufforderung
Regeln für Preis, Bestand und Lieferung, 20 WerkzeugeRollenJede Rolle sieht nur ihre Werkzeuge
Eine Erstattung über 100 EuroEin Schritt für MenschenFreigeben ist keine Agentenarbeit

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

Die 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\";' '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 || 200 }),' '      signal: AbortSignal.timeout(30000),' '    });' '    if (res.ok === false) throw new Error(\"Status \" + res.status);' '    return (await res.json()).choices[0].message.content;' > 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 Modell-Hilfe schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' '  } catch (fehler) {' '    console.log(\"Aufgezeichnete Probe: Kein Modell hat geantwortet (\" + fehler.message + \").\");' '    const liste = [].concat(probe);' '    const runde = nachrichten.filter(function (m) { return m.role === \"assistant\"; }).length;' '    return liste[Math.min(runde, liste.length - 1)];' '  }' '}' '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 Übergabe-Demo schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const PREISE = { brezel: 90, semmel: 45 };' 'const BESTAND = { brezel: 14, semmel: 0 };' 'function suchen(tabelle, q, einheit) {' '  const name = Object.keys(tabelle).find(function (w) { return q.indexOf(w) >= 0; });' '  return name === undefined ? \"nichts gefunden\" : name + \": \" + tabelle[name] + einheit;' '}' 'const rollen = {' '  preis: function (q) { return suchen(PREISE, q, \" Cent\"); },' '  bestand: function (q) { return suchen(BESTAND, q, \" auf Lager\"); },' '};' 'function leiten(q) {' '  if (q.indexOf(\"was kostet\") >= 0) return \"preis\";' '  if (q.indexOf(\"auf lager\") >= 0) return \"bestand\";' '  return null;' '}' > uebergabe1.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 Übergabe-Demo schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function waehlen(q) {' '  const regel = leiten(q);' '  if (regel) return regel;' '  const text = \"Welche Rolle passt zu dieser Aufgabe: preis, bestand oder keine? Antworten Sie mit einem einzigen Wort. Aufgabe: \" + q;' '  const wort = (await fragen([{ role: \"user\", content: text }], \"keine\", 10)).trim().toLowerCase();' '  return wort === \"preis\" || wort === \"bestand\" ? wort : \"keine\";' '}' 'const spur = [];' 'function erlaubt(von, nach) {' '  spur.push(von + \">\" + nach);' '  return spur.filter(function (t) { return t === von + \">\" + nach; }).length < 3;' '}' >> uebergabe1.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 Übergabe-Demo schreiben, Teil 3

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  const protokoll = [];' '  for (const q of [\"was kostet eine brezel\", \"ist die semmel auf lager\", \"wie wird das wetter\"]) {' '    const rolle = await waehlen(q);' '    const ergebnis = rolle === \"keine\" ? \"keine Rolle passt, fragen Sie einen Menschen\" : rollen[rolle](q);' '    protokoll.push({ an: rolle, aufgabe: q, ergebnis: ergebnis });' '  }' '  protokoll.forEach(function (r) { console.log(r.an + \" | \" + r.aufgabe + \" | \" + r.ergebnis); });' '  let wer = \"preis\";' '  for (let i = 0; i < 6; i++) {' '    const naechster = wer === \"preis\" ? \"bestand\" : \"preis\";' '    if (erlaubt(wer, naechster) === false) { console.log(\"Schleife: \" + wer + \" an \" + naechster + \" zum dritten Mal, Stopp\"); break; }' '    wer = naechster;' '  }' '}' 'main();' >> uebergabe1.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.

Starten und das gemeinsame Protokoll lesen

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

Eine mögliche Ausgabe

ZeileWas sie zeigen kann
preis | was kostet eine brezelbrezel: 90 Cent
bestand | ist die semmel auf lagersemmel: 0 auf Lager
Die Wetteraufgabekeine, oder eine vom Modell gewählte Rolle mit schwachem Ergebnis
Schleifeeine Zeile, dass ein Paar zum dritten Mal vorkam

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

Eine Übergabe ist eine Nachricht mit Form

Eine Übergabenachricht nennt den Absender, den Empfänger, die Aufgabe und den Kontext, den der Empfänger braucht. Der Empfänger soll nicht den ganzen Verlauf des Absenders lesen müssen.

Die Agenten notieren, was sie getan haben, in einem gemeinsamen Protokoll. Es ist der eine Ort, an dem die Wahrheit über den Auftrag liegt.

Hin und Her zwischen Agenten verhindern

Zwei Agenten können jeweils entscheiden, dass der andere eine Aufgabe übernehmen soll. In keinem ist etwas falsch, und doch endet die Arbeit nie.

Zählen Sie jedes Paar von Absender zu Empfänger. Erreicht ein Paar eine Grenze, stoppen Sie und geben Sie den Auftrag an einen Menschen. Halten Sie die Spur der Übergaben im Protokoll fest, damit die Schleife sichtbar ist.

Ein häufiger Fehler

Warnung

Viele glauben, ein Verteiler müsse immer ein Modell fragen. Ein Modellaufruf ist langsamer, kostet Geld und kann eine Rolle nennen, die es nicht gibt. Nutzen Sie Regeln, wo sie genau sind, fragen Sie das Modell nur für den Rest und prüfen Sie, was es nennt.

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