View a markdown version of this page

Mid-conversation mensagens do sistema - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Mid-conversation mensagens do sistema

Você pode acrescentar {"role": "system", ...} mensagens à matriz. messages Isso adiciona ou atualiza as instruções do sistema no meio de uma conversa sem invalidar o prefixo em cache.

Anteriormente, as instruções do sistema só podiam ser fornecidas por meio do system parâmetro de nível superior. Isso possibilita atualizar as instruções sem redefinir o contexto anterior.

Isso é útil em fluxos de trabalho agentes em que o modelo precisa se adaptar à medida que a tarefa progride. Os exemplos incluem a introdução de uma nova restrição no meio da tarefa, a atualização do contexto autoritário ou a alteração da orientação da ferramenta para turnos posteriores.

Modelos compatíveis

Esse recurso está disponível somente no Claude Opus 4.8. Nenhum cabeçalho beta é necessário. Solicitações que incluem role: "system" modelos não compatíveis retornam uma400 invalid_request_error. messages[]

Campos de mensagem

Campo Tipo Descrição
role String Obrigatório. Deve ser system
content Cadeia de caracteres ou lista de blocos de texto Obrigatório. Use uma sequência de caracteres simples ou blocos de conteúdo, da mesma forma que uma mensagem de usuário ou assistente.
cache_control Objeto Opcional. Mesma semântica do parâmetro de sistema de nível superior.

Regras de posicionamento

Uma {"role": "system"} mensagem recebida messages tem as seguintes restrições de posicionamento:

  • Não pode ser a primeira entrada emmessages. Use o system campo de nível superior para obter instruções que se aplicam desde o início.

  • Deve seguir imediatamente uma mensagem do usuário ou uma mensagem do assistente que termine com o uso de uma ferramenta de servidor.

  • Deve ser a última entrada messages ou ser seguida por um turno de assistente.

  • Não pode ser adjacente a outra mensagem do sistema. Mensagens consecutivas do sistema não são permitidas.

Solicitações que violam essas regras de posicionamento retornam uma400 invalid_request_error.

Regras de conteúdo

System-role o conteúdo da mensagem suporta somente blocos de texto. Não há suporte para imagens, documentos, blocos de ferramentas e citações.

contentDefina como uma string simples ou blocos de conteúdo. A instrução se aplica a partir desse ponto da conversa. Use o system campo de nível superior para obter instruções que devem ser aplicadas a toda a conversa e use as mensagens do sistema no meio da conversa para obter instruções que se tornem relevantes posteriormente.

Armazenamento em cache de prompts

Mid-conversation as mensagens do sistema são projetadas para funcionar com cache imediato. Armazene em cache o prefixo estável, como de costume, colocando-o cache_control no último bloco que permanece inalterado em todas as solicitações. Em seguida, anexe a mensagem do sistema após esse ponto de interrupção. Como a nova instrução aparece após o prefixo em cache, ela não altera o hash do prefixo e o cache ainda pode funcionar.

Quando uma mensagem do sistema no meio da conversa se torna parte do histórico estável, ela mesma pode ser lida do cache em turnos subsequentes. Evite editar ou remover uma mensagem do sistema enviada anteriormente no meio da conversa, pois a alteração de mensagens anteriores invalida o cache daquele ponto em diante.

Para obter mais informações sobre o cache de solicitações, consulte Cache de solicitações para inferência mais rápida de modelos.

Comportamento de resposta

O formato da resposta permanece inalterado. System-role as mensagens não aparecem na matriz de conteúdo da resposta. O modelo processa as instruções do sistema, mas não as repete em sua resposta.

Exemplo de código

O exemplo de Python a seguir demonstra como usar os prompts do sistema no meio de uma conversa com o 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"])