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 avança. Os exemplos incluem a introdução de uma nova restrição no meio da tarefa, a atualização do contexto oficial 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 suportados retornam a. messages[] 400 invalid_request_error

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 string 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 nível superior do sistema.

Regras de posicionamento

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

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

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

  • Deve ser a última entrada messages ou ser seguida por um turno 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 a. 400 invalid_request_error

Regras de conteúdo

System-role o conteúdo da mensagem suporta somente blocos de texto. Imagens, documentos, blocos de ferramentas e citações não são suportados.

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 se aplicar 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 o cache imediato. Armazene em cache o prefixo estável, como de costume, colocando-o cache_control no último bloco que permanece inalterado nas 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 ser atingido.

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

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

Comportamento de resposta

A forma da resposta permanece inalterada. 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 solicitações 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"])