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