View a markdown version of this page

Mid-conversation messaggi di sistema - Amazon Bedrock

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Mid-conversation messaggi di sistema

È possibile aggiungere {"role": "system", ...} messaggi all'array. messages Questo aggiunge o aggiorna le istruzioni di sistema durante una conversazione senza invalidare il prefisso memorizzato nella cache.

In precedenza, le istruzioni di sistema potevano essere fornite solo tramite il parametro di primo livello. system In questo modo è possibile aggiornare le istruzioni senza reimpostare il contesto precedente.

Ciò è utile nei flussi di lavoro agentici in cui il modello deve adattarsi man mano che un'attività procede. Gli esempi includono l'introduzione di un nuovo vincolo a metà attività, l'aggiornamento del contesto autorevole o la modifica della guida degli strumenti per i turni successivi.

Modelli supportati

Questa funzionalità è disponibile solo su Claude Opus 4.8. Non è richiesta alcuna intestazione beta. Le richieste che includono role: "system" modelli non supportati restituiscono un. messages[] 400 invalid_request_error

Campi dei messaggi

Campo Tipo Descrizione
role Stringa Obbligatorio. Deve essere system
content Stringa o elenco di blocchi di testo Obbligatorio. Usa una semplice stringa o blocchi di contenuto, come un messaggio utente o assistente.
cache_control Oggetto Opzionale. Stessa semantica del parametro di sistema di primo livello.

Regole di posizionamento

Un {"role": "system"} messaggio in ingresso messages presenta i seguenti vincoli di posizionamento:

  • Non può essere la prima voce inseritamessages. Utilizza il system campo di primo livello per istruzioni valide sin dall'inizio.

  • Deve seguire immediatamente un messaggio utente o un messaggio dell'assistente che termina con l'utilizzo di uno strumento server.

  • Deve essere l'ultimo inserito messages o essere seguito da un turno di assistente.

  • Non può essere adiacente a un altro messaggio di sistema. Non sono consentiti messaggi di sistema consecutivi.

Le richieste che violano queste regole di posizionamento restituiscono un400 invalid_request_error.

Regole sui contenuti

System-role il contenuto del messaggio supporta solo blocchi di testo. Immagini, documenti, blocchi di strumenti e citazioni non sono supportati.

Impostato content su una stringa semplice o su blocchi di contenuto. Le istruzioni si applicano da quel momento della conversazione in poi. Usa il system campo di primo livello per le istruzioni che dovrebbero essere applicate all'intera conversazione e utilizza i messaggi di sistema a metà conversazione per le istruzioni che diventano pertinenti in seguito.

Caching dei prompt

Mid-conversation i messaggi di sistema sono progettati per funzionare con il prompt caching. Memorizza nella cache il prefisso stable come al solito cache_control inserendolo nell'ultimo blocco che rimane invariato tra le richieste. Quindi aggiungi il messaggio di sistema dopo quel punto di interruzione. Poiché la nuova istruzione appare dopo il prefisso memorizzato nella cache, non modifica l'hash del prefisso e la cache può comunque essere visualizzata.

Una volta che un messaggio di sistema a metà conversazione diventa parte della cronologia stabile, può essere letto dalla cache nei turni successivi. Evita di modificare o rimuovere un messaggio di sistema inviato in precedenza a metà conversazione, poiché la modifica dei messaggi precedenti invalida la cache da quel momento in poi.

Per ulteriori informazioni sulla memorizzazione nella cache dei prompt, vedere Prompt caching per una più rapida inferenza del modello.

Comportamento di risposta

La forma della risposta è invariata. System-role i messaggi non vengono visualizzati nell'array dei contenuti della risposta. Il modello elabora le istruzioni del sistema ma non le riproduce nella sua risposta.

Esempio di codice

Il seguente esempio in Python dimostra come utilizzare i prompt del sistema a metà conversazione con Amazon Bedrock:

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"])