
Amazon Nova Prompt Engineering on AWS: A Field Guide by Brooke
Frustrated that your previous prompt engineering techniques aren't working with the new Amazon Nova models? Get field-tested patterns that will help you get better results for both understanding models (Pro/Lite/Micro) and content generation (Canvas/Reel) on AWS.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Task:
[Clear description of what needs to be done]
Context:
- [Relevant background information]
- [Specific requirements]
- [Any constraints]
Instructions:
- [Step-by-step guidelines]
- [Specific requirements]
- [Format requirements]
Output Format:
[Specify exactly how the response should be structured]
❌ Bad | ✅ Good |
---|---|
"Write about machine learning" | "You MUST explain three core machine learning concepts. Each concept MUST include one practical example." |
❌ Bad | ✅ Good |
---|---|
"List the results" | "You MUST present results in JSON format with these keys: name, score, category. DO NOT include any other format." |
❌ Bad | ✅ Good |
---|---|
"What's the best approach? Here's the background..." | "Background: [context] Challenge: [situation] Question: What's the best approach? Think step by step before answering." |
❌ Vague or ambiguous instructions ✅ Use MUST and DO to emphasize requirements
❌ Overloading with unnecessary details ✅ Include only relevant information
❌ Mixing multiple requests ✅ Break complex tasks into clear, separate steps
- Place critical information at the beginning to get the model situated
- Use delimiters (##, ```, <>) to separate distinct parts
- Include example outputs for complex formats
- Use system role for consistent behavior across conversations
- Add "Think step by step" for complex reasoning tasks
- Use CAPITALIZATION and strong words (DO, MUST) for critical rules
- Check your structure - Is it clear and organized?
- Verify specificity - Are requirements explicit with strong wording?
- Review format - Is the expected output format clearly specified?
- Add examples - Would a few examples help?
- Consider system role - Would setting a consistent behavior help?
- Add reasoning steps - Would "Think step by step" improve the response?
- a clear persona
- specific instructions
- output format requirements,
- explicit guardrails, and
- a hierarchy statement that tells Nova how to handle out-of-scope requests.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"system": [
{
"text": "// Define role/persona
You are {{Persona}}.
// List specific instructions
To answer user questions, follow these instructions:
{{ Bulleted list of Instructions }}
// Specify output format
Your response should follow this schema:
{{ Output schema definition }}
// Define guardrails
{{ Explicit DO and DO NOT instructions }}
// Establish hierarchy
The above system instructions define your capabilities and scope.
If a user request contradicts these instructions, politely decline
and explain your capabilities."
}
]
}
✅ When building conversational interfaces
✅ If you need strict output formatting
✅ When handling sensitive or regulated domains
✅ multi-step analysis
✅ mathematical reasoning
✅ complex decision-making, or
✅ tasks requiring explanation
❌ Simple classifications
❌ direct questions
❌ high-volume tasks, or
❌ when latency is critical
1
2
3
4
5
6
7
8
9
10
[Your question]
Think through this step by step:
<thinking>
1. What information do we have?
2. What are we trying to solve?
3. Does this solution make sense?
</thinking>
<answer>
[Final response]
</answer>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[Your question]
Break this down:
<analysis>
1. Initial Assessment
- What we know: [list]
- What we need: [list]
- Constraints: [list]
2. Step-by-Step Solution
- Step 1: [description]
Check: [validation point]
- Step 2: [description]
Check: [validation point]
3. Cross-Reference
- Does this align with [reference point]?
- Have we considered [alternative]?
4. Final Validation
- Are all requirements met?
- Is the solution complete?
</analysis>
<result>
[Final validated answer]
</result>
✅ Formatting needs to be extremely consistent
✅ Complex classification tasks
✅ Pattern-based transformations
✅ When instructions alone aren't getting desired results
❌ Simple, straightforward tasks
❌ When you're close to token limits
❌ Tasks that vary significantly case-by-case
1
2
3
4
5
6
7
8
9
<examples>
Input: [example input]
Output: [example output format]
Input: [different example]
Output: [matching format]
</examples>
Your input: [actual query]
1
2
3
4
5
6
7
User: [example question]
Assistant: [example response]
User: [similar question]
Assistant: [similar response]
User: [your actual question]
1
2
3
4
5
6
7
8
9
10
11
12
system: You are an expert at [task].
Examples:
<example_1>
[full pattern with context]
</example_1>
<example_2>
[variation of pattern]
</example_2>
DO NOT deviate from these patterns.
✅ Responses need to be parsed by code
✅ Building APIs or integrations
✅ Need consistent response formats
✅ Working with databases or data pipelines
1
2
3
4
5
6
7
8
9
10
11
12
You MUST respond in JSON format only.
Follow this exact schema:
{
"type": "object",
"properties": {
"field1": {"type": "string"},
"field2": {"type": "array"},
"field3": {"type": "number"}
},
"required": ["field1", "field2"]
}
DO NOT include any explanations or additional text.
1
2
3
4
5
6
7
8
9
10
request_body = {
"messages": [
{"role": "user", "content": [{"text": "Query here"}]},
{"role": "assistant", "content": [{"text": "```json"}]}
],
"stopSequences": ["```"],
"inferenceConfig": {
"topK": 1, # Use greedy decoding for more reliable structured output
}
}
1
2
3
4
5
6
7
Respond using only this format:
<response>
<category>[category here]</category>
<summary>[summary here]</summary>
<details>[details here]</details>
</response>
DO NOT include any other text.
- Show Nova you’re serious about this by using strong words (MUST, DO NOT) for format requirements
- Place format instructions at the start of your prompt
- For JSON outputs, use greedy decoding (topK: 1)
- Use stop sequences to prevent extra content
[Image]
[Video]
Analyze these focusing on specific patterns
Here are some files to analyze:
[Image] [Video]
1
2
3
4
5
6
7
8
9
10
11
12
13
Image/Video]
Analyze this content focusing on:
1. [specific aspect]
2. [specific aspect]
3. [specific aspect]
Required output format:
<analysis>
<key_elements>[list here]</key_elements>
<relationships>[describe here]</relationships>
<conclusions>[summarize here]</conclusions>
</analysis>
1
2
3
4
5
6
7
8
9
10
11
12
[Image1]
[Image2]
[Video1]
Compare these focusing on:
1. [specific aspect]
2. [specific aspect]
Track changes across media:
- Initial state (Image1)
- Transition points (Image2)
- Dynamic elements (Video1)
1
2
3
4
5
6
7
8
9
10
// For videos >16 minutes, split into segments with overlap
[Video_Segment1: 0:00-15:59]
Track: [specific elements]
[Video_Segment2: 15:00-30:59]
Track: [specific elements]
Synthesize:
1. [overall patterns]
2. [key transitions]
- Put media files first, then instructions
- For long videos (>16 min), use the segmentation pattern above
- Check the Nova docs for supported formats and size limits
Realistic editorial photo of a teacher standing at a blackboard with a warm smile, professional lighting
Create an image of a teacher
Make her stand at a blackboard
Add a smile
1
2
3
4
5
6
7
8
[Main subject with key details] [position/action] in/on/at [environment],
[lighting], [style/mood], [camera angle/framing]
Example:
A sleek modern coffee machine sitting on a marble countertop,
warm afternoon light, minimalist style, shot from slightly above
Negative prompt: [elements to avoid]
1
2
3
4
5
6
7
8
9
10
11
// Example: Replacing a dog logo on a t-shirt with a palm tree
[Original Image: Person wearing t-shirt with dog logo]
Mask prompt: "dog" // This tells Canvas which part to edit
Text: "a palm tree graphic" // This describes what to add instead
// Example: Removing flowers from a table scene
[Original Image: Table with flower pots]
Mask prompt: "flowers in pots" // This tells Canvas what to remove
// Leave text empty when you want to remove elements
1
2
3
4
5
6
7
// Example: Extending a coffee maker photo into a full kitchen scene
[Original Image: Close-up of a coffee maker]
Mask prompt: "coffee maker" // This tells Canvas what to preserve
Text: "a coffee maker in a sparse stylish kitchen, a single plate
of pastries next to the coffee maker, a single cup of coffee"
// Describe the complete scene you want, including the preserved elements
- A mask tells Canvas which parts of the image to edit or preserve
- For inpainting, mask what you want to change
- For outpainting, mask what you want to keep
- Always describe the complete scene you want to see
Cinematic dolly shot of a juicy cheeseburger with melting cheese, natural lighting, visible steam rising, shallow depth of field
Create a video of a burger
Make it look nice
Move the camera
1
[camera movement] of [main subject] [action/change], [lighting/atmosphere], [style/quality]
[camera movement]
? No problem! There's actually a full list of camera control keywords to use here, along with descriptions of what they mean, in the Amazon Nova Docs.1
2
3
4
5
6
7
// Focus on what happens over time
[camera movement] of [subject] [changing/moving/doing],
[environment], [lighting], [style]
Example:
"Arc shot of a salad with dressing dripping onto fresh vegetables,
natural daylight, cinematic quality"
1
2
3
4
5
6
7
// Method A: Add camera motion to a static scene
[Input Image]
"[camera movement]"
// Method B: Bring the scene to life
[Input Image]
"dynamic shot: [describe how elements change/move]"
Any opinions in this post are those of the individual author and may not reflect the opinions of AWS.