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

Das Gedächtnis eines KI-Agenten

Nach dieser Lektion: Ich kann entscheiden, was ein Agent zwischen Schritten und zwischen Läufen behält.

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

Der Agent, der das Budget vergaß

Das Gedächtnis eines Agenten ist alles, was er von einem Schritt oder Lauf zum nächsten mitnimmt. Ein Modell behält von allein nichts: Gedächtnis ist Text, den Ihr Programm wieder in die Aufforderung legt.

Ein Einkaufsagent schlägt einer Kundin einen Mantel für 60 Euro vor, die 30 genannt hatte. Das Budget fiel in Schritt eins und war in Schritt neun verschwunden.

Am Ende dieser Lektion

Notiz

Ich kann entscheiden, was ein Agent zwischen Schritten und zwischen Läufen behält.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Notizblockdie Notizen, die ein Agent während eines Laufs führt
Zusammenfassungein kürzerer Text, der für einen längeren steht
SpeicherGedächtnis, das zwischen Läufen bleibt
Gedächtnisbudgetdie größte Textmenge im Gedächtnis120 Zeichen
Kontextfensterdie Textmenge, die ein Modell auf einmal liest

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

Drei Arten von Gedächtnis

Der Notizblock ist die Liste der Nachrichten und Notizen eines einzigen Laufs. Eine Zusammenfassung ersetzt einen langen Verlauf durch einen kurzen Text. Ein Speicher lebt zwischen Läufen, in einer Datei oder einer Datenbank.

Alle drei landen in der Aufforderung. Jede gemerkte Zeile wird also in jedem Schritt erneut gesendet, und Sie bezahlen sie jedes Mal.

Ausgearbeitetes Beispiel: die drei Arten im Vergleich

ArtLebensdauerWächst durchHauptrisiko
NotizblockEin LaufJeden SchrittFüllt das Kontextfenster
ZusammenfassungEin Lauf oder mehrWird jedes Mal ersetztVerliert ein wichtiges Detail
SpeicherZwischen LäufenJeden LaufAlte Fakten, die nicht mehr stimmen

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 Gedächtnis-Demo schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const notizen = [' '  { text: \"Die Kundin ist Lena, ein Geschenk für ihren Bruder\", wichtig: true },' '  { text: \"Heute regnet es\", wichtig: false },' '  { text: \"Das Budget beträgt 30 Euro\", wichtig: true },' '  { text: \"Handschuhe kosten 4 Euro\", wichtig: false },' '  { text: \"Ein Schal kostet 18 Euro\", wichtig: false },' '  { text: \"Lena mag kein Rot\", wichtig: true },' '];' 'const BUDGET = 120;' 'const speicher = [];' 'function groesse() { return speicher.reduce(function (n, m) { return n + m.text.length; }, 0); }' > gedaechtnis1.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 Gedächtnis-Demo schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function merken(notiz) {' '  speicher.push(notiz);' '  while (groesse() > BUDGET) {' '    const stelle = speicher.findIndex(function (m) { return m.wichtig === false; });' '    if (stelle === -1) break;' '    console.log(\"  vergessen: \" + speicher[stelle].text);' '    speicher.splice(stelle, 1);' '  }' '  console.log(\"Hinzugefügt, Notizen: \" + speicher.length + \", Zeichen: \" + groesse());' '}' >> gedaechtnis1.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 Gedächtnis-Demo schreiben, Teil 3

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  notizen.forEach(merken);' '  const alle = notizen.map(function (n) { return n.text; }).join(\". \");' '  const bitte = [{ role: \"user\", content: \"Fassen Sie diese Notizen in einem Satz für einen Agenten zusammen, der die Arbeit fortsetzt: \" + alle }];' '  const probe = \"Lena sucht ein Geschenk für ihren Bruder, höchstens 30 Euro und nichts in Rot.\";' '  console.log(\"Zusammenfassung: \" + await fragen(bitte, probe, 80));' '}' 'main();' >> gedaechtnis1.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 sehen, was vergessen wird

Befehl
docker exec -w /home/node/project agent node gedaechtnis1.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
Hinzugefügt, Notizen: 4, Zeichen: 115Die Zahl der Notizen und Zeichen nach jeder Notiz
vergessen: Heute regnet esErscheint, wenn das Gedächtnis sein Budget von 120 Zeichen übersteigt
vergessen: Handschuhe kosten 4 EuroDie nächste unwichtige Notiz geht, bis es wieder passt
Hinzugefügt, Notizen: 4, Zeichen: 117Die letzte Zeile: Die drei wichtigen Notizen sind noch da
Zusammenfassung: ...Ein Satz, der das Budget und die zu meidende Farbe nennt

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

Entscheiden, was merkenswert ist

Behalten Sie, was der nächste Schritt braucht. Dazu gehören der Wunsch der Nutzer, ihre Grenzen, getroffene Entscheidungen und Fakten, die ein Werkzeug lieferte. Lassen Sie Smalltalk und rohe Werkzeugausgaben weg.

Behalten Sie wichtige Notizen wörtlich. Eine Zusammenfassung schreibt ein Modell, und es kann eine Zahl ändern. Fassen Sie das Geplauder zusammen und heften Sie die Fakten an.

Ein häufiger Fehler

Warnung

Viele glauben, mehr Gedächtnis mache einen besseren Agenten. Gedächtnis wird in jedem Schritt bezahlt, und alte Notizen können in die Irre führen. Behalten Sie, was der nächste Schritt braucht, mit einer Größengrenze und einer Möglichkeit zu vergessen.

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