Grundlagen des Context Engineering
Kontext ist der vollständige Zustand, der einem Sprachmodell zur Inferenzzeit zur Verfügung steht: Systemanweisungen, Werkzeugdefinitionen, abgerufene Dokumente, Nachrichtenverlauf und Werkzeugausgaben. Context Engineering ist die Disziplin, das kleinste Tokenset mit hohem Signalgehalt zusammenzustellen, das die Wahrscheinlichkeit gewünschter Ergebnisse maximiert.
Diese Fertigkeit ist die konzeptionelle Grundlage, auf der alle anderen Fertigkeiten der Sammlung aufbauen. Sie erklärt, was Kontext ist, wie Aufmerksamkeitsmechanismen funktionieren, warum Kontextqualität wichtiger ist als Quantität und welche mentalen Modelle nötig sind, um jede andere Entscheidung im Context Engineering zu interpretieren. Sie beinhaltet keine operative Arbeit: Das Debuggen von Aufmerksamkeitsfehlern gehört zu context-degradation, Taktiken zur Tokeneffizienz gehören zu context-optimization, die Zusammenfassung von Gesprächen gehört zu context-compression, das dateibasierte Auslagern gehört zu filesystem-context, und Entscheidungen zur Projektform gehören zu project-development.
Wann aktivieren
Aktivieren Sie diese Fertigkeit, wenn die Arbeit konzeptioneller Natur ist:
- Erklären, was Kontext ist und wie Aufmerksamkeitsmechanismen das Agentenverhalten einschränken.
- Einarbeitung neuer Mitwirkender, die die mentalen Modelle benötigen, bevor sie sich mit operativen Fertigkeiten befassen.
- Ableitung einer kontextbezogenen Designentscheidung aus ersten Prinzipien (was bedeutet diese Einschränkung, warum gibt es diesen Kompromiss), bevor eine spezifische Taktik gewählt wird.
- Schreiben oder Überprüfen von Dokumentationen, die operative Anleitungen in den zugrunde liegenden Mechanismen verankern müssen.
Aktivieren Sie diese Fertigkeit nicht für operative Arbeiten. Die spezialisierten Fertigkeiten kümmern sich um das Tun:
- Diagnose von "Lost in the Middle", Kontextvergiftung oder Aufmerksamkeitsfehlern:
context-degradation. - Reduzierung der Tokenkosten durch Maskierung, Partitionierung, Prefix-Caching, Budgets:
context-optimization. - Komprimieren einer langen Sitzung in eine Übergabezusammenfassung:
context-compression. - Auslagern großer Werkzeugausgaben oder Führen eines dauerhaften Notizblocks:
filesystem-context. - Entscheiden über die Form eines LLM-Projekts oder einer Pipeline:
project-development.
Kernkonzepte
Behandeln Sie Kontext als endliches Aufmerksamkeitsbudget, nicht als Speicherbehälter. Jedes hinzugefügte Token konkurriert um die Aufmerksamkeit des Modells und verbraucht ein Budget, das während der Inferenz nicht wieder aufgefüllt werden kann. Das technische Problem besteht darin, den Nutzen pro Token unter drei Einschränkungen zu maximieren: der harten Token-Grenze, der weicheren Effektivkapazitätsgrenze und der U-förmigen Aufmerksamkeitskurve, die Informationen in der Mitte des Kontexts benachteiligt (claim-context-degradation-lost-middle-ruler).
Wenden Sie beim Zusammenstellen von Kontext vier Prinzipien an:
- Informativität vor Vollständigkeit — fügen Sie nur das hinzu, was für die aktuelle Entscheidung wichtig ist; entwerfen Sie Systeme, die bei Bedarf zusätzliche Informationen abrufen können.
- Positionsbewusste Platzierung — platzieren Sie kritische Einschränkungen am Anfang und Ende des Kontexts, da Auswertungen mit langem Kontext zeigen, dass Informationen in der Mitte weniger zuverlässig abgerufen werden als Informationen am Rand (claim-context-degradation-lost-middle-ruler).
- Progressive Offenlegung — laden Sie Fertigkeitsnamen und Zusammenfassungen beim Start; laden Sie den vollständigen Inhalt erst, wenn eine Fertigkeit für eine bestimmte Aufgabe aktiviert wird.
- Iterative Kuratierung — Context Engineering ist keine einmalige Übung zum Verfassen von Prompts, sondern eine fortlaufende Disziplin, die jedes Mal angewendet wird, wenn Inhalte an das Modell übergeben werden.
Detaillierte Themen
Die Anatomie des Kontexts
Systemprompts Organisieren Sie Systemprompts in separate Abschnitte mit XML-Tags oder Markdown-Überschriften (Hintergrund, Anweisungen, Werkzeuganleitung, Ausgabeformat). Systemprompts bleiben während des gesamten Gesprächs bestehen, platzieren Sie daher die kritischsten Einschränkungen am Anfang und Ende, wo die Aufmerksamkeit am stärksten ist.
Kalibrieren Sie die Anweisungshöhe, um zwei Fehlermodi auszugleichen. Eine zu geringe Höhe kodiert brüchige Logik, die bricht, wenn sich die Bedingungen ändern. Eine zu hohe Höhe liefert vage Anleitungen, die keine konkreten Signale für das gewünschte Verhalten geben. Streben Sie heuristikgesteuerte Anweisungen an: spezifisch genug, um das Verhalten zu leiten, flexibel genug, um zu verallgemeinern – zum Beispiel nummerierte Schritte mit Spielraum für Urteilsvermögen bei jedem Schritt.
Beginnen Sie minimal, fügen Sie dann Anweisungen reaktiv auf Basis beobachteter Fehlermodi hinzu, anstatt präventiv Randfälle zu stopfen. Kuratieren Sie vielfältige, kanonische Few-Shot-Beispiele, die das erwartete Verhalten darstellen, anstatt jedes mögliche Szenario aufzulisten.
Werkzeugdefinitionen Schreiben Sie Werkzeugbeschreibungen, die drei Fragen beantworten: Was das Werkzeug tut, wann es verwendet werden soll und was es zurückgibt. Fügen Sie Nutzungskontext, Parameterstandardwerte und Fehlerfälle hinzu – Agenten können Werkzeuge, die ein menschlicher Ingenieur nicht unterscheiden kann, ebenfalls nicht unterscheiden.
Halten Sie die Werkzeugmenge minimal. Konsolidieren Sie sich überschneidende Werkzeuge, da aufgeblähte Werkzeugsets mehrdeutige Entscheidungspunkte schaffen und nach der JSON-Serialisierung unverhältnismäßig viel Kontext verbrauchen (Werkzeugschemata blähen sich typischerweise um das 2-3-fache im Vergleich zu äquivalenten Klartextbeschreibungen auf).
Abgerufene Dokumente
Verwenden Sie leichte Identifikatoren (Dateipfade, gespeicherte Abfragen, Weblinks) und laden Sie Daten dynamisch mittels Just-in-Time-Abruf in den Kontext. Dies spiegelt die menschliche Kognition wider – führen Sie einen Index, keine Kopie. Starke Identifikatoren (z. B. kunden_preise.json) ermöglichen es Agenten, relevante Dateien auch ohne Suchwerkzeuge zu finden; schwache Identifikatoren (z. B. data/datei1.json) erzwingen unnötige Ladevorgänge.
Beim Chunking großer Dokumente teilen Sie an natürlichen semantischen Grenzen (Abschnittsüberschriften, Absatzumbrüche) und nicht an willkürlichen Zeichenlimits, die mitten im Konzept trennen.
Nachrichtenverlauf Der Nachrichtenverlauf dient als Gedächtnisstütze des Agenten, um Fortschritte zu verfolgen, den Aufgabenstatus zu verwalten und Überlegungen über mehrere Runden hinweg zu bewahren. Bei langlebigen Aufgaben kann er dominieren und den Kontextverbrauch in die Höhe treiben – überwachen Sie ihn und wenden Sie Kompaktierung an, bevor er aktive Anweisungen verdrängt.
Verfeinern Sie den Verlauf zyklisch: Sobald ein Werkzeug tief im Gespräch aufgerufen wurde, muss das rohe Ergebnis selten wörtlich erhalten bleiben. Ersetzen Sie veraltete Werkzeugausgaben durch kompakte Zusammenfassungen oder Referenzen, um Massen mit geringem Signalgehalt zu reduzieren.
Werkzeugausgaben Werkzeugausgaben dominieren oft den Kontext in Agenten-Trajektorien (claim-context-optimization-tool-output-dominance). Wenden Sie Beobachtungsmaskierung an: Ersetzen Sie ausführliche Ausgaben durch kompakte Referenzen, sobald der Agent das Ergebnis verarbeitet hat. Behalten Sie nur die zuletzt relevanten Dateiinhalte; komprimieren oder entfernen Sie ältere.
Kontextfenster und Aufmerksamkeitsmechanismen
Das Aufmerksamkeitsbudget Für n Tokens berechnet der Aufmerksamkeitsmechanismus n² paarweise Beziehungen. Mit wachsendem Kontext verschlechtert sich die Fähigkeit des Modells, diese Beziehungen aufrechtzuerhalten – nicht als harte Grenze, sondern als Leistungsgradient. Modelle, die hauptsächlich mit kürzeren Sequenzen trainiert wurden, haben weniger spezialisierte Parameter für kontextweite Abhängigkeiten, was eine effektive Obergrenze weit unterhalb der nominalen Fenstergröße schafft.
Entwerfen Sie für diesen Gradienten: Gehen Sie davon aus, dass die effektive Kapazität materiell unter dem beworbenen Fenster liegt, bis Sie es für die Zielarbeitslast gemessen haben. Große nominale Kontextfenster heben die Notwendigkeit aufgabenspezifischer Verschlechterungstests nicht auf (claim-context-degradation-lost-middle-ruler).
Grenzen der Positionskodierung Die Interpolation der Positionskodierung erweitert die Sequenzverarbeitung über die Trainingslängen hinaus, führt jedoch zu einer Verschlechterung der Positionsgenauigkeit. Erwarten Sie eine geringere Genauigkeit beim Informationsabruf und bei weitreichenden Schlussfolgerungen in erweiterten Kontexten im Vergleich zur Leistung bei kürzeren Eingaben.
Progressive Offenlegung in der Praxis Implementieren Sie progressive Offenlegung auf drei Ebenen:
- Fertigkeitsauswahl — laden Sie nur Namen und Beschreibungen beim Start; aktivieren Sie den vollständigen Fertigkeitsinhalt bei Bedarf.
- Dokumentenladen — laden Sie zuerst Zusammenfassungen; rufen Sie Detailabschnitte nur ab, wenn die Aufgabe sie erfordert.
- Aufbewahrung von Werkzeugergebnissen — behalten Sie die letzten Ergebnisse vollständig; komprimieren oder entfernen Sie ältere Ergebnisse.
Halten Sie die Grenze sauber: Wenn eine Fertigkeit oder ein Dokument aktiviert wird, laden Sie es vollständig und nicht teilweise – teilweises Laden erzeugt verwirrende Lücken, die die Schlussfolgerungsqualität beeinträchtigen.
Kontextqualität versus Quantität
Lehnen Sie die Annahme ab, dass größere Kontextfenster Speicherprobleme lösen. Die Verarbeitungskosten steigen unverhältnismäßig mit der Kontextlänge – nicht nur lineare Kostenskalierung, sondern auch verschlechterte Modellleistung jenseits effektiver Kapazitätsschwellen. Lange Eingaben bleiben selbst mit Prefix-Caching teuer.
Wenden Sie den Signaldichtetest an: Fragen Sie für jedes Kontextelement, ob seine Entfernung die Modellausgabe ändern würde. Wenn nicht, entfernen Sie es. Redundanter Inhalt verschwendet nicht nur Tokens – er verdünnt aktiv die Aufmerksamkeit von Inhalten mit hohem Signalgehalt.
Praktische Anleitung
Dieser Abschnitt bietet konzeptionelle Anwendungsratschläge. Verweise auf operative Fertigkeiten sind explizit.
Nachdenken über eine Kontextentscheidung
Wenn eine kontextbezogene Designentscheidung getroffen werden muss, trennen Sie die konzeptionelle Frage von der operativen. Die konzeptionelle Frage ist "was bedeutet das und warum ist es wichtig"; die operative Frage ist "welche spezifische Technik wenden wir an". Verwenden Sie diese Fertigkeit, um die erste zu beantworten; leiten Sie an die spezialisierte Fertigkeit weiter, die die zweite besitzt.
Zum Beispiel hat die Entscheidung, ob eine lange Agentensitzung zusammengefasst werden soll, zwei Teile: (1) warum eine Zusammenfassung überhaupt nötig ist (Aufmerksamkeitsbudget ist endlich, U-förmige Kurve verschlechtert mittleren Inhalt, Signaldichte ist wichtiger als Volumen – diese Fertigkeit) und (2) welche Komprimierungsstrategie den richtigen Zustand bewahrt und bei welchem Auslastungsschwellwert sie ausgelöst wird (context-compression).
Lesereihenfolge für neue Mitwirkende
Ein Mitwirkender, der zum ersten Mal mit Context Engineering in Kontakt kommt, sollte lesen:
- Diese Fertigkeit, um den Rahmen des Aufmerksamkeitsbudgets und die U-förmige Kurve zu verinnerlichen.
context-degradation, um zu sehen, wie Kontextfehler in der Praxis aussehen und wie man sie diagnostiziert.- Zwei oder drei von
context-optimization,context-compression,filesystem-context,memory-systems, je nachdem, welches operative Anliegen für ihr Projekt am relevantesten ist.
Das Überspringen von Schritt 1 erzeugt Operateure, die Techniken anwenden, ohne zu verstehen, warum; das Überspringen der operativen Fertigkeiten erzeugt Theoretiker, die nicht wissen, welche Technik zu welchem Fehlermodus passt.
Beispiele
Beispiel 1: Organisieren von Systemprompts
Veranschaulicht den konzeptionellen Punkt, dass kritische Einschränkungen an aufmerksamkeitsbegünstigten Positionen (Anfang und Ende) gehören und dass explizite Abschnittsgrenzen dem Modell helfen, den Prompt zu parsen:
<HINTERGRUNDINFORMATIONEN>
Sie sind ein Python-Experte, der ein Entwicklungsteam unterstützt.
Aktuelles Projekt: Datenverarbeitungspipeline in Python 3.9+
</HINTERGRUNDINFORMATIONEN>
<ANWEISUNGEN>
- Schreiben Sie sauberen, idiomatischen Python-Code
- Fügen Sie Typannotationen für Funktionssignaturen hinzu
- Fügen Sie Docstrings für öffentliche Funktionen hinzu
- Befolgen Sie die PEP 8-Stilrichtlinien
</ANWEISUNGEN>
<AUSGABEBESCHREIBUNG>
- Geben Sie Codeblöcke mit Syntaxhervorhebung aus.
- Erklären Sie nicht offensichtliche Entscheidungen in Kommentaren.
</AUSGABEBESCHREIBUNG>
Beispiel 2: Das Aufmerksamkeitsbudget als mentales Modell
Ein Modell mit großem Kontext hat keinen gleichmäßig beachteten Kontext. Die effektive Kapazität ist arbeitslastspezifisch, und die U-förmige Kurve benachteiligt Informationen in der Mitte. Wenn Sie entscheiden, wie viel einer vorgelagerten Wissensbasis geladen werden soll, ist dies das mentale Modell: Fragen Sie nicht "wird es passen", fragen Sie "wird das Modell immer noch auf die Teile achten, die wichtig sind".
Die entsprechende operative Frage (welche Technik die Last reduzieren sollte) gehört zu context-optimization.
Richtlinien
- Behandeln Sie Kontext als endliche Ressource mit abnehmendem Grenznutzen.
- Platzieren Sie kritische Informationen an aufmerksamkeitsbegünstigten Positionen (Anfang und Ende).
- Verwenden Sie progressive Offenlegung, um das Laden bis zum Bedarf hinauszuzögern.
- Organisieren Sie Systemprompts mit klaren Abschnittsgrenzen.
- Überwachen Sie die Kontextnutzung während der Entwicklung.
- Implementieren Sie Kompaktierungsauslöser bei 70-80 % Auslastung.
- Entwerfen Sie für Kontextverschlechterung, anstatt zu hoffen, sie zu vermeiden.
- Bevorzugen Sie kleineren Kontext mit hohem Signalgehalt gegenüber größerem Kontext mit geringem Signalgehalt.
Fallstricke
-
Nominales Fenster ist nicht effektive Kapazität: Ein Modell, das ein großes Kontextfenster bewirbt, kann sich bei komplexen Abruf- oder Argumentationsaufgaben lange vor dieser Grenze verschlechtern. Budgetieren Sie unterhalb des nominalen Fensters, bis Ihre eigenen Verschlechterungstests das Gegenteil beweisen.
-
Zeichenbasierte Tokenschätzungen driften leise ab: Die Faustregel ~4 Zeichen/Token für englische Prosa bricht bei Code (2-3 Zeichen/Token), URLs und Dateipfaden (jeder Schrägstrich, Punkt und Doppelpunkt ist ein separates Token) und nicht-englischem Text (oft 1-2 Zeichen/Token) zusammen. Verwenden Sie den tatsächlichen Tokenizer des Anbieters (z. B. tiktoken für OpenAI-Modelle, Anthropics Token-Zähl-API) für jede budgetkritische Berechnung.
-
Werkzeugschemata blähen sich nach JSON-Serialisierung um das 2-3-fache auf: Eine Werkzeugdefinition, die im Quellcode kompakt aussieht, expandiert bei der Serialisierung erheblich – Klammern, Anführungszeichen, Doppelpunkte und Kommas verbrauchen jeweils Tokens. Zehn Werkzeuge mit moderaten Schemata können 5.000-8.000 Tokens verbrauchen, bevor eine einzige Nachricht gesendet wird. Überprüfen Sie die serialisierten Werkzeugtokenzahlen, nicht die Zeilenanzahlen im Quellcode.
-
Nachrichtenverlauf bläht sich in agentischen Schleifen leise auf: Jeder Werkzeugaufruf fügt sowohl die Anfrage als auch die vollständige Antwort zum Verlauf hinzu. Nach 20-30 Iterationen kann der Verlauf 70-80 % des Fensters verbrauchen, während der Agent keine sichtbaren Symptome zeigt, bis die Argumentationsqualität zusammenbricht. Setzen Sie eine harte Token-Obergrenze für den Verlauf und lösen Sie die Kompaktierung proaktiv aus.
-
Kritische Anweisungen in der Mitte gehen verloren: Die U-förmige Aufmerksamkeitskurve bedeutet, dass die Mitte des Kontexts 10-40 % geringere Abrufgenauigkeit aufweist als Anfang und Ende. Platzieren Sie niemals Sicherheitseinschränkungen, Ausgabeformatanforderungen oder Verhaltensleitplanken in der Mitte eines langen Systemprompts – verankern Sie sie oben oder unten.
-
Progressive Offenlegung, die zu eifrig lädt, macht ihren Zweck zunichte: Das Laden jeder "potenziell relevanten" Fertigkeit oder jedes Dokuments beim ersten Hinweis auf Relevanz erzeugt das Problem des Kontextstopfens neu. Setzen Sie strenge Aktivierungsschwellen – eine Fertigkeit sollte nur geladen werden, wenn die Aufgabe explizit ihren Auslösebedingungen entspricht, nicht wenn das Thema nur angrenzend ist.
-
Das Mischen von Anweisungshöhen verursacht inkonsistentes Verhalten: Die Kombination hyperspezifischer Regeln ("verwende immer genau 3 Aufzählungspunkte") mit vagen Prinzipien ("schreibe klaren Code") sendet widersprüchliche Signale. Wählen Sie eine Höhe und bleiben Sie dabei; mischen Sie nicht niedrige und hohe Anweisungen im selben Prompt.
Verwandte Fertigkeiten
context-degradation– Diagnose und Behebung von Aufmerksamkeitsfehlerncontext-optimization– Reduzierung des Tokenverbrauchscontext-compression– Komprimierung des Agentengedächtnissesfilesystem-context– Dateibasiertes Kontextmanagementmemory-systems– Externes Gedächtnis und Wiederherstellungproject-development– Projektstruktur und Architekturentscheidungen
Jede dieser Fertigkeiten enthält operative Anleitungen, die auf dem konzeptionellen Rahmen dieser Fertigkeit aufbauen. Verwenden Sie diese Fertigkeit, um die Grundsätze zu verstehen; verwenden Sie die spezialisierten Fertigkeiten, um die Arbeit zu erledigen.