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 während einer Konversation Systemanweisungen 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 in agentischen Arbeitsabläufen nützlich, bei denen sich das Modell im Verlauf einer Aufgabe anpassen muss. Beispiele hierfür sind die Einführung einer neuen Einschränkung während einer Aufgabe, die Aktualisierung des maßgeblichen Kontextes oder die Änderung der Werkzeugführung für spätere Aufgaben.
Unterstützte Modelle
Diese Funktion ist nur in Claude Opus 4.8 verfügbar. Es ist kein Beta-Header erforderlich. Anfragen, die role: "system" in messages[] nicht unterstützte Modelle enthalten, geben einen 400 invalid_request_error zurück.
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. Gleiche Semantik wie der Systemparameter der obersten Ebene. |
Regeln für die Platzierung
Für eine {"role": "system"} Nachricht in messages gelten die folgenden Platzierungsbeschränkungen:
Es kann nicht der erste Eintrag sein
messages. Verwenden Sie dassystemFeld auf oberster Ebene für Anweisungen, die von Anfang an gelten.Muss unmittelbar auf eine Benutzernachricht oder eine Assistentenmeldung folgen, die mit der Verwendung des Servertools endet.
Muss entweder der letzte Eintrag sein
messagesoder es muss ein Assistent an der Reihe sein.Darf nicht neben einer anderen Systemmeldung stehen. Aufeinanderfolgende Systemnachrichten sind nicht zulässig.
Anfragen, die gegen diese Platzierungsregeln verstoßen, geben einen 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.
Stellen content Sie entweder eine einfache Zeichenfolge oder Inhaltsblöcke ein. Die Anweisung gilt ab diesem Zeitpunkt 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 während der Konversation für Anweisungen, die später relevant werden.
Prompt-Caching
Mid-conversation Systemnachrichten sind so konzipiert, dass sie mit dem Zwischenspeichern von Eingabeaufforderungen 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 Systemmeldung nach diesem Breakpoint an. Da die neue Anweisung nach dem zwischengespeicherten Präfix erscheint, ändert sie den Präfix-Hash nicht, und der Cache kann trotzdem zuschlagen.
Sobald eine Systemnachricht während einer Konversation Teil der stabilen Historie wird, kann sie bei nachfolgenden Runden selbst aus dem Cache gelesen werden. Vermeiden Sie es, eine zuvor während einer 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 Aufforderungen finden Sie unter Zwischenspeichern von Eingabeaufforderungen für eine schnellere Modellinferenz.
Verhalten der Reaktion
Die Form der Antwort ist unverändert. System-role Nachrichten erscheinen nicht im Antwort-Inhaltsarray. Das Modell verarbeitet die Systemanweisungen, gibt sie jedoch nicht in seiner Antwort 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"])