View a markdown version of this page

Mid-conversation Systemnachrichten - Amazon Bedrock

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 seinmessages. Verwenden Sie das system Feld 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 messages oder 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"])