Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Mid-conversation Systemnachrichten
Sie können {"role": "system", ...} Nachrichten an das Array anhängen. messages Dadurch werden Systemanweisungen während einer Konversation hinzugefügt oder aktualisiert, ohne dass das zwischengespeicherte Präfix ungültig wird.
Bisher konnten Systemanweisungen nur über den Parameter der obersten Ebene bereitgestellt werden. system Dadurch ist es möglich, Anweisungen zu aktualisieren, ohne den vorherigen Kontext zurückzusetzen.
Dies ist nützlich in agentischen Arbeitsabläufen, bei denen sich das Modell an den Fortschritt einer Aufgabe anpassen muss. Beispiele hierfür sind die Einführung einer neuen Einschränkung während der Aufgabe, die Aktualisierung des verbindlichen Kontextes oder die Änderung der Werkzeugführung für spätere Runden.
Unterstützte Modelle
Diese Funktion ist nur in Claude Opus 4.8 verfügbar. Es ist kein Beta-Header erforderlich. Anfragen, die ein Modell enthaltenrole: "system", das nicht unterstützt wird, geben a 400 invalid_request_error zurück. messages[]
Nachrichtenfelder
| Feld | Typ | Beschreibung |
|---|---|---|
role |
Zeichenfolge | Erforderlich Muss system sein. |
content |
Zeichenfolge oder Liste von Textblöcken | Erforderlich Verwenden Sie eine einfache Zeichenfolge oder Inhaltsblöcke, genau wie eine Benutzer- oder Assistentennachricht. |
cache_control |
Objekt | Optional. Dieselbe Semantik wie der Systemparameter der obersten Ebene. |
Regeln für die Platzierung
Für {"role": "system"} eingehende Nachrichten messages gelten die folgenden Platzierungsbeschränkungen:
Kann nicht der erste Eintrag in sein
messages. Verwenden Sie dassystemFeld auf oberster Ebene für Anweisungen, die von Anfang an gelten.Muss unmittelbar auf eine Benutzermeldung oder eine Assistentennachricht folgen, die mit der Verwendung eines Servertools endet.
Muss entweder der letzte Eintrag sein,
messagesoder ein Assistent muss an der Reihe sein.Kann nicht neben einer anderen Systemnachricht stehen. Aufeinanderfolgende Systemnachrichten sind nicht zulässig.
Anfragen, die gegen diese Platzierungsregeln verstoßen, geben a zurück400 invalid_request_error.
Regeln für den Inhalt
System-role Der Nachrichteninhalt unterstützt nur Textblöcke. Bilder, Dokumente, Werkzeugblöcke und Zitate werden nicht unterstützt.
Legen content Sie entweder eine einfache Zeichenfolge oder Inhaltsblöcke fest. Die Anweisung gilt ab diesem Zeitpunkt in der Konversation. Verwenden Sie das system Feld auf oberster Ebene für Anweisungen, die für die gesamte Konversation gelten sollten, und verwenden Sie Systemnachrichten, die sich während der Konversation befinden, für Anweisungen, die später relevant werden.
Prompt-Caching
Mid-conversation Systemnachrichten sind so konzipiert, dass sie mit sofortiger Zwischenspeicherung funktionieren. Zwischenspeichern Sie das stabile Präfix wie gewohnt, indem Sie es cache_control auf den letzten Block setzen, der bei allen Anfragen unverändert bleibt. Hängen Sie dann die Systemnachricht nach diesem Breakpoint an. Da die neue Anweisung hinter dem zwischengespeicherten Präfix erscheint, ändert sie den Präfix-Hash nicht, und der Cache kann immer noch Treffer verursachen.
Sobald eine Systemnachricht während einer Konversation Teil der stabilen Historie wird, kann sie bei nachfolgenden Zügen selbst aus dem Cache gelesen werden. Vermeiden Sie es, eine zuvor während der Konversation gesendete Systemnachricht zu bearbeiten oder zu entfernen, da das Ändern früherer Nachrichten den Cache ab diesem Zeitpunkt ungültig macht.
Weitere Informationen zum Zwischenspeichern von Eingabeaufforderungen finden Sie unter Zwischenspeicherung von Eingabeaufforderungen für schnellere Modellinferenzen.
Verhalten der Antwort
Die Form der Antwort ist unverändert. System-role Nachrichten werden nicht im Inhaltsarray der Antwort angezeigt. Das Modell verarbeitet die Systembefehle, gibt sie jedoch in seiner Antwort nicht wieder.
Codebeispiel
Das folgende Python-Beispiel zeigt, wie Sie Systemaufforderungen während einer Konversation mit Amazon Bedrock verwenden:
import boto3 import json client = boto3.client("bedrock-runtime", region_name="us-east-1") response = client.invoke_model( modelId="us.anthropic.claude-opus-4-8", body=json.dumps({ "anthropic_version": "bedrock-2023-05-31", "max_tokens": 1024, "system": "You are a helpful travel planning assistant.", "messages": [ {"role": "user", "content": "Help me plan a week in Paris."}, {"role": "assistant", "content": "I'd love to help! What kind of experience are you looking for?"}, {"role": "user", "content": "I want to see the major sights. What should I do on day one?"}, {"role": "system", "content": "The user has a budget of $150/day. Only suggest options that fit within this budget. Prioritize free attractions and affordable dining."} ] }) ) result = json.loads(response["body"].read()) print(result["content"][0]["text"])