RAG für eigene Notizen: die KI auf dein Wissen setzen
Workflows · 7 Min. Lesezeit · Stand 04.10.2026
Wie Retrieval-Augmented Generation funktioniert, welche fertigen Tools reichen und wie ein eigenes Skript aussieht - inklusive der Fallen, die Antworten verschlechtern.
Ein LLM kennt deine Notizen nicht. RAG (Retrieval-Augmented Generation) löst das: Vor der Antwort werden passende Ausschnitte aus deinen Dokumenten gesucht und in den Prompt gelegt. Die Antwort entsteht dann aus deinem Wissen statt aus Trainingsdaten - mit Quellenangabe.
Die drei Schritte
- Chunken: Dokumente in Abschnitte von 200 bis 800 Tokens zerlegen, an sinnvollen Grenzen (Überschriften, Absätze). Zu große Chunks verwässern die Treffer, zu kleine reißen den Kontext auseinander.
- Embeddings erzeugen: Jeder Chunk wird in einen Vektor umgerechnet, der seine Bedeutung abbildet. Das geht per API oder lokal (etwa mit einem Embedding-Modell über Ollama).
- Suchen und einsetzen: Für die Frage denselben Embedding-Weg nehmen, die Top-3 bis Top-10 Chunks per Kosinus-Ähnlichkeit ziehen und als Kontext in den Prompt schreiben.
Für persönliche Notizen reicht das völlig. Zwei Ergänzungen machen es deutlich besser: Hybride Suche (Vektor plus Stichwort) hilft bei exakten Begriffen wie Namen oder Fehlercodes, und ein Zeitfilter verhindert, dass ein fünf Jahre alter Entwurf die Antwort dominiert.
Fertige Tools statt Eigenbau
- AnythingLLM (Open Source, Desktop oder Docker): Dokumente in Workspaces einbetten, eingebaute lokale Vektor-Datenbank, Zitate im Chat, eigene Embeddings oder API, REST-Schnittstelle. Der schnellste Weg zu einem funktionierenden RAG ohne Code.
- Obsidian mit Copilot-Plugin: RAG direkt über den eigenen Vault, Embeddings wahlweise lokal über Ollama. Ideal, wenn die Notizen ohnehin in Markdown liegen.
- NotebookLM und vergleichbare Cloud-Tools: am wenigsten Arbeit, aber die Dokumente liegen beim Anbieter - für private Notizen nicht immer akzeptabel.
Eigenbau-Skript
Wer Kontrolle will, baut es in einer Stunde selbst: Markdown lesen, chunken, Embeddings erzeugen, in einen lokalen Vektor-Store schreiben (Chroma, LanceDB oder eine SQLite-Erweiterung reichen für private Mengen), Top-k suchen, Prompt bauen. Wichtig ist ein ehrlicher Loop: Für jede Frage die gefundenen Chunks mit ausgeben, damit du siehst, woraus die Antwort gespeist wird.
# Pseudostruktur
chunks = chunk(markdown_files, size=400)
store.upsert([embed(c) for c in chunks])
hits = store.search(embed(question), k=5)
answer = llm(prompt=f"Beantworte nur mit diesem Kontext:\n{hits}\n\nFrage: {question}")Die klassischen Fallen
- Zu viel Kontext: 20 Chunks statt 5 verwirren das Modell und kosten Geld. Qualität der Treffer schlägt Menge.
- Stille Ausfälle: Wenn die Suche nichts findet, halluziniert das Modell trotzdem. Deshalb im Prompt fest verankern: "Wenn der Kontext nichts hergibt, sag das."
- Veraltete Chunks: Nach jeder Änderung der Notizen neu indexieren, sonst antwortet die KI über ein altes Weltbild.
- Keine Zitate: Ohne Quellenangabe kannst du nicht prüfen, ob die Antwort stimmt. Jede Antwort sollte sagen, aus welchen Chunks sie kommt.
RAG ersetzt kein gutes Notiz-System - es macht ein vorhandenes abfragbar. Wer seine Notizen ohnehin strukturiert pflegt, bekommt mit wenig Aufwand einen Assistenten, der auf tatsächlichem eigenem Wissen antwortet.