

# Técnicas avançadas de geração de prompts
<a name="advanced-prompting-techniques"></a>

Essas seções fornecem orientação avançada sobre como melhorar a qualidade de seus prompts e aproveitar os principais recursos, como o pensamento estendido.

## Usar o modo de raciocínio
<a name="use-reasoning-mode"></a>

Os modelos do Amazon Nova 2 oferecem um modo de raciocínio opcional que aprimora a abordagem do modelo para a resolução de problemas complexos, permitindo que ele resolva os problemas sistematicamente antes de responder. Aproveitar o modo de raciocínio do modelo é um recurso eficaz de melhorar a precisão de seus prompts.

**Quando usá-lo:** o modo de raciocínio é recomendado para tarefas complexas, como casos de uso com:
+ **Várias etapas de raciocínio:** provas matemáticas, design de algoritmos, arquitetura do sistema
+ **Informações de referência cruzada:** análise de documentos, comparação de opções, avaliação de compensações
+ **Cálculos suscetíveis a erros:** modelagem financeira, análise de dados, depuração complexa
+ **Planejamento com restrições:** otimização de recursos, gerenciamento de dependências, avaliação de riscos
+ **Classificações complexas:** categorização de vários rótulos, taxonomias hierárquicas, limites de decisão refinados
+ **Cenários de chamada de ferramentas:** fluxos de trabalho de API em várias etapas, otimização de consultas de banco de dados, integrações coordenadas de sistemas

**nota**  
Para obter mais informações sobre o modo de raciocínio, consulte [Uso do raciocínio](using-converse-api.md#converse-api-reasoning).

## Adotar uma abordagem de cima para baixo (top-down)
<a name="top-down-approach"></a>

Para situações em que o modelo precisa avaliar várias abordagens para resolver o problema, instrua-o a adotar uma abordagem de **cima para baixo.**
+ Os modelos do Amazon Nova 2 têm melhor desempenho quando o modelo começa com uma visão macro e depois a decompõe em subproblemas ou etapas menores e mais detalhadas.
+ Direcione explicitamente o modelo para primeiro identificar o objetivo principal e, em seguida, decompô-lo em componentes gerenciáveis antes de analisar os detalhes de cada parte.
+ Essa abordagem estruturada ajuda o modelo a organizar seu pensamento e a gerar encadeamentos de raciocínio mais coerentes.

**Exemplo:**

```
{{User query}}. Start with the big picture and break it down into progressively smaller, more detailed subproblems or steps.
```

## Direcionar o encadeamento de raciocínio
<a name="steer-chain-of-thought"></a>

Embora o modo de raciocínio forneça maior precisão por meio da solução sistemática de problemas, há cenários específicos em que o uso de prompts de encadeamento de raciocínio (CoT) no modo sem raciocínio pode atender melhor às suas necessidades.

**Quando usar:**
+ **Transparência e auditabilidade:** quando você deseja ver, verificar ou auditar o processo de raciocínio do modelo, o CoT fornece visibilidade total de cada etapa. Isso é fundamental para setores regulamentados, decisões de alto risco ou quando você deseja documentar a lógica por trás de uma resposta.
+ **Estruturas de raciocínio personalizadas:** use o CoT para aplicar padrões ou metodologias de raciocínio específicos. Você pode orientar o modelo para seguir as estruturas de decisão da sua organização, usar abordagens de solução de problemas específicas do domínio ou garantir que os fatores sejam considerados em uma ordem específica.
+ **Desenvolvimento e depuração de prompts:** durante a fase de engenharia de prompts, o CoT ajuda você a entender como o modelo aborda os problemas, a identificar onde o raciocínio falha e a iterar seus prompts com mais eficiência.
+ **Abordagens híbridas:** considere usar o CoT durante o desenvolvimento para aperfeiçoar seus prompts e, em seguida, migrar para o modo de raciocínio na implantação em produção assim que houver confiança na abordagem do modelo para o seu caso de uso específico.

**nota**  
Nem todas as tarefas exigem o CoT. Para tarefas mais simples, permita que o modelo use seu próprio processo de raciocínio.

**Direcionamento do CoT do modelo:**

```
{{User query}} Please follow these steps:

1. {{Step 1}}
2. {{Step 2}}
...
```

## Usar janelas de contexto longo
<a name="utilizing-long-context"></a>

Os modelos do Amazon Nova 2 possuem suporte para um tamanho de contexto de 1 milhão de tokens e apresentam excelente desempenho na compreensão de código e em respostas a perguntas sobre documentos extensos. O desempenho (incluindo a adesão aos prompts do sistema e o uso de ferramentas) pode apresentar um pequeno declínio conforme o tamanho do contexto aumenta.

**Como usar:**
+ **Coloque dados longos no início**: posicione seus documentos e entradas longos próximo do início do seu prompt. Coloque-os antes da sua consulta, instruções e exemplos.
+ **Coloque as instruções no final**: posicione suas instruções no final do prompt. O modelo tem melhor desempenho quando o contexto é fornecido primeiro e as instruções são fornecidas no final.
+ **Estruture marcadores de início e fim do conteúdo do documento**: use marcadores de início e fim, como `DOCUMENT {idx} START` e `DOCUMENT {idx} END`, para indicar o início e o fim de um documento longo, em que \$1idx\$1 representa o índice do documento específico.

**Exemplo de modelo:**

```
// Provide your long inputs at the top of your prompt
BEGIN INPUT DOCUMENTS

DOCUMENT 1 START
{{Your document}}
DOCUMENT 1 END

END INPUT DOCUMENTS

// Then specify your query and instructions
BEGIN QUESTION
{{User query}}
END QUESTION

BEGIN INSTRUCTIONS
{{Instructions}}
END INSTRUCTIONS
```

## Fundamentar as respostas no texto de apoio
<a name="ground-answers-supporting-text"></a>

Recomendamos que você forneça ao modelo informações confiáveis relevantes para a consulta de entrada. Essas informações, junto com a consulta de entrada, geralmente fazem parte do sistema denominado geração aumentada via recuperação (RAG).
+ Nesse processo, alguns documentos ou informações relevantes e contextuais são acrescentados ao prompt real do usuário para que o modelo obtenha conteúdo confiável para gerar uma resposta relevante e precisa.
+ Instruir o Amazon Nova 2 a responder usando um texto de referência de uma fonte confiável pode orientá-lo a compor sua resposta com base no material fornecido e garantir que sua resposta seja fundamentada em informações precisas e relevantes, aumentando a confiabilidade e a credibilidade do conteúdo gerado.
+ Além disso, usar um texto de referência pode ajudar a evitar alucinações, melhorando assim a qualidade geral e a confiabilidade das respostas. Para minimizar a alucinação, recomendamos mencionar `DO NOT USE INFORMATION THAT IS NOT IN REFERENCE TEXTS!` explicitamente nas instruções do modelo.

Modelo de prompt

```
System:
In this session, the model has access to search results and a user's question, your job is to answer the user's question using only information from the search results. 

Model Instructions:
- DO NOT USE INFORMATION THAT IS NOT IN SEARCH RESULTS!

User: {Query} 
Resource: Search Results: {Reference texts}
```

### Exemplo: fornecer um contexto de ancoragem ajuda a evitar que o modelo tenha alucinações
<a name="grounding-example"></a>

Este exemplo mostra como o contexto de ancoragem pode impedir que o modelo tenha alucinações.

Sistema:

```
In this session, the model has access to search results and a user's question, your job is to answer the user's question using only information from the search results. Model Instructions:- DO NOT USE INFORMATION THAT IS NOT IN SEARCH RESULTS!
```

Usuário:

```
What were the economic impacts of the COVID-19 pandemic on the United States in 2020?

Resource: Search Results: In 2020, the United States experienced significant economic impacts due to the COVID-19 pandemic. The U.S. economy contracted by 3.5% in 2020, according to the Bureau of Economic Analysis. Unemployment rates surged to 14.7% in April 2020, the highest since the Great Depression, before gradually declining. Small businesses faced severe challenges, with millions of firms closing permanently. Additionally, consumer spending dropped sharply as people reduced non-essential expenditures and saved more. Government intervention played a critical role in mitigating these impacts through stimulus packages and support programs, such as the Paycheck Protection Program (PPP) for small businesses and direct payments to individuals. Despite these measures, the economic recovery remained uneven across different sectors and regions.
```

### Fundamentar usando marcadores de citação
<a name="grounding-citations"></a>

Para tarefas de documentos longos, recomendamos que você instrua o modelo do Amazon Nova 2 a fundamentar suas respostas usando as citações das seções relevantes dos documentos antes de prosseguir com a tarefa.

Essa abordagem ajuda o modelo a se concentrar nas informações mais pertinentes e evitar se distrair com conteúdo irrelevante. Quando você solicita que o modelo fundamente sua resposta, as seções que podem ser citadas devem ser numeradas. Como, por exemplo, `Passage %[1]%`, `Passage %[2]%` e assim por diante.

#### Exemplos: uso de marcadores de citação
<a name="citations-example"></a>

**Example Prompt de marcadores de citação**  

```
You are an AI financial assistant. Your task is to find patterns and insights from multi-year financial documents 

Passage %[1]%
{{Your document}}

Passage %[2]%
{{Your document}}

## Task:
Analyze my LLC's reports across multiple years to identify significant performance trends, segment growth patterns and strategic shifts.

## Context information:
- You have access to my LLC's annual financial reports (10-K) for multiple fiscal years in PDF format
- These reports contain comprehensive financial data including income statements, balance sheets, cash flow statements and management discussions
- The analysis should focus on year-over-year comparisons to identify meaningful trends
- I operate two business segments, one in Massachusetts and one in New York

Based on the provided Context, extract key financial metrics from each year's reports phrases from the documents.
Place citations as inline markers (e.g., %[1]%, %[2]%, etc.) directly within the relevant parts of the response 
text. Do not include a separate citation section after the response.
## Response Schema:
%% (Extracted Financial Metrics)
%% (Extracted Financial Metrics)
%% (Extracted Financial Metrics)
...
```

Depois de extrair as principais informações com base na tarefa do usuário, você pode usar as métricas financeiras extraídas para responder às perguntas relevantes, conforme mostrado:

**Example Análise de acompanhamento com métricas extraídas**  

```
## Task
Analyze my LLC's financial reports across multiple years to identify significant performance trends, segment growth patterns and strategic shifts.

{{extracted financial metrics}}

## Model Instructions:
- Organize data chronologically to identify meaningful trends
- DO compare segment performance across the five-year period
- DO identify significant strategic shifts or investments mentioned in management discussions
- DO NOT make speculative predictions beyond what is supported by the data
- ALWAYS note any changes in accounting practices or reporting methodologies that might affect year-over-year comparisons

## Response style and format requirements:
- Respond in markdown
- Structure the analysis with clear headings and subheadings
- Present key financial metrics in tabular format showing all five years side-by-side
- Include percentage changes year-over-year for all major metrics
- Create a section dedicated to visualizing the most significant trends (with descriptions of what would be shown in charts)
- Limit the executive summary to 250 words maximum
- Format segment analysis as separate sections with consistent metrics across all segments
- MUST include a Key Insights bullet-pointed list at the end of each major section
```

### Usar a Ancoragem na Web do Nova
<a name="prompting-web-grounding"></a>

Em vez de gerar prompts diretamente de citações para ancorar o modelo no texto de apoio, os modelos do Amazon Nova 2 fornecem uma ferramenta interna de ancoragem na web que pode ser usada. Quando habilitados, os modelos do Amazon Nova 2 consultarão diretamente a web e os gráficos de conhecimento da Amazon e fundamentarão a resposta final com citações.

Para saber mais sobre como aproveitar a Ancoragem na Web do Amazon Nova, você pode consultar o [guia do usuário da Ancoragem na Web do Amazon Nova](https://docs.aws.amazon.com/nova/latest/nova2-userguide/web-grounding.html).

## Gerar saída estruturada
<a name="prompting-structured-output"></a>

Para garantir formatos de saída consistentes e estruturados, você pode usar saídas estruturadas, incluindo formatos como XML, JSON ou Markdown, ou utilizando a funcionalidade de uso de ferramentas.
+ Essa abordagem permite que os sistemas downstream compreendam e processem de forma mais eficaz as saídas geradas pelo modelo.
+ Ao fornecer instruções explícitas ao modelo, as respostas são geradas de forma que sigam um esquema predefinido.

Por exemplo, se o analisador downstream exigir convenções de nomenclatura específicas para as chaves em um objeto JSON, você deverá especificar o esquema de resposta ao final do prompt. Além disso, se você preferir que as respostas estejam no formato JSON sem nenhum texto de preâmbulo, instrua o modelo adequadamente. Ou seja, instrua de forma explícita: **Gere somente a saída JSON. NÃO forneça nenhum preâmbulo.** para garantir uma saída limpa.

**dica**  
Observamos a melhor aderência aos requisitos de formato de dados quando eles são definidos no próprio esquema, em vez de por meio do uso de exemplares (como a especificação de datas no formato AAAA/MM/DD).
Para saídas JSON simples com até dez chaves, você pode encontrar o esquema abaixo. Para esquemas mais complexos, recomendamos que você defina seu esquema por meio de uma ferramenta. O uso da ferramenta utiliza uma técnica chamada decodificação restrita, que aumentará a aderência do modelo a esses esquemas complexos.

### Esquemas comuns de formatação
<a name="common-formatting-schemas"></a>

Confira a seguir alguns exemplos de esquemas comuns de formatação.

------
#### [ JSON ]

```
JSON_format = """Write your response following the JSON format below:

```json
{ 
"key1": "value1",
"key2": "value2",
key3: [{
"key3_1": "value_3_1 written in YYYY/MM/DD format",
"key3_2": "value_3_2 day of the week written in full form",
...}```
"""
```

------
#### [ XML ]

```
XML_format = """Write your response following the XML format below:

<output>
    <task>"task1"</task>
    <subtask>
    <task1_result> ( task 1 result )</task1_result>
    <task2_result> ( task 2 result )</task2_result>
    <task3_result> ( task 3 result )</task3_result>
    </subtask>
    <task>"task2"</task>
    <subtask>
    <task1_result> ( task 1 result )</task1_result>
    <task2_result> ( task 2 result )</task2_result>
    <task3_result> ( task 3 result )</task3_result>
    </subtask>
</output>

"""
```

------
#### [ Markdown ]

```
markdown_schema = """Write your response following the markdown format below:


## Introduction
( 2-3 line intro)

## Design Guidance 
(Bulleted list of design guidance)

## Step by Step Instructions on Execution
( Bulleted list of instructions with each with bold title.

## Conclusion
( conclusion )


"""
```

------

### Pré-preencher o conteúdo do assistente
<a name="prompting-prefill"></a>

Se você estiver produzindo uma saída estruturada no modo sem raciocínio, poderá induzir a resposta do modelo ao pré-preencher o conteúdo do assistente.

O pré-preenchimento melhora a consistência no formato de saída no modo sem raciocínio. Essa técnica permite direcionar as ações do modelo, ignorar preâmbulos e aplicar formatos de saída específicos, como JSON e XML. Por exemplo, se você pré-preencher o conteúdo do assistente com `{` ou ````json`, essa entrada orientará o modelo a gerar o objeto JSON sem fornecer informações adicionais.

**dica**  
Se você está buscando especificamente extrair JSON, um padrão comum é pré-preenchê-lo com ````json` e adicionar uma sequência de parada em `````. Isso garante que o modelo gere um objeto JSON que pode ser analisado de forma programática.

**Example Pré-preencher o conteúdo do assistente**  
O seguinte código demonstra como pré-preencher com a API:  

```
import boto3
import json

# Create a Bedrock Runtime client.
client = boto3.client(
    "bedrock-runtime",
    region_name="us-east-1"
)

request_body = {
    "system": [
        {"text": "You write JSON objects based on the given instructions"}
    ],
    "messages": [
        {
            "role": "user",
            "content": [{"text": "Provide details about the best selling full-frame cameras in past three years. Answer in JSON format with keys like name, brand, price and a summary."}]
        },
        {
            "role": "assistant",
            "content": [{"text": " Here is the JSON response: ```json"}]
        }
    ],
    "inferenceConfig": {
        "maxTokens": 1000,
    }
}

# Invoke the model and extract the response body.
response = client.invoke_model(
    modelId="amazon.nova-2-lite-v1:0",
    body=json.dumps(request_body)
)

model_response = json.loads(response["body"].read())
```

### Especificar uma ferramenta a ser usada em esquemas complexos
<a name="prompting-tool-complex-schemas"></a>

Outra abordagem é usar ferramentas para aplicar um esquema específico na resposta do modelo, incluindo o *esquema JSON do Pydantic* na seção do esquema de uso de ferramentas. Você pode especificar a escolha da ferramenta para o esquema fornecido e a resposta do Amazon Nova será estruturada com base na ferramenta selecionada. Para saber mais sobre como aproveitar o uso de ferramentas, consulte [Uso de ferramentas](https://docs.aws.amazon.com/nova/latest/userguide/tool-use.html).

### Exemplos
<a name="structured-output-examples"></a>

#### Exemplo 1: adicionar um esquema de saída
<a name="add-output-schema-example"></a>

Adicionar a seção Esquema de saída com o esquema apropriado faz com que o modelo prefira se ajustar a esse esquema. No entanto, a saída do modelo não é determinística e pode variar em relação ao esquema de saída.

------
#### [ Unspecific Prompt ]

Usuário:

```
Provide details about the best selling full-frame cameras in past three years.
Answer in JSON format with keys like name, brand, price and a summary.
```

Assistente:

```
```json
 [
 {
 "name": "Sony Alpha A7R IV",
 "brand": "Sony",
 "price": "Approximately $3,500",
 "summary": "The Sony Alpha A7R IV is renowned for its exceptional image quality, thanks to a 61-megapixel full-frame sensor. It also features 4K video recording and a robust build, making it a favorite among professional photographers and videographers."
 },
 {
 "name": "Canon EOS R5",
 "brand": "Canon",
 "price": "Approximately $3,900",
 "summary": "The Canon EOS R5 combines high-resolution imaging with advanced video capabilities. It houses a 45-megapixel sensor, 8K video recording, and impressive autofocus performance, appealing to both photography and filmmaking professionals."
 },
 {
 "name": "Nikon Z7 II",
 "brand": "Nikon",
 "price": "Approximately $2,800",
 "summary": "The Nikon Z7 II offers a 45.7-megapixel full-frame sensor and is praised for its high resolution and excellent dynamic range. It also supports 4K video recording and features a versatile Z-mount lens system, making it a strong contender in the full-frame market."
 },
 {
 "name": "Fujifilm GFX 100S",
 "brand": "Fujifilm",
 "price": "Approximately $7,000",
 "summary": "While not a traditional full-frame camera, the Fujifilm GFX 100S stands out with its 102-megapixel medium format sensor. It is lauded for its stunning detail and color reproduction, though it comes at a higher price point and is aimed at specialized users."
 }
 ]
 ```
```

------
#### [ Specific Prompt ]

Usuário:

```
Provide details about the best selling full-frame cameras in past three years.
You MUST answer in JSON format only. Write your response following the the format below:
[{
“name”: “name goes here”,
“brand”: “brand goes here”,
“price”: “price goes here“,
"summary": "summary goes here"
}]
```

Assistente:

```
[
 {
 "name": "Nikon D850",
 "brand": "Nikon",
 "price": "$3,296.95",
 "summary": "The Nikon D850 is a professional full-frame DSLR camera known for its exceptional image quality, 45.7-megapixel resolution, 7 fps continuous shooting, and 4K video capabilities."
 },
 {
 "name": "Canon EOS 5D Mark IV",
 "brand": "Canon",
 "price": "$3,499.00",
 "summary": "The Canon EOS 5D Mark IV is a popular full-frame DSLR appreciated for its 30.4-megapixel sensor, 4K video recording, robust build quality, and reliable autofocus system."
 },
 {
 "name": "Sony A7R III",
 "brand": "Sony",
 "price": "$3,198.00",
 "summary": "The Sony A7R III is a high-resolution full-frame mirrorless camera renowned for its 42.4-megapixel sensor, excellent low-light performance, and versatile lens compatibility."
 },
 {
 "name": "Fujifilm GFX 100S",
 "brand": "Fujifilm",
 "price": "$5,999.99",
 "summary": "The Fujifilm GFX 100S is a medium format mirrorless camera that stands out for its 102-megapixel sensor, high dynamic range, and exceptional color reproduction."
 },
 {
 "name": "Sony A7 III",
 "brand": "Sony",
 "price": "$1,998.00",
 "summary": "The Sony A7 III is a full-frame mirrorless camera popular among enthusiasts and professionals for its 24.2-megapixel sensor, fast autofocus, and 4K video capabilities."
 }
 ]
```

------

#### Exemplo 2: pré-preencher a resposta do modelo
<a name="prefill-model-response-example"></a>

Outra abordagem é pré-preencher a resposta do modelo incluindo o texto inicial desejado na mensagem do assistente. Nesse caso, a resposta do modelo do Amazon Nova continuará de onde a mensagem do assistente parou.

**Dica:** o pré-preenchimento só é válido quando o raciocínio não está habilitado.

Usuário:

```
Provide details about the best selling full-frame cameras in past three years.
Your response should be in JSON format, with the following keys: name, brand, year, price, summary.
```

Assistente (pré-preenchimento):

```
```json
```

Assistente:

```
{
 "cameras": [
 {
 "name": "Sony Alpha A7 III",
 "brand": "Sony",
 "year": 2018,
 "price": "$1999",
 "summary": "The Sony Alpha A7 III is a highly acclaimed full-frame mirrorless camera known for its excellent image quality, advanced autofocus system, and 4K video capabilities."
 },
 {
 "name": "Canon EOS R5",
 "brand": "Canon",
 "year": 2020,
 "price": "$3899",
 "summary": "The Canon EOS R5 is a top-tier full-frame mirrorless camera that offers stunning 45MP images, 8K video recording, and exceptional performance in various lighting conditions."
 },
 {
 "name": "Nikon Z7 II",
 "brand": "Nikon",
 "year": 2020,
 "price": "$2999",
 "summary": "The Nikon Z7 II is a flagship full-frame mirrorless camera with a 45.7MP sensor, superb image quality, and advanced video recording features."
 },
 {
 "name": "Fujifilm GFX 100S",
 "brand": "Fujifilm",
 "year": 2020,
 "price": "$7999",
 "summary": "The Fujifilm GFX 100S is a medium format mirrorless camera known for its impressive 102MP sensor, beautiful film simulations, and versatile lens options."
 },
 {
 "name": "Sony Alpha A7R IV",
 "brand": "Sony",
 "year": 2019,
 "price": "$3499",
 "summary": "The Sony Alpha A7R IV features a 61MP sensor, excellent low-light performance, and advanced video capabilities, making it a favorite among professional photographers."
 }
 ]
 }
 ```
```

#### Exemplo 3: especificar uma ferramenta a ser usada
<a name="specify-tool-use-example"></a>

Como alternativa ao uso da técnica de pré-preenchimento para uma saída estruturada, você pode combinar a funcionalidade da ferramenta do Nova com a toolChoice. Neste exemplo, o modelo vai gerar uma chamada de ferramenta que adere ao esquema JSON fornecido e chamará a ferramenta específica para o formato JSON completo definido. Para obter orientação adicional, consulte Sistemas avançados.

Usuário:

```
From the below provided Query, extract the relevent entities

Query:
John works in BUILDING-0987 and have been incharge of product id 23564#. His performance have been excellent in past year and is up for a raise.

Use the extract_ner tool.
```

ToolConfig:

```
{
        "tools": [
            {
            "toolSpec": {
                "name": "extract_ner",
                "description": "Extract all the named entities. based on provided input",
                "inputSchema": {
                    "json": {
                        "type": "object",
                        "properties": {
                            "entities": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                "name": {
                                    "type": "string",
                                    "description": "The extracted entity name. This should be a name of a person, place, animal or thing"
                                },
                                "location": {
                                    "type": "string",
                                    "description": "The extracted location name. This is a site name or a building name like SITE-001 or BUILDING-003"
                                },
                                "product": {
                                    "type": "string",
                                    "description": "The extrcted product code, this is generally a 6 digit alphanumeric code such as 45623#, 234567"
                                }
                                },
                                "required": [
                                "name",
                                "location",
                                "product"
                                ]
                            }
                            }
                        },
                        "required": [
                            "entities"
                        ]
                    }
                    
                }
            }
        }],
        "toolChoice": {
            "tool": {
                "name": "extract_ner"
            }
        }
    }
```

## Casos de uso multilíngues
<a name="prompting-multilingual"></a>

Os modelos do Amazon Nova 2 foram treinados em mais de 200 idiomas e otimizados para 15 idiomas.

**Topics**
+ [Prompts para traduções precisas](#accurate-translations)
+ [Aplicar convenções de escrita consistentes](#consistent-writing-conventions)

### Prompts para traduções precisas
<a name="accurate-translations"></a>

Para aproveitar esse recurso para traduções curtas (poucas frases), você pode instruir o modelo a traduzir o texto para o idioma de destino especificado.

**Example Prompts de tradução**  

```
Translate the following text into {target language}. Please output only the translated text with no prefix or introduction: {text}
```

```
Translate the following sentence from {source_language} to {target language}: {text}
```

```
{text} How do you say this sentence in {target_language}
```

### Aplicar convenções de escrita consistentes
<a name="consistent-writing-conventions"></a>

Em linguagens baseadas em caracteres, os modelos do Amazon Nova 2 podem utilizar o conjunto de caracteres do idioma de origem. Você pode usar o prompt a seguir para impor uma saída consistente.

**Example Aplicar convenções de escrita**  

```
When translating, ensure to use the correct orthography / script / writing convention of the target language, not the source language's characters
```

## Chamada de ferramentas
<a name="tool-calling-advanced-techniques"></a>

### Sistemas agênticos
<a name="agentic-systems"></a>

**Topics**
+ [Definir os parâmetros de inferência corretos](#set-inference-parameters)
+ [Considerar requisitos de latência](#consider-latency-requirements)
+ [Use palavras intencionais para as instruções de chamadas de ferramentas](#intentional-wording-tool-calling)
+ [Aproveitar os comandos de “pensamento”](#leverage-thinking-commands)
+ [Ordenação de chamadas de ferramentas](#tool-call-ordering)
+ [Criar esquemas de ferramentas de qualidade](#designing-tool-schema)
+ [Criar subagentes](#create-sub-agents)
+ [Usar ferramentas para entradas multimodais](#use-tools-multimodal-inputs)
+ [Próximas etapas](#next-steps-best-practices)

#### Definir os parâmetros de inferência corretos
<a name="set-inference-parameters"></a>

A chamada de ferramentas requer uma saída estruturada muito específica do modelo e é aprimorada com o uso dos seguintes parâmetros de inferência:
+ **Modo sem raciocínio:** temperature: 0.7 e Top P: 0.9
+ **Modo de raciocínio:** temperature: 1 e Top P: 0.9

#### Considerar requisitos de latência
<a name="consider-latency-requirements"></a>

**dica**  
Os modelos do Amazon Nova 2 são capazes de chamar ferramentas com o raciocínio ligado e desligado. No entanto, os modos de raciocínio têm um impacto significativo na latência.

Para aplicações sensíveis à latência, você deve otimizar o modo de raciocínio desligado e simplificar as chamadas de ferramentas necessárias sempre que possível. Divida os fluxos de trabalho de várias etapas em etapas distintas para reduzir a dependência do modelo em repetir parâmetros desnecessários.

#### Use palavras intencionais para as instruções de chamadas de ferramentas
<a name="intentional-wording-tool-calling"></a>

**Nomes de ferramentas:** referenciar ferramentas no prompt do sistema é comum em sistemas de chamada de ferramentas para instruir o modelo sobre quando chamar uma ferramenta. Ao referenciar ferramentas no prompt, recomendamos que você use o nome da ferramenta em vez de referências ou exemplos em xml ou no estilo Python.

##### Exemplo de uma boa referência de ferramenta
<a name="Example-of-a-good-tool-reference"></a>

```
Use the 'run_shell_command' tool for running shell commands
```

##### Exemplo de uma referência de ferramenta ruim
<a name="Example-of-a-bad-tool-reference"></a>

```
Call run_shell_command() to run shell commands
```

#### Aproveitar os comandos de “pensamento”
<a name="leverage-thinking-commands"></a>

Para todos os casos de uso em que o pensamento é benéfico para a chamada de ferramentas, recomendamos que você use o modo de raciocínio em vez de fornecer prompts para que o modelo “pense em tags” ou use uma ferramenta de “pensamento”.

 Os modelos do Amazon Nova 2 são treinados extensivamente para o modo de raciocínio e produzirão os melhores resultados quando usados no modo de raciocínio para o encadeamento de pensamento. 

#### Ordenação de chamadas de ferramentas
<a name="tool-call-ordering"></a>

Em casos de uso que podem exigir o uso simultâneo de chamadas de ferramentas nativas e ferramentas integradas, o modelo tende a chamar primeiro as ferramentas integradas.

Não instrua o modelo a agir de forma diferente no prompt. Em vez disso, projete seu fluxo de trabalho para levar isso em consideração.

Por exemplo, se você não quiser que o modelo use ferramentas integradas, não as inclua em seu fluxo de trabalho para que o modelo não seja tendencioso.

#### Criar esquemas de ferramentas de qualidade
<a name="designing-tool-schema"></a>

Os esquemas de ferramentas são um dos principais locais em que você pode aplicar engenharia de prompts para criar sistemas eficazes de chamada de ferramentas. No entanto, é importante considerar o que é capturado no próprio esquema da ferramenta, como cada elemento do esquema é descrito semanticamente e como o prompt do sistema faz referência às ferramentas e aos elementos do esquema nas instruções do sistema.

Os modelos do Amazon Nova 2 são otimizados para descrições concisas nos esquemas da ferramenta. Seja breve.

**Esquema de ferramentas versus diretrizes de prompts do sistema:**

**Incluir no esquema da ferramenta:**
+ Funcionalidade principal: o que a ferramenta faz (recomenda-se de 20 a 50 palavras)
+ Especificações dos parâmetros: descrições claras de cada parâmetro (cerca de dez palavras por parâmetro)
+ Formatos esperados: tipos de dados (como enum, int, float), campos obrigatórios e intervalos de valores válidos

**Incluir no prompt do sistema:**
+ Dedique uma seção `#Tool Usage` à lógica de orquestração (quando e por que usar ferramentas específicas) e regras de negócios (lógica condicional, requisitos de sequenciamento e dependências).
+ **Estratégias de tratamento de erros:** adicione uma seção `#Error Handling and Troubleshooting` com instruções sobre como responder a falhas ou resultados inesperados
+ **Formatação de saída:** adicione detalhes sobre como apresentar ao usuário

##### Exemplo
<a name="sample-example"></a>

```
You are a software engineering issue root cause analysis agent. You are tasked with reviewing a customer issue and examining the repository to identify a plan to resolve the issue.
      # Core Mandates
- **DO NOT** update the original issue that was posted by the user. You only add *additional* comments to the reported issue if necessary

# Primary Workflows
1. **Understand:** Analyze the user's request and explore the codebase thoroughly using **get_file_contents** to grasp file structures and conventions.
2. **Plan:** Create a coherent, evidence-based plan for resolving the task and share it with the user following the format below

# Tool Usage 
- **Read the Issue:** Always start by using the **read_issue** tool to get the details about the requested issue
- **File Paths:** Always end the file path with "/" if you are searching a directory using the **get_file_contents** tools
- **Parallelism:** Execute multiple independent tool calls in parallel when feasible

# Error Handling and Troubleshooting
- **File Exploration:** If you get an error that a file doesn't exist, try searching at the directory level first to validate the file path

# Output Formatting
Return your plan in markdown in the following format

## Issue
<Your root cause analysis of the issue>

## Resolution Plan
<your step by step plan of how to solve the issue>
```

#### Criar subagentes
<a name="create-sub-agents"></a>

Considere criar subagentes especializados em vez de um único agente com muitas ferramentas ao encontrar:
+ **Contagem de ferramentas excede 20:** grandes conjuntos de ferramentas se tornam difíceis de gerenciar e aumentam os erros de seleção
+ **Domínios funcionais distintos:** as ferramentas naturalmente se agrupam em categorias separadas (como recuperação de dados versus processamento versus relatórios)
+ **Esquemas complexos:** quando a profundidade dos parâmetros excede de 3 a 4 níveis ou as ferramentas têm interdependências complexas
+ **Duração da conversa:** os fluxos de trabalho geralmente excedem de 15 a 20 turnos e podem se beneficiar de subagentes especializados
+ **Degradação do desempenho:** se você observar uma diminuição da precisão na seleção de ferramentas ou um aumento da latência

**dica**  
Os servidores MCP vêm com ferramentas e esquemas que você não pode controlar. Inclua somente as ferramentas necessárias para que seu fluxo de trabalho conclua a tarefa necessária.

#### Usar ferramentas para entradas multimodais
<a name="use-tools-multimodal-inputs"></a>

Para tarefas multimodais, não observamos uma maior precisão aproveitando ferramentas para tarefas estruturadas (como extração ou geração de carimbo de data e hora).

Em vez disso, recomendamos que você revise as seções relevantes na seção Gerar prompts para entradas multimodais para saber como gerar prompts com sucesso para o modelo usando os modelos fornecidos.

#### Próximas etapas
<a name="next-steps-best-practices"></a>
+ Para gerar prompts multimodais, consulte [Gerar prompts para entradas multimodais](prompting-multimodal.md).