StartseiteArtikel

„Kontext-Engineering“ ist in Silicon Valley heiss um die Ohren, und Karpathy hat es persönlich unterstützt. Dadurch ist Prompt-Engineering plötzlich aus der Mode gekommen.

新智元2025-07-06 10:39
Nach der Prompt-Engineering ist jetzt die "Kontext-Engineering" wieder populär geworden! Dieses Konzept gefällt Silicon Valley-Größen wie Karpathy sehr und kann als "vollkommen neues Atmosphärenprogrammieren" bezeichnet werden. Der Schlüssel zum Erfolg oder Misserfolg eines Agenten liegt nicht in raffinierten Codes, sondern in der Kontext-Engineering.

Was in Silicon Valley derzeit heiß begehrt wird, ist nicht mehr die Prompt-Engineering, sondern die Kontext-Engineering (Context Engineering)!

Selbst der AI-Guru Karpathy hat seiner Stimme für die "Kontext-Engineering" abgegeben.

Außerdem hat der Shopify-CEO Tobias Lütke erklärt, dass er die "Kontext-Engineering" lieber mag, da sie eine Kernkompetenz präzise beschreibt –

die Kunst, durch die Bereitstellung vollständiger Hintergrundinformationen für eine Aufgabe es dem Large Language Model (LLM) zu ermöglichen, Probleme vernünftig zu lösen.

Warum ist die "Kontext-Engineering" plötzlich über Nacht so populär geworden?

Die Kontext-Engineering wird plötzlich berühmt

Der Grund dafür liegt in der Entstehung von AI-Agenten.

Der OpenAI-Präsident Greg Brockman hat mehrmals öffentlich erklärt, dass "2025 das Jahr der Entstehung von AI-Agenten ist".

Der entscheidende Faktor für den Erfolg oder Misserfolg eines Agenten ist die "Qualität des Kontexts", der bereitgestellt wird. Das heißt, die Informationen, die in das "begrenzte Arbeitsgedächtnis" geladen werden, sind umso wichtiger.

Die meisten Fälle von fehlgeschlagenen AI-Agenten sind nicht das Versagen des Modells, sondern des Kontexts!

Was ist also der Kontext?

Um die "Kontext-Engineering" zu verstehen, muss man zunächst die Definition des "Kontexts" erweitern.

Es ist nicht nur die einzelne Prompt, die Sie an das LLM senden. Man kann es als "alles, was das Modell vor der Generierung einer Antwort sieht" betrachten, wie folgt:

Anweisungen/System-Prompt: Die anfängliche Anweisungsmenge, die das Verhalten des Modells in einem Dialog definiert, kann/ sollte Beispiele, Regeln usw. enthalten.

Benutzer-Prompt: Die aktuelle Aufgabe oder Frage des Benutzers.

Status/Verlauf (Kurzzeitgedächtnis): Der aktuelle Dialog, einschließlich der Antworten des Benutzers und des Modells bis zu diesem Zeitpunkt.

Langzeitgedächtnis: Ein dauerhaftes Wissensrepository, das über mehrere frühere Dialoge gesammelt wurde, enthält gelernten Benutzerpräferenzen, Zusammenfassungen früherer Projekte oder Fakten, die für die zukünftige Verwendung behalten werden sollen.

Abgerufene Informationen (RAG): Externe, Echtzeitwissen, relevante Informationen aus Dokumenten, Datenbanken oder APIs, die für die Beantwortung bestimmter Fragen verwendet werden.

Verfügbare Tools: Die Definition aller Funktionen oder eingebauten Tools, die das Modell aufrufen kann, wie z. B. check_inventory, send_email.

Strukturierte Ausgabe: Die Definition des Antwortformats des Modells, z. B. ein JSON-Objekt.

Man kann sehen, dass im Gegensatz zur "Prompt-Engineering", die sich darauf konzentriert, perfekte Anweisungen in einer einzigen Textzeichenfolge zu erstellen, der Bereich der "Kontext-Engineering" viel breiter ist.

Einfach ausgedrückt:

Die "Kontext-Engineering" ist ein Fachgebiet, das sich mit dem Entwurf und Aufbau dynamischer Systeme befasst.

Diese Systeme können zur richtigen Zeit, im richtigen Format die richtigen Informationen und Tools bereitstellen, damit das LLM alles hat, was es für die Erledigung einer Aufgabe benötigt.

Hier sind alle Merkmale der "Kontext-Engineering":

· Es ist ein System, kein String: Der Kontext ist kein statisches Prompt-Template, sondern die Ausgabe eines Systems, das bereits vor dem Hauptaufruf des LLM läuft.

· Es ist dynamisch: Der Kontext wird sofort generiert und auf die aktuelle Aufgabe zugeschnitten. Beispielsweise kann eine Anforderung Kalenderdaten erfordern, während eine andere Anforderung E-Mail-Inhalte oder Suchergebnisse aus dem Internet benötigt.

· Es legt Wert auf die Bereitstellung der richtigen Informationen und Tools zur richtigen Zeit: Die Kernaufgabe besteht darin, sicherzustellen, dass das Modell keine wichtigen Details verpasst (denken Sie an das Prinzip "Schrott rein, Schrott raus"). Das bedeutet, dass dem Modell nur dann Wissen (Informationen) und Fähigkeiten (Tools) zur Verfügung gestellt werden, wenn es notwendig und nützlich ist.

· Es legt Wert auf das Format: Die Art und Weise, wie Informationen dargestellt werden, ist von entscheidender Bedeutung. Eine knappe Zusammenfassung ist weitaus besser als die Auflistung von Rohdaten; eine klare Definition der Schnittstelle eines Tools ist auch viel effektiver als eine vage Anweisung.

Es ist sowohl eine Wissenschaft als auch eine Kunst

In seiner ausführlichen Bewertung hat Karpathy ebenfalls die Ansicht vertreten, dass die "Kontext-Engineering" eine Form der Kunst ist.

Man assoziiert oft den Begriff "Prompt" mit der kurzen Aufgabenbeschreibung, die man im täglichen Gebrauch an ein LLM sendet.

Jedoch ist in jeder industrietauglichen LLM-Anwendung die Kontext-Engineering eine tiefgehende Wissenschaft und auch eine geschickte Kunst.

Der Kern besteht darin, das Kontextfenster für die nächste Aktion mit genau den richtigen Informationen zu füllen.

Man spricht von einer Wissenschaft, weil dazu eine Reihe von Techniken kombiniert werden müssen, darunter:

Aufgabenbeschreibung und -erklärung, Few-Shot-Learning-Beispiele, RAG (Retrieval Augmented Generation), relevante (möglicherweise multimodale) Daten, Tools, Status und Verlauf, Informationskompression usw.

Wenn es zu wenig Informationen gibt oder das Format falsch ist, hat das LLM nicht genug Kontext, um die beste Leistung zu erbringen;

wenn es zu viele Informationen gibt oder diese nicht relevant sind, steigen die Kosten des LLMs und die Leistung sinkt.

Das ist ziemlich komplex.

Man spricht von einer Kunst, weil es von der Intuition und Führung des Entwicklers für die "Eigenschaften" des Large Language Models abhängt.

Außer der Kontext-Engineering selbst muss eine LLM-Anwendung auch:

Das Problem passend in einen Kontrollfluss zerlegen

Das Kontextfenster präzise füllen

Den Aufruf an ein LLM mit der richtigen Art und Fähigkeit verteilen

Den UI/UX-Prozess von "Generieren - Validieren" behandeln

Und vieles mehr – wie z. B. Sicherheitsbarrieren, Systemicherheit, Effektivitätsbewertung, parallele Verarbeitung, Datenvorabruf usw...

Deshalb ist die "Kontext-Engineering" nur ein kleiner Teil einer aufstrebenden, umfangreichen und komplexen Softwareebene.

Diese Softwareebene ist für die Integration und Koordination einzelner LLM-Aufrufe und vieler anderer Operationen verantwortlich, um eine vollständige LLM-Anwendung zu erstellen.

Karpathy hat erklärt, dass es veraltet und völlig falsch ist, solche Anwendungen leichtfertig als "ChatGPT-Wrapper" zu bezeichnen.

Einige Internetnutzer haben darüber gespottet, dass die Kontext-Engineering die neue "Stimmungsprogrammierung" ist.

Karpathy hat geantwortet: "Ich will nicht unbedingt ein neues Wort einführen. Ich finde nur, dass man, wenn man von 'Prompt' spricht, dazu neigt, eine eigentlich ziemlich komplexe Komponente zu vereinfachen."

Sie würden ein Prompt verwenden, um ein LLM zu fragen, "Warum ist der Himmel blau?". Aber eine Anwendung muss für das Large Language Model einen Kontext aufbauen, um die für sie zugeschnittenen Aufgaben zu lösen.

Der Erfolg oder Misserfolg eines Agenten hängt davon ab

Tatsächlich liegt das Geheimnis für die Schaffung eines wirklich effizienten AI-Agenten nicht in der Komplexität des Codes, sondern in der Qualität des von Ihnen bereitgestellten Kontexts.

Der grundlegende Unterschied zwischen einem unzureichenden Demonstrationsprodukt und einem beeindruckenden Agenten liegt in der Qualität des bereitgestellten Kontexts.

Stellen Sie sich vor, ein AI-Assistent muss auf der Grundlage einer einfachen E-Mail eine Besprechung planen:

Hallo, wollte ich fragen, ob Sie morgen Zeit haben, kurz zusammenzukommen?

Der "unzureichende Demonstrations"-Agent erhält einen sehr dürftigen Kontext. Er kann nur die Anfrage des Benutzers sehen und nichts anderes.

Sein Code kann voll funktionsfähig sein – er ruft ein LLM auf und erhält eine Antwort, aber die Ausgabe ist nicht hilfreich und sehr mechanisch:

Vielen Dank für Ihre Nachricht. Ich bin morgen verfügbar. Wann möchten Sie die Besprechung vereinbaren?

Schauen wir uns nun den beeindruckenden Agenten an, der von einem umfangreichen Kontext unterstützt wird.

Die Hauptaufgabe des Codes besteht nicht darin, über die Antwort nachzudenken, sondern die Informationen zu sammeln, die das LLM für das Erreichen des Ziels benötigt. Bevor Sie das LLM aufrufen, erweitern Sie den Kontext, so dass er enthält:

Die Hauptaufgabe des Codes besteht nicht darin, zu entscheiden, wie man antwortet, sondern die Informationen zu sammeln, die das LLM für das Erreichen des Ziels benötigt.

Bevor Sie das LLM aufrufen, erweitern Sie den Kontext, einschließlich:

Kalenderinformationen: Zeigt, dass Sie den ganzen Tag voll ausgebucht sind

Frühere E-Mails mit dieser Person: Um zu entscheiden, welchen informellen Tonfall man verwenden sollte

Kontaktliste: Um zu erkennen, dass die andere Person ein wichtiger Geschäftspartner ist

Tools für send_invite oder send_email

Dann können Sie eine solche Antwort generieren:

Hallo, Jim! Ich bin morgen den ganzen Tag ausgebucht, es folgen eine Reihe von Besprechungen. Ich habe Donnerstag Vormittag Zeit. Passt das für Sie? Ich habe Ihnen die Einladung geschickt, schauen Sie, ob dieser Zeitpunkt passt.

Das Geheimnis für diesen beeindruckenden Effekt liegt nicht in einem intelligenteren Modell oder einer besseren Algorithmus, sondern in der Bereitstellung des richtigen Kontexts für die richtige Aufgabe.

Das ist der Grund, warum die "Kontext-Engineering" immer wichtiger wird.

Deshalb ist der Misserfolg eines Agenten nicht nur das Versagen des Modells, sondern auch des Kontexts.

Um starke und zuverlässige AI-Agenten zu bauen, verlassen wir uns zunehmend weniger auf die Suche nach einem "Alleskönner-Prompt" oder auf die Aktualisierung des Modells.

Dieser Ansatz findet breite Zustimmung bei den Internetnutzern.