Sofortantwort
Context Engineering einfach erklärt
Optimale Zusammenstellung von Kontext für LLM-Anfragen.
- Kurz gesagt
- Welche Informationen gehören in den Kontext? (Relevanz)
- Typischer Einsatz
- RAG-Systeme, Coding-Assistenten, Chatbots
- Wichtig zu wissen
- In welchem Format? (Struktur, Kompression)
Context Engineering im Überblick
Context Engineering ist die Kunst, dem LLM genau die richtigen Informationen zu geben – nicht zu wenig, nicht zu viel, in der richtigen Reihenfolge und im richtigen Format.
Das Problem:
Zu wenig Kontext:
"Schreib eine E-Mail an den Kunden."
→ LLM weiß nicht: Welcher Kunde? Welches Thema? Welcher Ton?
Zu viel Kontext:
[Sehr viel Dokumentation]
"Beantworte die Frage."
→ Modell kann relevante Teile schlechter finden oder falsch gewichten
Optimaler Kontext:
[Relevante Auszüge] + [Kundenhistorie] + [Tonalitäts-Guidelines]
"Schreib eine E-Mail zur Reklamation."
→ Modell hat die wichtigsten Informationen kompakt verfügbar
Die drei Dimensionen:
| Dimension | Frage | Optimierung |
|---|---|---|
| Relevanz | Was gehört rein? | Retrieval, Filterung |
| Anordnung | In welcher Reihenfolge? | Wichtiges an Anfang/Ende |
| Format | Wie strukturiert? | XML, Markdown, Sections |
Technisch betrachtet
Lost in the Middle
LLMs können Informationen aus der Mitte langer Kontexte je nach Modell und Aufgabe schlechter nutzen:
Kontext-Position: [Anfang] ... [Mitte] ... [Ende]
Aufmerksamkeit: ████████░░░░░░░░░░░░████████
Hoch Niedrig Hoch
Implikation:
- Wichtigste Infos gut sichtbar platzieren
- Instruktionen nahe an der Aufgabe halten
- weniger kritische Infos klar strukturieren oder komprimieren
Kontext-Struktur
Unstrukturiert (schlecht):
Hier sind einige Informationen: Der Kunde hat kürzlich bestellt.
Er ist Bestandskunde. Seine letzte Beschwerde betraf eine
Lieferverzögerung. Es gibt eine Rückgaberichtlinie...
Strukturiert (besser):
<customer>
<name>Kunde</name>
<since>Bestandskunde</since>
<last_order>letzte Bestellung</last_order>
</customer>
<complaint>
<type>Lieferverzögerung</type>
<date>aktuelles Ticket</date>
</complaint>
<policy>
<returns>geltende Rückgaberichtlinie</returns>
</policy>
<task>
Schreibe eine Entschuldigungs-E-Mail an den Kunden.
</task>
Retrieval-Strategien
1. Semantic Search (Basis):
relevant_chunks = vector_db.search(query, top_k=retrieval_limit)
context = "\n".join(relevant_chunks)
2. Reranking (besser):
candidates = vector_db.search(query, top_k=candidate_limit)
reranked = reranker.rerank(query, candidates, top_k=final_context_limit)
context = "\n".join(reranked)
3. Contextual Retrieval:
# Chunks mit Kontext anreichern vor dem Embedding
for chunk in chunks:
chunk.context = llm.generate(
f"Beschreibe kurz, worum es in diesem Abschnitt geht "
f"im Kontext des Gesamtdokuments: {chunk.text}"
)
chunk.embedding = embed(chunk.context + chunk.text)
Kontext-Kompression
Wenn Kontext zu lang:
def compress_context(documents, max_tokens):
if count_tokens(documents) <= max_tokens:
return documents
# Option 1: Zusammenfassen
summary = llm.summarize(documents)
# Option 2: Extraktiv kürzen
key_sentences = extract_key_sentences(documents)
# Option 3: Unwichtiges entfernen
filtered = filter_by_relevance(documents, query)
return filtered
Kontext für verschiedene Use Cases
RAG:
[System Prompt]
[Retrieved Documents - nach Relevanz sortiert]
[User Query]
Coding Assistant:
[System Prompt mit Coding-Guidelines]
[Aktuelle Datei]
[Relevante importierte Dateien]
[Error Message / Task]
Chatbot:
[System Prompt]
[Zusammenfassung älterer Konversation]
[Letzte N Nachrichten]
[Aktuelle Nachricht]
Agent:
[System Prompt mit Tools]
[Aufgabenbeschreibung]
[Bisherige Schritte und Ergebnisse]
[Aktuelle Beobachtung]
[Nächste Aktion?]
Best Practices
| Prinzip | Beschreibung |
|---|---|
| Relevanz vor Vollständigkeit | Lieber weniger, aber relevanter |
| Struktur hilft | XML, Markdown, klare Sections |
| Instruktionen nahe an der Aufgabe | Gut sichtbar vor oder bei der eigentlichen Anfrage |
| Wichtiges hervorheben | Kritische Informationen klar markieren oder wiederholen |
| Testen und Messen | A/B-Tests für Kontext-Varianten |
Schritt für Schritt
Kontext als System gestalten
Context Engineering verbindet Auswahl, Reihenfolge und Format zu einem wiederholbaren Ablauf – nicht zu einem möglichst langen Prompt.
Aufgabe und Erfolg definieren
Ziel
Zuerst wird klar, welche Entscheidung oder Ausgabe gebraucht wird und welche Quellen dafür verlässlich sind.
Aufgabe + QualitätskriterienPassende Informationen abrufen
Auswahl
Retrieval, Verlauf und Tool-Ergebnisse liefern nur die Informationen, die für die aktuelle Aufgabe wirklich relevant sind.
Quellen → relevante BelegeKontext strukturieren
Format
Anweisungen, Fakten, Quellen und gewünschtes Ausgabeformat werden klar getrennt und priorisiert.
Regeln → Kontext → Aufgabe → FormatErgebnis prüfen und nachsteuern
Evaluation
Antworten werden anhand von Quellen, Testfällen und Feedback bewertet; Retrieval und Prompt werden gezielt angepasst.
Antwort → Prüfung → Verbesserung
Konkretes Beispiel
Beispiel: Antwort auf eine Vertragsfrage
Ein Assistent soll eine Frage beantworten, ohne vertrauliche oder veraltete Vertragsversionen zu verwenden.
Ungeordneter Kontext
Der gesamte Chatverlauf, viele Vertragsversionen und eine allgemeine Anweisung landen zusammen in der Anfrage.
Kuratiertes Kontextpaket
Die Anwendung nutzt die gültige Version, zeigt sie als Quelle an, trennt Regeln von Fakten und hält Platz für eine begründete Antwort frei.
Guter Kontext entsteht durch Entscheidungen vor dem Modellaufruf. Mehr Text allein verbessert die Antwort nicht.
Einordnung
Vorteile und Grenzen
Das spricht dafür
- Macht LLM-Ausgaben nachvollziehbarer und aufgabenbezogener.
- Reduziert irrelevante Tokens, Kosten und Ablenkung.
- Verbindet Retrieval, Memory, Tools und Prompt zu einer klaren Architektur.
- Lässt sich über reale Aufgaben und Fehlerbilder systematisch verbessern.
Das solltest du beachten
- Braucht Datenmodell, Quellenpflege und kontinuierliche Evaluation.
- Zu starke Auswahl kann wichtige Randbedingungen entfernen.
- Die beste Reihenfolge hängt von Modell und Aufgabe ab.
- Nicht jede Fachentscheidung lässt sich vollständig automatisieren.
Vertiefung · für FortgeschritteneEin Kontextpaket für LLM-Aufgaben
Jeder Baustein hat eine eigene Aufgabe und wird möglichst klar vom nächsten getrennt.
Relevanz organisieren