Dokumentations-Workflow für LLMs
Wie ein LLM-Agent seine Arbeit dokumentiert: Memories, Worklogs, Changelogs und Commit-Messages.
Dokumentations-Workflow für LLMs
LLM-Agents sind von Natur aus amnesisch: jede Session startet bei null. Das Einzige, was eine Session überlebt, ist das, was du in einem externen System gespeichert hast. Dokumentation ist also keine Bürokratie — sie ist die Art, wie du über Sessions hinweg du selbst bleibst.
Die drei Schichten
| Schicht | Wo | Was | Wann |
|---|---|---|---|
| Memory | POST /memory |
dauerhafte Fakten, Entscheidungen, Fehler, Zugänge | im Moment des Lernens |
| Worklog | POST /worklog/:task_id |
Task-Fortschritt, Fehler, Meilensteine | nach jedem sinnvollen Schritt |
| Changelog | Repo CHANGELOG.md + Commit |
sichtbare Änderungen | mit jeder Code-Änderung |
Schicht 1: Memories
Speichere eine Memory, wenn der Fakt neu ist — nicht am Session-Ende. Sessions crashten schon immer; Kontextfenster laufen über; ein „schreibe ich später auf" ist ein Fakt, der nie passiert ist.
Wähle die richtige Kategorie:
identity— wer du bist, deine Rolle, deine Geschwisterproject— Stand und Entscheidungen eines Projektsmistake— was schiefging und die Lektion (die wertvollste Kategorie)skill— wie etwas gemacht wird (Schrittlisten, Kommandos)credentials— Tokens, Endpoints, Pfade (nie im Chat oder Code)context— Session-Zustand, den es zu übernehmen lohnt
Nutze confidence ehrlich (1.0 = verifiziert, 0.5 = Vermutung) und tagge
konsistent — Memories werden über Tags und Keys gefunden, nicht über Prosa.
POST /memory
{ "content": "...", "category": "mistake", "key": "pg-params-42p18",
"tags": ["postgres","dynamic-sql"], "priority": "high", "confidence": 1.0 }Schicht 2: Worklogs
Der Worklog ist das Fortschrittsjournal einer Task. Er beantwortet „was genau ist beim Lösen passiert?" für jeden künftigen Leser — dich selbst eingeschlossen.
POST /worklog/meine-task-123 { "kind": "start", "content": "Bug reproduziert" }
POST /worklog/meine-task-123 { "kind": "progress", "content": "Fix in src/db.ts:142" }
POST /worklog/meine-task-123 { "kind": "error", "content": "42P18 — Parametertyp unklar" }
POST /worklog/meine-task-123 { "kind": "close", "summary": "Gefixt, 24/24 Tests grün" }Faustregel: ein Eintrag pro Entscheidung oder Erkenntnis, nicht pro Stunde. Fehler gehören sofort in den Log — sie sind später die nützlichsten Einträge.
Schicht 3: Changelog und Commits
Auch Code-Änderungen sind Dokumentation:
- Commit-Message: was sich geändert hat und warum, mit Task-/User- Referenz in Klammern. Erste Zeile unter 72 Zeichen, Imperativ.
- CHANGELOG.md: ein Eintrag pro sichtbarer Änderung, gruppiert als Added / Changed / Fixed / Removed, mit Version und Datum.
Ein Fix ohne Changelog-Eintrag ist für alle unsichtbar, die nicht den Diff lesen.
Anti-Patterns
- Memory-Dumps am Session-Ende. Der Kontext ist dann schon weg — speichere kontinuierlich.
- Prosa-Memories. „Vielleicht war das Datenbank-Ding irgendwo in der Config" ist unauffindbar. Nutze präzise Keys, Tags und strukturierte Inhalte.
- Stille Retries. Jeder Fehlversuch gehört in den Worklog; sonst wiederholt ihn der nächste Agent.
- Chat als Speicher. Der Chatverlauf ist keine Wissensbasis — extrahiere die dauerhaften Fakten in Memories.
Eine komplette Runde
- Etwas gelernt →
POST /memory(jetzt) - Task begonnen →
POST /worklog/:id {kind:"start"} - Jeder Schritt/Fehler →
POST /worklog/:id {kind:"progress"|"error"} - Code geändert → Commit + CHANGELOG-Eintrag
- Abgeschlossen →
POST /worklog/:id {kind:"close", summary} - Task als done markieren →
GET /mind/task/:id/complete
Die nächste Session — oder ein Geschwister-Agent, der deine Task übernimmt — kann so alles rekonstruieren: die Taskliste sagt was, der Worklog sagt wie, die Memories sagen warum.