Iterate and Refine Your Prompts
On this page
Prompting is an iterative process
A prompt is rarely perfect on the first try. Experienced practitioners know the real work begins after the first response: you analyze the result, identify gaps between the output and your expectations, and adjust the prompt accordingly.
This methodical iteration is at the heart of prompt engineering. It turns a passable result into an excellent one.
The improvement loop
The iteration cycle happens in four steps:
- Formulate: Write the initial prompt with your three pillars (clarity, context, structure)
- Test: Send the prompt and observe the response
- Diagnose: Identify what’s wrong (format, content, tone, length, precision)
- Adjust: Modify the prompt to fix the identified issue
Repeat this cycle until you get a satisfactory result. Each iteration should change only one aspect at a time to understand the impact of each change.
Diagnosing common problems
The response is too long
The model generates paragraphs when you expected a short list.
Before:
What are the advantages of remote work?
After:
List the 5 main advantages of remote work. Maximum 1 sentence per advantage.
The response is off-topic
The model answers beside your question. Add context and specify the scope.
Before:
Explain limits.
After:
Explain mathematical limits for an advanced high school student. Focus on limits of polynomial functions, not sequences.
The format isn’t what you expected
The model returns free text when you wanted JSON. Be explicit about the format and provide an example.
Before:
Analyze this text and extract the entities.
After:
Analyze this text and return the entities in JSON format:
{"entities": [{"name": "...", "type": "person|location|organization"}]}
Return only the JSON, no additional text.
The tone is inappropriate
The model is too formal or too casual. Specify the register in the system message or in the instruction.
Before:
Write a response to this unhappy client.
After:
Write an empathetic and professional response to this unhappy client. Warm tone but not informal. Start by acknowledging the problem, then propose a concrete solution.
Refinement techniques
Add negative constraints
When the model does something you don’t want, explicitly forbid it:
Explain machine learning to a beginner.
Do not use technical jargon.
Do not mention mathematical formulas.
Do not refer to other AI models.
Provide a counter-example
Show the model what you don’t want:
Write a summary of this document.
Good summary: "The report shows a 15% increase in sales in Q3, driven by the B2B segment."
Bad summary: "This report presents the company's financial results for the third quarter of the current year, including various metrics..."
Adopt the style of the good summary.
Reformulate progressively
When one rewrite isn’t enough, proceed in steps:
- Test your base prompt
- Add the desired output format
- Add content constraints
- Add tone constraints
- Add examples if needed
Use the seed parameter to compare
With the same seed, you can compare the effect of two different formulations by eliminating variability due to randomness:
{"seed": 42, "temperature": 0.5, "messages": [{"role": "user", "content": "Version A of the prompt"}]}
{"seed": 42, "temperature": 0.5, "messages": [{"role": "user", "content": "Version B of the prompt"}]}
Document your iterations
Keep track of your prompts and their results. Note for each version:
- The exact prompt text
- Parameters used (model, temperature, seed)
- What worked
- What needs improvement
This documentation saves you considerable time when you need to return to a prompt or adapt it to a new use case.
Practice
Take a prompt you’ve already used that didn’t give a perfect result. Apply the improvement loop in three iterations:
- Identify the main problem with the current response
- Modify a single aspect of the prompt to fix this problem
- Test and compare with the previous result
Repeat until you get a satisfactory result.
Key takeaways
- Prompting is iterative: the first attempt is rarely the last
- Change only one aspect per iteration to understand the impact of each change
- Common problems (length, topic, format, tone) each have specific solutions
- Negative constraints and counter-examples are powerful refinement tools
- Use the
seedparameter to objectively compare two formulations - Document your iterations to capitalize on your experience